1 Отредактировано Денис (23-12-2015 20:47:42)

Тема: Как правильно прицепиться к эвентам корзины

Коллеги, добрый день!

При разработке модуля для ImageCMS есть следующая задача:

  • Выполнять код при любом обновлении корзины (добавление, удаление, изменение количества, очистка корзины).

  • Выполнять код при оформлении заказа (причем желательно как из фронта покупателем, так и из админки менеджером).

Делаю так: в autoload() модуля прицепляюсь к событиям:

CMSFactory\Events::create()->onAddItemToCart()->setListener('UpdateCartEvent');
CMSFactory\Events::create()->onRemoveFromCart()->setListener('UpdateCartEvent');
// ...

Возникли следующие вопросы:

  • Событие onAddItemToCart почему-то вызывается дважды, т.к. при добавлении товара в корзину код выполняется два раза с совершенно одинаковым результатом.

  • Событие onRemoveFromCart не срабатывает вообще (триггер не вызывается).

  • Чем отличается эвент onAddToCart от onAddItemToCart?

  • Какой эвент вызывается при изменении количества товара в корзине?

  • К каком эвенту правильно привязаться для отслеживания события оформления заказа в контексте задачи?

Разрабатываю на интернет-магазине редакции 4.8.1 Premium.

Перелопатил документацию к ImageCMS и CodeIgniter, но ясности не наступило. Помогите пожалуйста! Если все получится, то у сообщества будет бесплатный модуль для интеграции с одной популярной маркетинговой системой smile

Thumbs up Thumbs down