Формирование идентификатора заказа для выгрузки в iiko

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

Май 20, 2022

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

Формирование уникального идентификатора заказа для выгрузки в iiko. Для модуля Интеграция с iiko. Используется событие "OnGenerateOrderUuid".

По умолчанию идентификатор заказа в модуле имеете вид "00000000-0000-0000-0000-000000000001" (для заказа с идентификатором заказа в битрикс 1). Для изменения способа построения заказа можно воспользоваться событием модуля "grain.iiko": "OnGenerateOrderUuid".


<?php

    
namespace Partner;

\Bitrix\Main\EventManager::getInstance()->addEventHandler
    
'grain.iiko'
    
'OnGenerateOrderUuid'
    
'\Partner\IikoOrder::onGenerateOrderUuid'
); 

class 
IikoOrder
{
    public static function 
onGenerateOrderUuid(\Bitrix\Main\Event $event
    {
        
$restaurant $event->getParameter('RESTAURANT'); // массив с данными ресторана
        
$order $event->getParameter('ORDER'); // объект заказа битрикс
        
$uuid $event->getParameter('UUID'); // сформированный по умолчанию Uuid
        
foreach ($event->getResults() as $eventResult// получение данных после другого обработчика, если он был
        
{
            if(
$eventResult->getType() == \Bitrix\Main\EventResult::ERROR)
                continue;
            if(
$eventResult->getParameters())
                
$uuid $eventResult->getParameters();
        }

        
$uuid '10000000-0000-0000-0000-'.str_pad(strval($order->getId()),12,'0',STR_PAD_LEFT);
        
// $uuid = \RandString(8,'012345678abcdef').'-0000-0000-0000-'.str_pad(strval($order->getId()),12,'0',STR_PAD_LEFT);
    
        
$result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS$uuid);
        return 
$result;
    }
}

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