Skip to content
  1. Компоненты
  2. MiniShop3
  3. Разработка
  4. События

События и плагины ​

MiniShop3 использует систему событий MODX для расширения функциональности. Плагины позволяют вмешиваться в процессы обработки корзины, заказов, товаров и покупателей без изменения исходного кода.

Начало работы ​

  • Работа с плагинами — как получить параметры, прервать операцию, модифицировать данные, передать данные между плагинами

События по категориям ​

Корзина ​

СобытиеОписание
msOnBeforeGetCartПеред получением корзины
msOnGetCartПосле получения корзины
msOnBeforeAddToCartПеред добавлением товара
msOnAddToCartПосле добавления товара
msOnBeforeChangeInCartПеред изменением количества
msOnChangeInCartПосле изменения количества
msOnBeforeChangeOptionsInCartПеред изменением опций
msOnChangeOptionInCartПосле изменения опций
msOnBeforeRemoveFromCartПеред удалением товара
msOnRemoveFromCartПосле удаления товара
msOnBeforeEmptyCartПеред очисткой корзины
msOnEmptyCartПосле очистки корзины
msOnGetStatusCartПолучение статуса корзины

Заказ ​

СобытиеОписание
msOnBeforeAddToOrderПеред добавлением поля в заказ
msOnAddToOrderПосле добавления поля
msOnBeforeValidateOrderValueПеред валидацией поля
msOnValidateOrderValueПосле валидации поля
msOnErrorValidateOrderValueОшибка валидации
msOnBeforeRemoveFromOrderПеред удалением поля
msOnRemoveFromOrderПосле удаления поля
msOnBeforeEmptyOrderПеред очисткой черновика заказа
msOnEmptyOrderПосле очистки черновика
msOnSubmitOrderОтправка заказа (витрина)
msOnBeforeMgrCreateOrderПеред финализацией из админки
msOnMgrCreateOrderПосле финализации из админки
msOnBeforeCreateOrderПеред созданием заказа
msOnCreateOrderПосле создания заказа

Стоимость ​

СобытиеОписание
msOnBeforeGetCartCostПеред расчётом стоимости корзины
msOnGetCartCostПосле расчёта стоимости корзины
msOnBeforeGetDeliveryCostПеред расчётом стоимости доставки
msOnGetDeliveryCostПосле расчёта стоимости доставки
msOnBeforeGetPaymentCostПеред расчётом комиссии оплаты
msOnGetPaymentCostПосле расчёта комиссии оплаты
msOnBeforeGetOrderCostПеред итогом заказа (корзина + доставка + оплата)
msOnGetOrderCostПосле итога: можно править cost / cart_cost / delivery_cost / payment_cost

Статус заказа ​

СобытиеОписание
msOnBeforeChangeOrderStatusПеред сменой статуса
msOnChangeOrderStatusПосле смены статуса

Покупатель ​

СобытиеОписание
msOnBeforeGetOrderCustomerПеред получением покупателя
msOnGetOrderCustomerПосле получения покупателя
msOnBeforeGetOrderUserПеред разрешением modUser при сабмите
msOnGetOrderUserПосле разрешения modUser
msOnBeforeAddToCustomerПеред добавлением поля
msOnAddToCustomerПосле добавления поля
msOnBeforeValidateCustomerValueПеред валидацией поля
msOnValidateCustomerValueПосле валидации поля
msOnErrorValidateCustomerValueОшибка валидации
msOnBeforeCreateCustomerПеред созданием покупателя
msOnCreateCustomerПосле создания покупателя
msOnBeforeAddCustomerAddressПеред добавлением адреса
msOnAddCustomerAddressПосле добавления адреса

Товары (каталог) ​

СобытиеОписание
msOnGetProductPriceМодификация цены товара
msOnGetProductWeightМодификация веса товара
msOnGetProductFieldsМодификация полей товара

Сниппет msProducts ​

События для интеграции внешних пакетов (ms3Variants, msBrands и др.) без модификации кода ядра.

СобытиеОписание
msOnProductsLoadПосле загрузки списка товаров (bulk loading)
msOnProductPrepareПодготовка данных каждого товара

Параметр usePackages

Для активации загрузки данных укажите пакет в параметре сниппета: &usePackages='ms3Variants,msBrands'

Товары в заказе ​

СобытиеОписание
msOnBeforeCreateOrderProductПеред добавлением товара в заказ
msOnCreateOrderProductПосле добавления товара
msOnBeforeUpdateOrderProductПеред обновлением товара
msOnUpdateOrderProductПосле обновления товара
msOnBeforeRemoveOrderProductПеред удалением товара
msOnRemoveOrderProductПосле удаления товара

Модель заказа (xPDO) ​

СобытиеОписание
msOnBeforeSaveOrderПеред сохранением (xPDO)
msOnSaveOrderПосле сохранения (xPDO)
msOnBeforeRemoveOrderПеред удалением (xPDO)
msOnRemoveOrderПосле удаления (xPDO)
msOnBeforeUpdateOrderПеред обновлением (админка)
msOnUpdateOrderПосле обновления (админка)

Уведомления ​

СобытиеОписание
msOnBeforeSendNotificationПеред отправкой уведомления
msOnAfterSendNotificationПосле отправки уведомления
msOnRegisterNotificationChannelsРегистрация каналов

Производители ​

СобытиеОписание
msOnBeforeVendorCreateПеред созданием производителя
msOnVendorCreateПосле создания
msOnBeforeVendorUpdateПеред обновлением
msOnVendorUpdateПосле обновления
msOnBeforeVendorDeleteПеред удалением
msOnVendorDeleteПосле удаления

Импорт ​

СобытиеОписание
msOnBeforeImportПеред началом импорта
msOnAfterImportПосле завершения импорта
msOnImportRowПри обработке строки

Админка ​

СобытиеОписание
msOnManagerCustomCssJsЗагрузка скриптов и стилей

Изменения относительно miniShop2 ​

miniShop2MiniShop3Изменения
productmsProductПереименован параметр
msOnGetOrderCostОстался + 3 частичныхРядом: msOnGetCartCost, msOnGetDeliveryCost, msOnGetPaymentCost. Итог по-прежнему правите в msOnGetOrderCost
—controllerПараметр во многих событиях контроллеров
—msOnBeforeEmptyOrder / msOnEmptyOrderОчистка черновика
—msOnBeforeMgrCreateOrder / msOnMgrCreateOrderФинализация из админки
—msOnBeforeGetOrderUser / msOnGetOrderUsermodUser при сабмите
—msOnBeforeValidateCustomerValueНовое событие
—msOnCreateCustomerНовое событие
—msOnAddCustomerAddressНовое событие
—msOnBeforeSendNotificationНовое событие
—msOnImportRowНовое событие
—msOnProductsLoadИнтеграция внешних пакетов
—msOnProductPrepareИнтеграция внешних пакетов

Цепочки вызовов (куда смотреть в коде) ​

ДействиеСобытия по порядку
Очистка черновика (order/clean)msOnBeforeEmptyOrder → reset полей → msOnEmptyOrder
Итог на витринеcart/delivery/payment cost → msOnBeforeGetOrderCost → compose → msOnGetOrderCost (можно вернуть все 4 суммы)
Submit витриныmsOnSubmitOrder → … → msOnBeforeCreateOrder → msOnCreateOrder
Финализация в админкеmsOnBeforeMgrCreateOrder → msOnBeforeCreateOrder → msOnCreateOrder → msOnMgrCreateOrder

Источник реестра: _build/elements/events.php (все имена выше зарегистрированы в MODX).