Серверные события

    Серверные события

    Commerce устанавливает на сайт дополнительные события, которые можно перехватывать с помощью плагинов, и тем самым добавлять свою логику в процессы магазина.

    В основном в событиях используется передача параметров по ссылке, т.е. чтобы изменить что-то, не нужно возвращать результат - достаточно изменить значение параметра. Небольшой пример:

    switch ($modx->event->name) {
        case 'OnBeforeCartItemAdding': {
            $params['item']['price'] += 100;
            break;
        }
    }

    Здесь видно два важных момента:

    • Используется именно $modx->event->name вместо сложившейся практики сохранения ссылки на $modx->Event, так как Commerce активно использует вложенные события (http://modx.im/blog/docs/5933.html).
    • Изменяется именно элемент массива $params, а не переменная $item, так как ссылка есть только в массиве.

    Описание событий

    OnInitializeCommerce

    Старт инициализации основного плагина. Параметров нет.

    Может использоваться для регистрации клиентских скриптов, которые зависят от Commerce, для регистрации дополнительных корзин, хранилищ, добавления элементов в контейнер зависимостей и пр.

    switch ($modx->event->name) {
        case 'OnInitializeCommerce': {
            ci()->set('myCustomClass', function($ci) use ($params) {
                require_once MODX_BASE_PATH . 'path/to/CustomClass.php';
                return new CustomClass($params);
            });
    
            $modx->regClientScript('path/to/custom-commerce-script.js');
            break;
        }
    }

    OnCommerceInitialized

    Вызывается после того, как основной плагин инициализирован, корзины и вспомогательные сервисы зарегистрированы. Параметров нет.

    OnInitializeOrderProcessor

    Вызывается в момент получения обработчика заказов. Можно зарегистрировать свой обработчик. Параметров нет.

    class CustomOrdersProcessor implements \Commerce\Interfaces\Processor {
        ...
    }
    
    switch ($modx->event->name) {
        case 'OnInitializeOrderProcessor': {
            $processor = new CustomOrdersProcessor($modx);
            $modx->commerce->setProcessor($processor);
            break;
        }
    }

    OnInitializeOrderForm

    Вызывается в момент инициализации сниппета Order, позволяет редактировать параметры вызова (правила валидации, параметры отправки и пр.)

    Параметры:

    Имя параметраПередается по ссылкеОписание
    configДа Массив с параметрами вызова сниппета Order
    switch ($modx->event->name) {
        case 'OnInitializeOrderForm': {
            $params['rules']['msg'] = [
                'required' => 'Заполните комментарий к заказу!',
            ];
            break;
        }
    }

    OnCollectSubtotals

    Вызывается в разные моменты работы пакета для получения массива дополнительных сборов заказа. Сюда можно включить, например, выбранный покупателем способ доставки и ее стоимость, размер скидки или комиссии.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    rowsДа Массив строк, каждая строка представляет собой массив с ключами title и price - название и цена соответственно.
    totalДаИтоговая стоимость заказа
    realonlyНетПринимает значение true, если собираются только элементы, которые реально изменяют стоимость заказа. Это имеет смысл, чтобы не сохранять с заказом сугубо информативные элементы.
    switch ($modx->event->name) {
        case 'OnCollectSubtotals': {
            $params['total'] += 100;
            $params['rows']['fee'] = [
                'title' => 'Комиссия магазина',
                'price' => 100,
            ];
            break;
        }
    }

    Чтобы выводить дополнительный сбор только после перехода покупателя к оформлению заказа, можно использовать метод обработчика заказов isOrderStarted():

    if ($modx->commerce->loadProcessor()->isOrderStarted()) {
        // добавляем стоимость доставки
    }

    Если вывод также зависит от выбранного способа доставки или оплаты, можно использовать методы обработчика getCurrentDelivery() и getCurrentPayment():

    $processor = $modx->commerce->loadProcessor();
    if ($processor->getCurrentDelivery() == 'mydelivery' && $processor->getCurrentPayment() == 'mypayment') {
        // добавляем стоимость доставки
    }

    OnRegisterDelivery

    Сбор всех доступных покупателю способов доставки заказа.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    rowsДа

    Массив строк <псевдоним> => <параметры>, где <псевдоним> это символьный идентификатор способа доставки, а <параметры> - это массив со следующими ключами:

    titleназвание способа доставки
    priceстоимость
    markupдополнительный html-код
    switch ($modx->event->name) {
        case 'OnRegisterDelivery': {
            $params['rows']['mydelivery'] = [
                'title' => 'Доставка',
                'price' => 100,
            ];
            break;
        }
    }

    OnRegisterPayments

    Сбор всех доступных покупателю способов оплаты. Параметров нет.

    class CustomPayment implements \Commerce\Interfaces\Payment {
        ...
    }
    
    switch ($modx->event->name) {
        case 'OnRegisterPayments': {
            $class = new CustomPayment($modx, $params);
            $modx->commerce->registerPayment('mypayment', 'Мой способ платежа', $class);
            break;
        }
    }

    Часто бывает так, что способы оплаты заказа зависят от выбранного способа доставки. В таком случае можно использовать метод обработчика заказа getCurrentDelivery() для организации условий:

    if ($modx->isBackend() || $modx->commerce->loadProcessor()->getCurrentDelivery() == 'mydelivery') {
        // регистрируем обработчик платежа
    }

    Важно также заметить, что в этом примере используется проверка $modx->isBackend(), чтобы пользовательские условия не влияли на доступность метода оплаты при редактировании и просмотре заказов в панели администрирования.

    OnBeforeOrderAddonsRender

    Вызывается перед выводом способов доставки и оплаты, после их регистрации. Можно изменить выбранный способ, изменить их состав. Удобно, когда доставка зависит от оплаты, или наоборот.

    Из-за того, что корзины выводятся отдельно от формы заказа, и обычно раньше ее, изменение способов доставки никак не повлияет на дополнительные сборы, установленные данными способами доставки, и на общую сумму заказа.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    paymentsДаМассив способов оплаты
    deliveryДаМассив способов доставки
    current_paymentДаВыбранный способ оплаты
    current_deliveryДаВыбранный способ доставки
    switch ($modx->event->name) {
        case 'OnBeforeOrderAddonsRender': {
            if (isset($params['delivery']['pickup'])) {
            // добавляем пояснение для самовывоза
                $params['delivery']['pickup']['markup'] .= '<p>Дождитесь звонка оператора для согласования времени самовывоза!</p>';
        }
    
        if (isset($params['payments']['cash']) && $params['current_delivery'] != 'pickup') {
            // если доставка - не самовывоз, убираем способ оплаты наличными
            unset($params['payments']['cash']);
        }
    
        break;
        }
    }

    OnCommerceAjaxResponse

    Вызывается перед отправкой ответа сервера при ajax-запросе, например при добавлении в корзину или обновлении корзин. Позволяет модифицировать ответ.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    responseДаМассив элементов, из которых состоит ответ сервера.
    Ключ status есть в любом случае, он может принимать значения success или failed и означает, успешен ли запрос или нет. Остальные элементы в разных запросах различаются.
    switch ($modx->event->name) {
        case 'OnCommerceAjaxResponse': {
            $url = trim($_GET['q'], '/');
            if ($url == 'commerce/action' && $_POST['action'] == 'cart/add') {
                $params['response']['myparam'] = 'myresponse';
            }
        break;
        }
    }

    OnBeforeCartItemAdding

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

    Параметры:

    Имя параметраПередается по ссылкеОписание
    instanceНетТип корзины
    preventДаФлаг отмены действия. Если переключить в true, товар не будет добавлен.
    itemДа

    Массив с атрибутами добавляемого товара. Элементы следующие:

    idИдентификатор товара
    nameНазвание
    countКоличество
    priceЦена одной единицы товара
    optionsМассив дополнительных опций
    metaМассив дополнительных данных
    switch ($modx->event->name) {
        case 'OnBeforeCartItemAdding': {
            if ($params['item']['price'] < 100) {
                $params['prevent'] = true;
                $modx->event->stopPropagation();
            }
            break;
        }
    }

    OnBeforeCartItemUpdating

    Вызывается перед изменением товара в корзине. Позволяет модифицировать изменяемые атрибуты.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    instanceНетТип корзины
    rowДаИдентификатор изменяемой строки корзины
    itemДа

    Массив с уже измененными атрибутами товара

    wasaddedНетФлаг, означающий, что первым действием было добавление товара
    preventДаФлаг отмены действия. Если переключить в true, товар не будет изменен

    OnBeforeCartItemRemoving

    Вызывается перед удалением товара из корзины. Позволяет отменить удаление либо изменить товар, который нужно удалить.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    byНетrow или id
    rowДаИдентификатор изменяемой строки корзины, определен, только если если by = row
    idДа

    Идентификатор товара, определен, только если если by = id

    preventДаФлаг отмены действия. Если переключить в true, товар не будет удален

    OnBeforeCartCleaning

    Вызывается перед очисткой корзины. Позволяет отменить очистку.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    instanceНетТип корзины
    preventДаФлаг отмены действия. Если переключить в true, корзина не будет очищена

    OnCartChanged

    Вызывается после любого изменения корзины.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    instanceНетТип корзины
    switch ($modx->event->name) {
        case 'OnCartChanged': {
            if ($params['instance'] == 'products') {
                $cart = ci()->carts->getCart($params['instance']);
    
                if ($cart) {
                    $items = $cart->getItems();
    
                    if (count($items)) {
                // для примера увеличим количество товара в первой строке
                        $row = key($items);
                        $items[$row]['count'] += 1;
                        $cart->setItems($items);
                    }
                }
            }
            break;
        }
    }

    OnOrderRawDataChanged

    Вызывается при изменении данных в процессе оформления заказа.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    dataНетДанные заказа

    OnBeforeOrderProcessing

    Вызывается после валидации данных заказа, до создания самого заказа. Позволяет модифицировать как данные покупателя, так и состав корзины заказа.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    FLДаFormLister
    itemsДаМассив с товарами корзины
    preventДаФлаг отмены действия. Если переключить в true, произойдет отмена заказа
    switch ($modx->event->name) {
        case 'OnBeforeOrderProcessing': {
            $FL->setField('name', 'Вася');
            break;
        }
    }

    Если требуется отменить заказ, желательно добавить сообщение пользователю:

    switch ($modx->event->name) {
        case 'OnBeforeOrderProcessing': {
            $params['prevent'] = true;
            $FL->addMessage('Заказ отменен!');
            break;
        }
    }

    OnBeforePaymentProcess

    Вызывается перед созданием платежа - после создания заказа (если был выбран какой-либо способ платежа), либо при оплате ранее созданного заказа по специальной ссылке.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    orderДаМассив с данными заказа
    paymentНетМассив с описанием и классом обработчика платежа
    FLДаFormLister. Присутствует только в процессе оформления заказа
    instant_redirectДаЕсли 1 - покупатель сразу будет перенаправлен в платежную систему, 0 - будет показан шаблон redirect_template
    redirect_textДаТекст сообщения о перенаправлении на оплату. Присутствует только в процессе оформления заказа
    redirect_templateДаШаблон текста уведомления об оформлении заказа и перенаправлении на оплату
    switch ($modx->event->name) {
        case 'OnBeforePaymentProcess': {
            if (isset($FL) && $order['fields']['payment_method'] == 'mypayment') {
            $params['redirect_text'] = 'Перенаправление!';
        }
            break;
        }
    }

    OnBeforePaymentCreate

    Вызывается при создании и сохранении платежа, позволяет изменить сумму.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    order_idНетИдентификатор заказа, который оплачивается
    order_amountНетСтоимость заказа
    amountДаСумма платежа, за вычетом суммы оплаченных ранее траншей
    hashДаХэш платежа, для формирования ссылок
    switch ($modx->event->name) {
        case 'OnBeforePaymentCreate': {
            // получаем данные формы заказа
            $data = ci()->commerce->loadProcessor()->getRawData();
    
            // если включена предоплата, уменьшаем сумму вполовину
            if (!empty($data['partial'])) {
                $params['amount'] = $params['amount'] * 0.5;
            }
    
            break;
        }
    }

    OnBeforeOrderSaving

    Вызывается перед самым сохранением заказа в базу данных, когда все данные собраны, при создании, либо обновлении заказа. Позволяет полностью изменить заказ. Отменить сохранение нельзя.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    order_idНетИдентификатор заказа, null если заказ новый
    valuesДаЗначения полей для сохранения в таблицу commerce_orders
    itemsДаМассив товаров, подготовленный для сохранения в таблицу commerce_order_products
    subtotalsДаМассив доп.сборов, сохраняется также в commerce_order_products в облегченной форме

    OnBeforeOrderSending

    Вызывается после сохранения заказа, перед отправкой уведомления менеджеру.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    FLДаFormLister
    orderДаДанные заказа
    cartДаДанные сохраненной корзины

    OnOrderSaved

    Вызывается после сохранения заказа в базу данных.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    modeНетПри создании заказа - "new", при обновлении - "upd"
    order_idНетИдентификатор заказа
    valuesДаЗначения полей из таблицы commerce_orders
    itemsДаМассив товаров из таблицы commerce_order_products
    subtotalsДаМассив доп.сборов из таблицы commerce_order_products

    OnOrderProcessed

    Вызывается после окончания обработки заказа.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    FLДаFormLister
    orderНетДанные заказа
    cartНетДанные сохраненной корзины

    OnOrderPaid

    Вызывается после оплаты заказа (полной или частичной).

    Параметры:

    Имя параметраПередается по ссылкеОписание
    order_idНетИдентификатор заказа
    orderНетДанные заказа
    status_idНетИдентификатор статуса заказа после оплаты
    paymentНетДанные платежа
    totalНетПолная сумма всех платежей по заказу
    fully_paidНетtrue, если заказ полностью оплачен

    OnBeforeCurrencyChange

    Вызывается перед сменой текущей валюты. Позволяет подменить новую валюту на другую. Параметры:

    Имя параметраПередается по ссылкеОписание
    oldНетСимвольный идентификатор текущей валюты
    newДаСимвольный идентификатор устанавливаемой валюты

    OnOrderPlaceholdersPopulated

    Вызывается после назначения плейсхолдеров с данными заказа на странице переадресации после успешного оформления заказа или проведения оплаты.

    Имя параметраПередается по ссылкеОписание
    orderНетДанные заказа

    OnBeforeOrderHistoryUpdate

    Вызывается перед добавлением истории заказа. Позволяет изменить статус и комментарий, либо отменить добавление или уведомление покупателя.

    Имя параметраПередается по ссылкеОписание
    order_idНетИдентификатор заказа
    orderНетДанные заказа
    status_idДаИдентификатор назначаемого статуса заказа
    commentДаКомментарий
    notifyДаНужно ли уведомлять покупателя об изменении статуса, true или false
    preventДаОтменить изменение истории, true или false
    switch ($modx->event->name) {
        case 'OnBeforeOrderHistoryUpdate': {
            if ($status_id == 4) {
            $params['prevent'] = true;
                $modx->event->stopPropagation();
        }
    
        if ($status_id == 10) {
            $params['comment'] = 'Мой комментарий';
        }
        }
    }

    OnBeforeCustomerNotifySending

    Вызывается перед уведомлением покупателя при изменении истории заказа или изменении данных заказа. Позволяет изменить уведомление либо отменить отправку.

    Имя параметраПередается по ссылкеОписание
    reasonНетТип события:
    order_changed - добавление истории заказа
    status_changed - изменение данных заказа
    orderДаДанные заказа
    subjectДаШаблон темы письма-уведомления
    bodyДаШаблон текста письма-уведомления
    dataДаДанные, которые будут использоваться при парсинге шаблонов письма
    preventДаОтменить отправку уведомления, true или false

    События панели администратора

    Эти события вызываются при работе менеджера с заказами в панели администрирования магазином.

    OnManagerBeforeOrdersListRender

    Вызывается перед выводом списка заказов. Позволяет модифицировать вывод.

    Имя параметраПередается по ссылкеОписание
    configДаКонфигурация DocLister. Вывод формируется его контроллером onetable
    columnsДаКонфигурация колонок - массив пар идентификатор колонки => параметры колонки
    filtersДаКонфигурация фильтров

    Параметры конфигурации DocLister по умолчанию:

    [
        'orderBy'         => 'created_at DESC',
        'display'         => 10,
        'paginate'        => 'pages',
        'TplWrapPaginate' => '@CODE:<ul class="[+class+]">[+wrap+]</ul>',
        'TplCurrentPage'  => '@CODE:<li class="page-item active"><span class="page-link">[+num+]</span></li>',
        'TplPage'         => '@CODE:<li class="page-item"><a href="[+link+]" class="page-link page" data-page="[+num+]">[+num+]</a></li>',
        'TplNextP'        => '@CODE:',
        'TplPrevP'        => '@CODE:',
    ];

    В параметрах колонок можно использовать следующие параметры:

    Имя параметраОписание
    titleЗаголовок колонки
    contentСодержимое. Может быть строкой - именем поля из заказа, либо анонимной функцией со следующими параметрами:
    $data - данные заказа
    $DL - ссылка на объект $_DocLister
    $eDL - ссылка на объект $_extDocLister
    sortИндекс для сортировки
    styleCss-стиль колонки, добавляется к каждой ячейке

    Конфигурация колонок по умолчанию:

    [
        'id' => [
            'title'   => '#',
            'content' => 'id',
            'sort'    => 0,
            'style'   => 'width: 1%; text-align: center;',
        ],
        ...
        'name' => [
            'title'   => $lang['order.name_field'],
            'content' => 'name',
            'sort'    => 20,
        ],
        ...
        'email' => [
            'title'   => $lang['order.email_field'],
            'content' => function($data, $DL, $eDL) {
                if (!empty($data['email']) && filter_var($data['email'], FILTER_VALIDATE_EMAIL)) {
                    return '<a href="mailto:' . $data['email'] . '">' . $data['email'] . '</a>';
                }
                return '';
            },
            'sort'    => 40,
            'style'   => 'white-space: nowrap;',
        ],
        ...
    ];

    Пример:

    switch ($modx->event->name) {
        case 'OnManagerBeforeOrdersListRender': {
            $params['config']['display'] = 50;
    
            $params['columns']['lastname'] = [
                'title'   => 'Фамилия',
                'content' => function($data, $DL, $eDL) {
                    if (!empty($data['fields']['lastname'])) {
                        return htmlentities($data['fields']['lastname']);
                    }
                    return '';
                },
                'sort' => 23,
            ];
        }
    }

    OnManagerOrdersListRender

    Это стандартное событие Modx, рассчитанное на получение строки, которая будет выведена в конце страницы со списком заказов. Для установки значения нужно использовать метод $modx->event->setOutput().

    Параметры:

    Имя параметраПередается по ссылкеОписание
    ordersНетМассив заказов для вывода

    OnManagerBeforeOrderRender

    Вызывается перед выводом детальной информации о заказе

    Параметры:

    Имя параметраПередается по ссылкеОписание
    orderДаДанные заказа
    groupsДаКонфигурация групп с информацией о заказе
    configДаКонфигурация DocLister для вывода товаров из заказа
    columnsДаКонфигурация колонок для вывода товаров заказа
    subcolumnsДаКонфигурация колонок для вывода дополнительных сборов

    Пример:

    switch ($modx->Event->name) {
        case 'OnManagerBeforeOrderRender': {
            $params['groups']['order_info']['fields']['msg'] = [
                'title' => 'Комментарий',
                'content' => function($data) {
                    return !empty($data['fields']['msg']) ? htmlentities($data['fields']['msg']) : '';
                },
                'sort' => 40,
            ];
        unset($params['columns']['options']);
        break;
        }
    }

    OnManagerOrderRender

    Это стандартное событие Modx, рассчитанное на получение строки, которая будет выведена в конце страницы детального просмотра заказа. Для установки значения нужно использовать метод $modx->event->setOutput().

    Параметры:

    Имя параметраПередается по ссылкеОписание
    orderНетМассив с данными заказа
    productsНетМассив с товарами заказа
    subtotalsНетМассив с доп.сборами заказа

    OnManagerBeforeOrderEditRender

    Вызывается перед выводом страницы редактирования заказа.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    orderДаДанные заказа
    fieldsДаКонфигурация полей заказа
    configДаКонфигурация DocLister для вывода товаров из заказа
    columnsДаКонфигурация колонок для вывода полей редактирования товаров заказа
    subcolumnsДаКонфигурация колонок для вывода дполей редактирования ополнительных сборов

    OnManagerOrderRender

    Это стандартное событие Modx, рассчитанное на получение строки, которая будет выведена в конце страницы редактирования заказа. Для установки значения нужно использовать метод $modx->event->setOutput().

    Параметры:

    Имя параметраПередается по ссылкеОписание
    orderНетМассив с данными заказа
    productsНетМассив с товарами заказа
    subtotalsНетМассив с доп.сборами заказа

    OnManagerBeforeOrderValidating

    Вызывается при сохранении отредактированного заказа перед валидацией новых значений.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    orderНетОригинальные данные заказа
    dataДаМассив с новыми данными и провилами их проверки. Для проверки правил используется валидатор из комплекта FormLister.

    Структура массива с новыми данными:

    [
        'order' => [
            'data'  => [
                // данные заказа
                'name' => 'Вася',
                'email' => 'test@test.test',
                ...
            ],
            'rules' => [
                // правила проверки, например:
                '!name' => [
                    'lengthBetween' => [
                        'params' => [2, 255],
                        'message' => $lang['module.error.name_length'],
                    ],
                ],
                'email' => [
                    'email' => $lang['module.error.email_incorrect'],
                ],
                ...
            ],
        ],
        'cart' => [
            'data'  => [
                // данные корзины заказа
            ],
            'rules' => [
                // правила проверки
            ],
        ],
        'subtotals' => [
            'data'  => [
                // данные дополнительных сборов заказа
            ],
            'rules' => [
                // правила проверки
            ],
        ],
    ];

    OnManagerOrderValidated

    Вызывается после проверки данных заказа, независимо от того, пройдена проверка или нет.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    orderНетДанные заказа
    dataДаДанные из события OnManagerBeforeOrderValidating
    errorsДаМассив с ошибками. Если массив пустой - валидация пройдет успешно, если нет - редактирование заказа будет отменено, а ошибки будут выведены на экран

    OnManagerStatusesListRender

    Это стандартное событие Modx, рассчитанное на получение строки, которая будет выведена в конце страницы со списком статусов заказов. Для установки значения нужно использовать метод $modx->event->setOutput().

    Параметры:

    Имя параметраПередается по ссылкеОписание
    listНетМассив со статусами заказов

    OnManagerStatusRender

    Это стандартное событие Modx, рассчитанное на получение строки, которая будет выведена в конце страницы редактирования статуса заказов. Для установки значения нужно использовать метод $modx->event->setOutput().

    Параметры:

    Имя параметраПередается по ссылкеОписание
    statusНетМассив с данными статуса заказов

    OnManagerCurrencyListRender

    Это стандартное событие Modx, рассчитанное на получение строки, которая будет выведена в конце страницы со списком валют. Для установки значения нужно использовать метод $modx->event->setOutput().

    Параметры:

    Имя параметраПередается по ссылкеОписание
    listНетМассив со списком валют

    OnManagerCurrencyRender

    Это стандартное событие Modx, рассчитанное на получение строки, которая будет выведена в конце страницы редактирования валюты. Для установки значения нужно использовать метод $modx->event->setOutput().

    Параметры:

    Имя параметраПередается по ссылкеОписание
    statusНетМассив с данными валюты

    OnManagerBeforeDefaultCurrencyChange

    Вызывается при сохранении валюты, в случае, если редактируемая валюта назначается валютой по умолчанию.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    oldНетДанные валюты, которая была установлена по умолчанию прежде
    newДаДанные валюты, назначаемой по умолчанию

    OnManagerRegisterCommerceController

    Вызывается перед орбаботкой пути при работе в модуле в панели администрирования. Дает возможность зарегистрировать свой контроллер.

    Параметры:

    Имя параметраПередается по ссылкеОписание
    moduleДаСсылка на класс-менеджер модуля \Commerce\Module\Manager
    class MyController extends \Commerce\Module\Controllers\Controller implements \Commerce\Module\Interfaces\Controller
    {
        ...
    }
    
    switch ($modx->Event->name) {
        case 'OnManagerRegisterCommerceController': {
            $module->registerController('customroute', new MyController($modx, $module));
        break;
        }
    }