• МАКС: М.Базаров
  • Телеграм: М.Базаров
  • E-mail: mihail@bazarow.ru

Список событий для компонента оформления заказа. Какие события вызываются при оформлении заказа?

Вопрос задан: 8 июня 2026 в 04:00 | Просмотров: 16 Использованные MCP инструменты: searchDocs, liveApiGetModuleEvents, liveApiGetFunctionCode, liveApiFindByReflection, liveApiGetEventHandlers

Задайте свой вопрос — Работает AI в связке с MCP сервером. Перепроверяйте важную информацию.

Вот полный список событий (модуль sale), которые имеют отношение к компоненту оформления заказа (bitrix:sale.order.ajax), а также смежные события для расчёта заказа и сохранения ордера.

1. События компонента sale.order.ajax (файл: /bitrix/modules/sale/install/components/bitrix/sale.order.ajax/class.php)

  • OnSaleComponentOrderCreated — строка 6048.
    Срабатывает после создания заказа (объекта Order). Позволяет модифицировать заказ перед финальным сохранением.
    Параметры: $order (объект \Bitrix\Sale\Order), $arUserResult (результаты выбора пользователя).
  • OnSaleComponentOrderDeliveriesCalculated — строка 4699.
    Срабатывает после расчёта всех доступных доставок. Позволяет изменить массив рассчитанных доставок.
    Параметры: $arDeliveryList (массив рассчитанных доставок).
  • OnSaleComponentOrderJsData — строка 5258.
    Позволяет модифицировать JavaScript-данные, которые передаются в шаблон компонента для AJAX-обновления.
    Параметры: $arJsData (массив данных для JS).
  • OnSaleComponentOrderOneStepComplete — строка 6552.
    Срабатывает после полного завершения оформления заказа (после успешного создания).
    Параметры: $orderId (ID созданного заказа), $arUserResult (результаты выбора пользователя).
  • OnSaleComponentOrderOneStepFinal — строка 6366.
    Срабатывает на финальной стадии перед тем, как результат будет отдан компоненту для отображения.
    Параметры: $arResult (результирующий массив компонента), $arUserResult, $isStart.
  • OnSaleComponentOrderProperties — строка 971.
    Позволяет модифицировать массив свойств заказа (полей формы) перед их выводом.
    Параметры: $arPropList (список свойств).
  • OnSaleComponentOrderResultPrepared — строка 5534.
    Срабатывает после того, как итоговый массив $arResult полностью подготовлен, но до его передачи в шаблон.
    Параметры: $arResult (результирующий массив).
  • OnSaleComponentOrderShowAjaxAnswer — строка 4940.
    Срабатывает перед отправкой AJAX-ответа. Позволяет изменить данные, возвращаемые по AJAX.
    Параметры: $arResult (массив для AJAX-ответа).
  • OnSaleComponentOrderUserResult — строка 5626.
    Срабатывает после получения результата от пользователя (выбор доставки, оплаты и т.д.).
    Параметры: $arUserResult (результаты выбора пользователя).

2. События расчёта заказа (файл: /bitrix/modules/sale/general/order.php)

  • OnSaleCalculateOrderShoppingCart — строка 64
  • OnSaleCalculateOrderPersonType — строка 71
  • OnSaleCalculateOrderProps — строка 78
  • OnSaleCalculateOrderDelivery — строка 87
  • OnSaleCalculateOrderPaySystem — строка 94
  • OnSaleCalculateOrderDiscount — строка 103
  • OnSaleCalculateOrderShoppingCartTax — строка 147
  • OnSaleCalculateOrderDeliveryTax — строка 154
  • OnSaleCalculateOrder — строка 160

3. События создания / сохранения заказа

  • OnBeforeOrderAdd/bitrix/modules/sale/mysql/order.php, строка 53
  • OnOrderAdd — там же, строка 127
  • OnBeforeOrderUpdate — строка 161
  • OnOrderUpdate — строка 233
  • OnSaleOrderBeforeSaved/bitrix/modules/sale/lib/compatible/eventcompatibility.php, строка 1384
  • OnSaleOrderEntitySaved — там же, строка 1400
  • OnSaleOrderSaved — там же, строка 1402 (также срабатывает в sale/options.php, sale/lib/exchange/)

4. Прочие события, связанные с заказом

  • OnSaleBeforePayOrder — перед оплатой заказа
  • OnSalePayOrder — после оплаты заказа
  • OnSaleOrderPaid — заказ оплачен
  • OnSaleBeforeCancelOrder — перед отменой заказа
  • OnSaleCancelOrder — после отмены заказа
  • OnSaleBeforeDeductOrder — перед отгрузкой
  • OnSaleDeductOrder — после отгрузки
  • OnSaleBeforeDeliveryOrder — перед разрешением доставки
  • OnSaleDeliveryOrder — после разрешения доставки
  • OnSaleBeforeReserveOrder — перед резервированием
  • OnSaleReserveOrder — после резервирования
  • OnSaleStatusOrderChange — изменение статуса заказа
  • OnSaleOrderStatusChangeSendEmail — отправка письма при смене статуса
  • OnOrderNewSendEmail — отправка письма о новом заказе
  • OnOrderPaySendEmail — отправка письма об оплате
  • OnOrderDeliverSendEmail — отправка письма о доставке
  • OnOrderCancelSendEmail — отправка письма об отмене
  • OnBasketOrder — при превращении корзины в заказ
  • OnDoBasketOrder — при переносе товаров из корзины в заказ

5. События компонента sale.order.checkout (новый SPA-компонент)

  • onComponentSaleOrderCheckoutPrepareJsonData/bitrix/modules/sale/install/components/bitrix/sale.order.checkout/class.php, строка 833. Срабатывает при подготовке JSON-данных для Vue-приложения.

6. Событие старого компонента sale.order.full

  • OnSaleComponentOrderComplete/bitrix/modules/sale/install/components/bitrix/sale.order.full/component.php, строка 2260.

Пример подписки на событие OnSaleComponentOrderOneStepComplete:

// регистрируем обработчик в init.php
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
    'sale',
    'OnSaleComponentOrderOneStepComplete',
    'myOrderCompleteHandler'
);

function myOrderCompleteHandler($orderId, array $arUserResult)
{
    // $orderId - ID созданного заказа
    // $arUserResult - массив с выбранными пользователем данными
    // Ваш код, например: запись в лог, отправка доп. уведомления
}

Пример подписки на событие OnSaleComponentOrderResultPrepared:

\Bitrix\Main\EventManager::getInstance()->addEventHandler(
    'sale',
    'OnSaleComponentOrderResultPrepared',
    function(&$arResult) {
        // Модифицируем $arResult перед выводом шаблона
        $arResult['CUSTOM_DATA'] = 'Дополнительные данные';
    }
);