Lista de precios

Bootic soporta lista de precios, esto quiere decir que el precio de tus productos será distinto para cierto grupo de usuarios o visitantes.

mayorista

Pensado para comercios que venden sus productos a otros comercios, lo que en el mundo del ecommerce se conoce como business 2 business ó b2b.

Quiero tenerlo - ¿qué debo hacer?

El primer paso para habilitarlo en tu tienda es instalarlo.

Lo anterior generará en el admin de tu tienda una nueva sección de nombre «Mayorista».

Seccion mayorista admin

Acá puedes crear una o varias listas de precio. En cada lista de precio puedes agregar:

mayorista

Cómo acceden los clientes a los precios mayoristas

Como te comentamos anteriormente una lista de precios tiene asociados productos y usuarios. Es decir, el usuario debe logearse o acceder a la tienda usando credenciales de acceso para ver los precios configurados en la lista y eventualmente comprar el producto.

Editando la plantilla

Para habilitar el logeo de un usuario se debe agregar lo siguiente a la plantilla layout.html:

{% if customer.is_logged_in %}

  (muestra el contenido de layout)

{% else %}

  {% include 'guest' %}

{% endif %}

La plantilla guest.html debería contener algo como los siguiente:

<p>¿Eres cliente y tienes usuario? <a href="/customer/login">Ingresa 
aquí</a>.</p>

Cómo agregar productos y clientes a una lista masivamente

Por medio de la API es posible agregar productos y usuarios, a continuación te mostramos dos script usando Bootic CLI

Creando una lista de precios

shop = root.shops.first
payload = {
  name: "Silver",
  tax: {
    name: 'IVA',
    rate: 0.19,
  },
  prices_include_tax: false
}
list = shop.price_lists.create_price_list(payload)

Agregando productos a la lista

A continuación se agregan todos los productos etiquetados como marketplace a la lista recién creada:

shop = root.shops.first
products = shop.products(tags: ["marketplace"], status: "all").full_set
list = shop.price_lists.items.find {|x| x.name == "Silver"}

products.each do |product|
  puts "Procesando: #{product.slug}..."
  variants = product.variants
  variants.each do |variant|
    list.add_price_item(id: variant.id, price: variant.regular_price)
  end
end

Agregar clientes a la lista

Finalmente agregaremos un grupo de clientes a la lista. Clientes que estarán en el archivo clients.csv.

shop = root.shops.first
list = shop.price_lists.items.find {|x| x.name == "Silver"}
customers = shop.contacts
csv_file = "clients.csv"
options = {:col_sep => ",", :headers => true}

CSV.foreach(csv_file, options) do |row|
  customer = customers.create_contact(
    email: row['email'],
    name: row['full_name'],
    phone_number: row['phone_number'],
    company: row['company_name'],
    company_id_number: row['rut'],
    price_list_id: list.id
  )
end