Формирование идентификатора заказа для выгрузки в 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;
    }
}
Интеграция с iiko и rkeeper, готовый сайт ресторана

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