Механизм полной синхронизации корзины покупок построен на механизме window.postMessage.
Веб-визуализатор вызывает метод window.postMessage при совершении действий с корзиной покупок.
Установка списка артикулов в корзины покупок. Для установки списка артикулов в корзине покупок необходимо вызывать метод postMessage.
window.frames.wizartFittingRoom.onload = (() => { window.frames.wizartFittingRoom.postMessage({ eventName: 'setShoppingCartStore', payload: [ { vendor_code: 'vendor_code', // type string, quantity: 1, // type number, }, ], }, '*'); });
Для того чтобы получить список артикулов корзины покупок необходимо вызвать метод postMessage
getShoppingCartStore.
Веб-визуализатор отловит запрос на получиние списка артикулов корзины покупок и инициирует событиеgetShoppingCartStore
на своей стороне. Пример:window.frames.wizartFittingRoom.onload = (() => { // Вызов события на получение артикул в корзине покупок. window.frames.wizartFittingRoom.postMessage({ eventName: 'getShoppingCartStore' }, '*'); }); // Подписка на получение артикулов корзины покупок. window.addEventListener('message', (event) => { if (event.data && event.data.eventName === 'getShoppingCartStore') { // Event handling } }, false) Формат данных: event.data = { eventName: 'getShoppingCartStore', payload: { vendor_code: 'vendor_code', // type string quantity: 1, // type boolean }, }
При добавление артикула в корзину покупок или увеличении количества будет вызвано событие
addShoppigCartItem
.// Подписка на событие добавления артикула в корзину покупок window.addEventListener('message', (event) => { if (event.data && event.data.eventName === 'addShoppigCartItem') { // Event handling } }, false) Формат данных: event.data = { eventName: 'addShoppigCartItem', payload: { vendor_code: 'vendor_code', // type string }, }
При удалении артикула из корзины покупок будет вызвано событие
removeShoppigCartItem
c парметрами vendor_code и removeAll. removeAll - значение true если удаляется весь артикул.// Подписка на событие удаления артикулов из корзины покупок window.addEventListener('message', (event) => { if (event.data && event.data.eventName === 'removeShoppigCartItem') { // Event handling } }, false) Формат данных: event.data = { eventName: 'addShoppigCartItem', payload: { vendor_code: 'vendor_code', // type string removeAll: true, // type boolean }, }