Дані події викликаються на клієнта, для виклику та перехоплення використовується 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('Усі кошики оновлені!');
});
викликається перед відправкою на сервер даних форми замовлення
викликається після надсилання на сервер даних форми замовлення