Отмена заказа
Отменить заказ, снять отмену
Отменить и снять отмену заказа можно через метод CSaleOrder::CancelOrder()
.
$order_id = 5; // Отменить заказ CSaleOrder::CancelOrder($order_id, 'Y'); // Снять отмену CSaleOrder::CancelOrder($order_id, 'N');
Метод CSaleOrder::CancelOrder()
также генерирует события «OnSaleBeforeCancelOrder» и «OnSaleCancelOrder».
Также отменить заказ можно через JavaScript на странице заказа в админке.
// JS-код, выполняется в админке на странице заказа var orderID = 5; // Отменить заказ BX.Sale.Admin.OrderEditPage.onCancelStatusButton(orderID, 'N'); // Снять отмену BX.Sale.Admin.OrderEditPage.onCancelStatusButton(orderID, 'Y');
Статус заказа (отменён)
Узнать, является ли заказ отменённым, можно через метод $order->getField('CANCELED')
.
$order_id = 5; $order = Bitrix\Sale\Order::load($order_id); $order->getField('CANCELED'); // заказ отменён (Y / N) $order->getField('EMP_CANCELED_ID'); // ИД пользователя, отменивший заказ $order->getField('DATE_CANCELED')->toString(); // дата отмены (05.01.2020 21:11:10)
Причина отмены заказа
Указать причину отмены заказа можно через третий параметр метода CSaleOrder::CancelOrder()
.
// Указать причину отмены заказа CSaleOrder::CancelOrder($order_id, 'Y', 'Передумал');
Получить причину отмены заказа можно через метод $order->getField('REASON_CANCELED')
.
$order_id = 5; $order = Bitrix\Sale\Order::load($order_id); // причина отмены заказа $order->getField('REASON_CANCELED');
Код перед и после отмены или снятия заказа
Выполнять код перед и после отмены или снятия заказа можно через события «OnSaleBeforeCancelOrder» и «OnSaleCancelOrder».
# bitrix/php_interface/init.php AddEventHandler('sale', 'OnSaleBeforeCancelOrder', 'OnSaleBeforeCancelOrderHandler'); AddEventHandler('sale', 'OnSaleCancelOrder', 'OnSaleCancelOrderHandler'); function OnSaleBeforeCancelOrderHandler($ID, $val) { // код перед отменой или снятия отмены заказа } function OnSaleCancelOrderHandler($order_id, $status, $info) { // код после отмены или снятия отмены заказа }
Отправлять письмо пользователю об отменённом заказе
После отмены заказа генерируется почтовое событие «SALE_ORDER_CANCEL», при котором пользователю отправляется письмо об отменённом заказе.
Данный шаблон находится в Битрикс по умолчанию.
Поддержать автора