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

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

СобытиеОписание и параметрыПолные названия событий
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-2019, «1С-Битрикс», 2019
Наверх