Май 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;
}
}