Описывается в InSales.Cart.
Для удобства работы с корзиной создается экземпляр Cart.
Все взаимодействие с корзиной описывается в файле cart.js.
Добавление товара
Cart.addItem( $object )
$object - список добавляемых вариантов товаров и их количество.
Может быть jQuery-объектом формы
$( 'form' );
Или объектом со списком добавляемых товаров вида
{
{ variant_id: quantity },
{ variant_id: quantity }
}
Вызывает события
'onCart_Add' - после добавления товара в корзину на сервере и до обновления состава корзины у посетителя. Передается состав корзины; поле added - $object, если это не jQuery-объект; полe jqObj - $object, если это jQuery-объект.
'onCart_AfterAdd' - после добавления товара в корзину на сервере и после обновления состава корзины у посетителя. Передается состав корзины; поле added - $object, если это не jQuery-объект; полe jqObj - $object, если это jQuery-объект.
Удаление товара
Cart.removeItem( variant_id [, $link] )
variant_id - вариант модификации товара, которую мы удаляем
$link - jQuery-объект элемента. Передается для того, чтобы при получении события onCart_Delete определить какой элемент сайта удалять.
Вызывает события
'onCart_BeforeDelete' - после удаления товара из корзины на сервере и до обновления состава корзины у посетителя. Возвращает актуальное состав корзины; поле removed - id удаленной модификации; поле jqObj - $link.
'onCart_Delete' - после удаления товара из корзины на сервере и после обновления состава корзины у посетителя. Возвращает актуальное состав корзины; поле removed - id удаленной модификации; поле jqObj - $link.
Пересчет корзины
Cart.recalculateOrder( form )
form - селектор формы с составом корзины (например в шаблоне страницы корзины)
Обновление состава корзины.
Происходит после любых операций с корзиной.
Вызывает событие
'onCart_Update' - возвращает актуальный состав корзины.
Настройки
Объекту Cart при инициализации можно передать объект настроек с полями
removeSelector - селектор объекта, который отвечает за удаление товара из корзины. По-умолчанию '.js-cart_item-delete'.
quantitySelector - селектор полей ввода с количеством товара. По-умолчанию '.js-quantity-input'.