Установка свойства с единицей измерения из внешнего меню

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

Апрель 25, 2025

Теги: Инфоблоки, События, Интеграция с iiko

Установка свойства товара с дополнительной единицей измерения из данных внешнего меню. Для модуля Интеграция с iiko.

Данные берутся из itemSizes/measureUnitType. Эти данные не используются штатно в модуле, и не влияют на добавление в корзину и отправку заказов, но могут быть полезны в информационных целях. Возможные значения: "MILLILITER", "GRAM" и другие.


<?php

    
namespace Partner;

\Bitrix\Main\EventManager::getInstance()->addEventHandler
    
'grain.iiko'
    
'OnAfterSyncElementAsProductPropertyUpdate'
    
'\Partner\SetMeasureProperty::onAfterSyncElementAsProductPropertyUpdate'
); 

class 
SetMeasureProperty
{
    public static function 
onAfterSyncElementAsProductPropertyUpdate(\Bitrix\Main\Event $event
    {
        
// на этапе вызова события элемент инфоблока создан или обновлен, также обновлены данные товара и свойства
        
$restaurant $event->getParameter('RESTAURANT'); // массив с данными ресторана
        
$fields $event->getParameter('PROP_TO_PRODUCT'); // соответствие название свойств и полей товара из iiko
        
$id $event->getParameter('ID'); // ID элемента инфоблока
        
$product $event->getParameter('PRODUCT'); // данные товара из iiko

        // проставляем свойство с единицами измерения в элементах инфоблока 
        
if(is_array($product['itemSizes']))
        {
            
$measureUnitType '';
            foreach(
$product['itemSizes'] as $size)
            {
                if(isset(
$size['measureUnitType']) && $size['measureUnitType'])
                {
                    
$measureUnitType $size['measureUnitType'];
                    break;
                }
            }
            
\CIBlockElement::SetPropertyValueCode($id'MEASURE_UNIT_TYPE'$measureUnitType);
        }
        
// /проставляем свойство с единицами измерения в элементах инфоблока 
    
}


}
Интеграция с iiko и rkeeper, готовый сайт ресторана

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