Снятие активности для отсутствующих товаров

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

Август 31, 2022

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

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

При использовании стоп-листа, товары с количеством 0 будут помечаться как неактивные с помощью данного кода:


<?php

    
namespace Partner;

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

class 
AvailableActivity
{
    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(!\Bitrix\Main\Loader::includeModule('catalog'))
            return;

        
$productResult \Bitrix\Catalog\ProductTable::getList(array(
            
'select' => array('AVAILABLE'),
            
'filter' => array('=ID'=>$id),
            
'limit' => 1,
        ));
        if(
$catalogProduct=$productResult->fetch())
        {
            
\Bitrix\Iblock\ElementTable::update($id,array('ACTIVE'=>$catalogProduct['AVAILABLE']));
        }
    }
}

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