Cart

Разметка

АтрибутНазначениеРасположение
data-cart-form Обязательный атрибут для тега form Тег form для корзины
data-item-id Обязательный атрибут для позиций в корзине. Атрибут принимает id позиции. Обертка для позиции в корзине
data-product-id Обязательный атрибут для инициализации товара. В атрибут передаётся id товара. Обертка для позиции в корзине
data-item-delete Удаление из корзины Обертка для позиции в корзине
data-cart-update Обновление корзины Внутри обёртки с атрибутом data-cart-form
data-cart-update Обновление корзины Внутри обёртки с атрибутом data-cart-form
data-cart-clear Очищение корзины Внутри обёртки с атрибутом data-cart-form
data-coupon-submit Отправка купона Внутри обёртки с атрибутом data-cart-form
data-quantity Обязательный атрибут для обёртки кнопок изменения колличества и инпута quantity Внутри обертки с атрибутом data-product-id и data-item-id
data-quantity-change Атрибут для кнопок +/-, принимает число Внутри обёртки с атрибутом data-quantity
Liquid
        
          

<form action="{{ cart_url }}" method="post" data-cart-form>
  <input type="hidden" name="_method" value="put">
  <input type="hidden" name="make_order" value="">

  {% for item in cart.items %}
    <div data-product-id="{{ item.product.id }}" data-item-id="{{ item.id }}">
      <div data-quantity>
        <input type="text" name="cart[quantity][{{ item.id }}]" value="{{ item.quantity }}">
        <span data-quantity-change="-1">-</span>
        <span data-quantity-change="1">+</span>
      </div>
      <span data-item-delete="{{ item.id }}">X</span>
    </div>
  {% endfor %}

  <div>
    <label> Купон </label>
    <input type="text" name="cart[coupon]" value="{{ cart.coupon }}" />
    <input type="button" value="Применить" data-coupon-submit/>
  </div>

  <input type="submit" value="Оформить" data-cart-submit>
  <button data-cart-clear>Очистить</button>
  <button data-cart-update>Обновить</button>
</form>

Events

before:insales:cart Перед любым взаимдействием с корзиной
add_items:insales:cart Товар добален в корзину
update_items:insales:cart Обновление корзины
always:insales:cart Событие срабатывает после любого взаимодействия с компонетом корзины
delete_items:insales:cart Удаление позиции
remove_items:insales:cart Удаление заданного кол-ва позиций
clear_items:insales:cart После полного очищения корзины
set_coupon:insales:cart После установки купона
set_items:insales:cart После установления кол-ва товаров в корзине для каждой позиции
before:insales:item Событие срабатывает перед любым взаимодействием с компонетом продукта
change_quantity:insales:item Обновление кол-ва в продукте
unchange_quantity:insales:item Если введено кол-во больше доступного
update_variant:insales:item Обновление варианта в продукте
always:insales:item Событие срабатывает после любого взаимодействия с компонетом продукта

Methods

add(task)

Добавить в корзину заданное кол-во товаров

 

clear()

Полностью очистить корзину

 

delete(task)

Удалить позиции из корзины

 

remove(task)

Удадить из корзины заданное кол-во товаров

 

set(task)

Устанавливает кол-во товаров в корзине для каждой позиции

 

setCoupon(task)

Устанавливаем купон

 

js
        
          

Cart.add({
  items: {
    123456: 2,
    123457: 1
  },
  comments: {
    123457: 'Мой комментарий'
  },
  coupon: 'Мой купон'
});