Cómo usar Bootic CLI: Usando la consola

Bienvenido a la tercera parte de nuestra seria cómo usar Bootic CLI (Parte I, Parte II)

Con el CLI puedes editar el diseño de tu tienda—como vimos en la parte II de esta serie de tutoriales—pero además de lo anterior el CLI te permite acceder a los datos de la misma, me refiero a:

Listado de productos

Comencemos por algo sencillo: Listar los productos de una tienda.

Como primer paso ingresemos a la consola, desde nuestra linea de comando digitamos los siguiente:

bootic console
Login desde la consola

IMPORTANTE: Recuerda que debes estar logeado: comprueba esto con lo siguiente:

bootic check

Si no es el caso logeate:

bootic login

Ahora sí, listamos nuestros productos, en la consola digita lo siguiente:

$ shop = root.shops.first
$ products = shop.products
$ products.each do |product|
$   puts product.slug
$ end

testarossa
cocotte
bolsa-1
chincheta
...

NOTA: Por defecto solo se listan los primeros 50 productos.

¿Y si hacemos un script?

Anteriormente vimos como puedes listar productos desde la consola CLI.. ¿qué te parece si ahora hacemos un script que haga lo mismo?, esto es: listar el slug de los productos:

Guardemos este script con el nombre de product_slugs.rb y luego desde la línea de comandos lo podemos llamar así:

bootic runner product_slugs.rb

Luego de ejecutarlo nos mostrará un listado con los slugs de nuestros productos.

Hagamos algo más interesante: listaremos información básica de los productos:

Si se quiere listar todos los productos de la tienda cambia lo que está en la línea 2 por lo siguiente:

products = shop.products.full_set

Un script algo más útil: Archivo CSV

A continuación crearemos un script que haga los mismo que lo anterior pero que esta vez en lugar de mostrar el resultado en la consola lo deje en un archivo de tipo CSV, para posteriormente revisarlo con Excel o Google Spreadsheet.

Descarga de un CSV

NOTA: En la línea 7 del script el parámetro status está seteado como all, lo cual quiere decir que listará los productos visible y ocultos, si no explicitamos esto solo listará los visibles.

Cambio de precio

Ahora haremos algo que es recurrente en cualquier tienda: Establecer ofertas o momento de rebajas o quizá un evento CyberDay o CyberMonday.

Requerimiento: Se quiere rebajar todos los precios de la colección ofertas. Pero se quiere respaldar la información para que luego de finalizada la oferta los precios vuelvan a la «normalidad».

Paso 1: Respaldar los precios actuales de la colección (deals = Ofertas)

Para ello corremos el siguiente script desde nuestra línea de comandos:

bootic runner backup_deals.rb

Esto generará un CSV de nombre backup_variants_deals.csv con todos los precios de la colección Ofertas.

Paso 2: Crear un nuevo CSV

Puesto que ya tenemos el respaldo ahora le sacaremos una copia, nombraremos esta copia: new_variants_deals.csv. Finalmente editamos este nuevo CSV con Excel o Google Spreadsheet y pondremos en él los nuevos precios.

Paso 3: Subir los nuevos precios

Ahora que ya tenemos los nuevos precios listos en el CSV procedemos a correr el siguiente script, el cual cambiará uno a uno los precios.

bootic runner new_variants_deals.rb

Paso 4: Revertir precios

Cuando quieras volver a los precios que tenías antes, simplemente edita la línea 3 del script anterior, en su reemplazo pon el CSV de respaldo. Aquella línea debería quedar así:

file = "backup_deals.csv"

Y luego corremos de nuevo el script. Pero esta vez revertirá los cambios, todo volverá a la normalidad en aquella colección.

bootic runner new_variants_deals.rb

Listado de pedidos exitosos

También es posible listar pedidos. Acá te mostramos script que listará los últimos 50 pedidos exitosamente pagados:

bootic runner last_closed_orders.rb

Listado de clientes

Acá encontrarás un script que lista todos los contactos de tu tienda:

bootic runner contact_list.rb

Lista de precios

También es posible listar listas de precios y su contenido. Acá encontrarás un script list_price_list.rb que muestra el ID y nombre de la lista de precios de la tienda:

Conociendo el ID de una lista de precios podemos listar su contenido, acá el script list_price_list_products.rb que nos ayudará con esto: