Март 15, 2019
Теги: События, Магазин, Как это сделать?
Отмена заказа при переводе заказа в определенные статусы.
В данном примере будет установлен флаг отмены заказа при переводе заказа в статусы "O", "P":
<?php
namespace Partner;
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler(
'sale',
'OnSaleStatusOrderChange',
['\Partner\OrderAutomation', 'statusChange']
);
class OrderAutomation
{
function statusChange(\Bitrix\Main\Event $event)
{
$order = $event->getParameter("ENTITY");
if(in_array($order->getField('STATUS_ID'),array('O','P')))
{
$orderToChange = \Bitrix\Sale\Order::load($order->getId());
$orderToChange->setField("CANCELED","Y");
$orderToChange->save();
\Bitrix\Sale\Provider::resetTrustData($order->getSiteId());
}
}
}