Данные события вызываются на клиенте, для вызова и перехвата используется jQuery. Все события находятся в пространстве имен commerce
.
При работе с корзиной (это действия add
, remove
, update
, clean
) порядок вызова событий следующий:
action-start.commerce
cart-<action>.commerce
- в этом событии можно отменить дальнейшие действияcart-<action>-complete.commerce
action-complete.commerce
Вызывается при любом действии с корзиной, в самом начале обработки.
Параметры события:
Параметр | Описание |
action | Название действия, например cart/add |
params | Данные действия. При добавлении в корзину содержат данные товара, тип корзины. При удалении из корзины содержат идентификатор строки. И т.д. |
$(document).on('action-start.commerce', function(e, params) {
console.log(params.action + ' called with ', params.data);
});
Вызывается после того, как действие с корзиной произведено.
Параметры события:
Параметр | Описание |
action | Название действия, например cart/add |
params | Данные действия. При добавлении в корзину содержат данные товара, тип корзины. При удалении из корзины содержат идентификатор строки. И т.д. |
response | Ответ сервера |
Вызывается перед добавлением товара в корзину. Позволяет отменить добавление
Параметры события:
Параметр | Описание |
params | Параметры запроса. В зависимости от способа вызова может содержать разные данные. Например, при добавлении товара из формы здесь будут все данные из полей этой формы, а если товар добавляется простой ссылкой с атрибутом data-commerce-action="add" , в параметрах будут все data-параметры этой ссылки. Обязательно присутствует только id . |
Стандартные параметры запроса:
Параметр | Описание |
id | Идентификатор добавляемого товара |
count | Количество. Если отсутствует, считается равным 1 |
cart | Объект для описания корзины. Содержит значение instance - тип корзины, по умолчанию products |
Пример:
$(document).on('cart-add.commerce', function(e, params) {
if (params.cart.instance == 'comparison' && params.id == 53) {
e.preventDefault();
}
});
Вызывается при обработке ответа сервера на запрос добавления товара
Параметры события:
Параметр | Описание |
response | Ответ сервера. Содержит status - результат запроса, success / failed , и row - уникальный идентификатор строки с добавленным товаром в корзине |
data | Параметры запроса, тот же состав, как и в событии cart-add |
$(document).on('cart-add-complete.commerce', function(e, params) {
if (params.response.status == 'success') {
$('.product[data-id="' + params.data.id + '"]').addClass('in-cart');
}
});
Вызывается перед удалением товара из корзины
Вызывается при обработке ответа сервера на запрос удаления товара из корзины
Вызывается перед изменением товара
Вызывается при обработке ответа сервера на запрос изменения товара
Вызывается перед очисткой корзины
Вызывается при обработке ответа сервера на запрос очистки корзины
$(document).on('cart-clean-complete.commerce', function(e) {
$('.order').remove();
});
Вызывается при каждом запросе к серверу для сбора хэшей всех корзин на странице, с целью обновления содержимого этих корзин
Вызывается перед обновлением содержимого корзины, действие можно отменить
$(document).on('cart-reload.commerce', function(e) {
if ($(e.target).hasClass('sidecart')) {
e.preventDefault();
}
});
Вызывается после обновления содержимого корзины
$(document).on('cart-reloaded.commerce', function(e) {
var $cart = $(e.target);
if ($cart.hasClass('minicart')) {
$cart.addClass('animate');
}
});
Вызывается после обновления всех корзин, но только при прямом вызове метода Commerce.reloadCarts()
$(document).on('carts-reloaded.commerce', function(e) {
alert('Все корзины обновлены!');
});
вызывается перед отправкой на сервер данных формы заказа
вызывается после отправки на сервер данных формы заказа