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

События после сохранения сущности

СобытиеОписание и параметрыПолные названия событий
On<наследник>EntitySaved Происходит непосредственно после сохранения сущности системы заказов.

Параметры
ENTITY Сохраняемый объект.
VALUES Cтарые значения полей.
OnSaleOrderEntitySaved

OnSaleBasketItemEntitySaved

OnSaleShipmentEntitySaved

OnSaleShipmentItemEntitySaved

OnSalePaymentEntitySaved

OnSalePropertyValueEntitySaved
где <наследник> - это один из наследников класса \Bitrix\Sale\Internals\Entity:
  • заказ - SaleOrder;
  • товар в корзине - SaleBasketItem;
  • отгрузка - SaleShipment;
  • товар в отгрузке - SaleShipmentItem;
  • оплата - SalePayment;
  • свойство заказа - SalePropertyValue.

Примеры

//рассмотрим пример использования события OnSalePaymentEntitySaved:

\Bitrix\Main\EventManager::getInstance()->addEventHandler(
    'sale',
    'OnSalePaymentEntitySaved',
    'myFunction'
);

/*
В обработчике определяется, что, если оплата выполняется через внутренний счет,
то выполняются какие-то свои действия при сохранении сущности:
*/

function myFunction(\Bitrix\Main\Event $event)
{
     /** @var Payment $payment */
    $payment = $event->getParameter("ENTITY");
    $oldValues = $event->getParameter("VALUES");

    if ($payment->isInner())
    {
        // это внутренний счет
        // . . . 
    }
}


//пример по выполнению некоторых действий при изменении статуса заказа

\Bitrix\Main\EventManager::getInstance()->addEventHandler(
	'sale',
	'OnSaleOrderEntitySaved',
	'OnStatusChange'
);

function OnStatusChange(Bitrix\Main\Event $event)
{
	$arEmailFields = array();
	$order = $event->getParameter("ENTITY");
	$oldValues = $event->getParameter("VALUES");
	$arOrderVals = $order->getFields()->getValues();
	if($arOrderVals['STATUS_ID'] == 'F' && isset($oldValues['STATUS_ID']) && $oldValues['STATUS_ID'] != 'F') // статус изменился
		{
         // Выполните необходимые вам действия
         //  ...
		}

}



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