Документация для разработчиков
Темная тема

Сохранение заказа: особые события

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

СобытиеОписание и параметры
OnSaleOrderCanceled Вызывается при сохранении, если был изменен флаг отмены.

Параметры
ENTITY Объект заказа.
OnSaleStatusOrderChange Вызывается при сохранении, если статус заказа был изменен.

Параметры
ENTITY Объект заказа.
OnSaleOrderPaid Вызывается при сохранении, если оплаченность заказа была изменена.

Параметры
ENTITY Объект заказа.
OnShipmentTrackingNumberChange Вызывается при сохранении, если был изменен идентификатор отправления.

Параметры
ENTITY Объект отгрузки.
OnShipmentAllowDelivery Вызывается при сохранении, если был изменен флаг разрешения отгрузки.

Параметры
ENTITY Объект отгрузки.
OnShipmentDeducted Вызывается при сохранении, если был изменен флаг отгрузки.

Параметры
ENTITY Объект отгрузки.
OnSaleBeforeOrderDelete Вызывается перед удалением заказа.

Параметры
ENTITY Объект заказа.


Пользовательские комментарии

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

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
1
shyer
Сообщение не промодерировано, возможны ошибки и неточности.
Цитата
пишет:
[QUOTE][/QUOTE] Сущность заказа передается в параметрах \Bitrix\Main\Event.

Чтобы получить её:
[CODE] AddEventHandler(  "sale"  ,  "OnSaleOrderPaid"  ,  "onSaleOrderSaved"  );  //Событие при оплате заказа

 function   onSaleOrderSaved   ( \Bitrix\Main\Event  $event  )
{
    $order  =  $event ->getParameter( "ENTITY" );
   
    if  (!  $order  ->isPaid()  or   $order  ->isPaid()==  false  )  return  ;  // Обрабатываем только оплаченные заказы
    //Тут происходит какая то логика для оплаченного заказа
    //ID заказа: $order->getId()
    //ID пользователя: $order->getUserId()
    //Сумма заказа: $order->getPrice()
    //Размер скидки: $order->getDiscountPrice()
    //Стоимость доставки: $order->getDeliveryPrice()
    //Оплаченная сумма: $order->getSumPaid()
    //Сумма заказа: $order->getPrice()

} [/CODE]
Или это ошибка или сейчас стало по другому.
В событие передаётся не Event, а Order

function   onSaleOrderSaved   ( $order  )
{
    $order  =  $event ->getParameter( "ENTITY" );
if  (!  $order  ->isPaid()  or   $order  ->isPaid()==  false  )  return  ;  // Обрабатываем только оплаченные заказы

........
0
Алексей Шумовский
Цитата
Сущность заказа передается в параметрах \Bitrix\Main\Event.

Чтобы получить её:
Код
AddEventHandler( "sale" , "OnSaleOrderPaid" , "onSaleOrderSaved" ); //Событие при оплате заказа

function onSaleOrderSaved ( \Bitrix\Main\Event $event )
{
    $order = $event->getParameter("ENTITY");
    
    if (! $order ->isPaid() or $order ->isPaid()== false ) return ; // Обрабатываем только оплаченные заказы
    //Тут происходит какая то логика для оплаченного заказа
    //ID заказа: $order->getId()
    //ID пользователя: $order->getUserId()
    //Сумма заказа: $order->getPrice()
    //Размер скидки: $order->getDiscountPrice()
    //Стоимость доставки: $order->getDeliveryPrice()
    //Оплаченная сумма: $order->getSumPaid()
    //Сумма заказа: $order->getPrice()

}
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх