Сохранение имени и телефона курьера в свойствах заказа

Модуль расширенного управления меню для битрикс

Апрель 7, 2024

Теги: События, Модули grain, Интеграция с iiko

Для модуля Интеграция с iiko от 4.1. Пример использования события "OnWebhookDeliveryOrderUpdate".

Необходимо создать свойства заказа с символьными кодами "COURIER_NAME", "COURIER_PHONE" и настроить обновление статусов заказов из iiko стандартными средствами модуля.


<?php

    
namespace Partner;

\Bitrix\Main\EventManager::getInstance()->addEventHandler
    
'grain.iiko'
    
'OnWebhookDeliveryOrderUpdate'
    
'\Partner\CourierInfo::onWebhookDeliveryOrderUpdate'
); 

class 
CourierInfo
{    
    public static function 
onWebhookDeliveryOrderUpdate(\Bitrix\Main\Event $event
    {
        
$webhook $event->getParameter('WEBHOOK'); // вебхук
        
$order $event->getParameter('ORDER'); // объект заказа
        
$orderStatus $event->getParameter('STATUS'); // статус заказа в iiko, например, "Unconfirmed"
        
$statusId $event->getParameter('STATUS_ID'); // id установленного статуса заказа битрикс

        
$propertyCollection $order->getPropertyCollection();
        if(!
$courierNameProperty=$propertyCollection->getItemByOrderPropertyCode('COURIER_NAME'))
            return;
        if(!
$courierPhoneProperty=$propertyCollection->getItemByOrderPropertyCode('COURIER_PHONE'))
            return;
        
        
$courierName '';
        
$courierPhone '';

        if(isset(
$webhook['eventInfo']['order']['courierInfo']['courier']['name']))
            
$courierName $webhook['eventInfo']['order']['courierInfo']['courier']['name'];
        if(isset(
$webhook['eventInfo']['order']['courierInfo']['courier']['name']))
            
$courierPhone $webhook['eventInfo']['order']['courierInfo']['courier']['phone'];
        
        
$courierNameProperty->setValue($courierName);
        
$courierPhoneProperty->setValue($courierPhone);
        
$order->save();
    }
}

← Переход к списку