Товары ВКонтакте 2.0

События

Для решения частных случаев в логику модуля были добавлены некоторые события, позволяющие модифицировать конечный вариант представления товара в вконтакте. Описание всех доступных событий есть в коде, в файле /bitrix/modules/bxmaker.vk/manager.php, в котором они представлены как константы и описание передаваемых полей.

Изменение описания товара

onBeforeProductDescription вызывается перед началом формирования описания товара.

onBeforeProductWithOffersDescriptionPart вызывается перед началом формирования пролога или эпилога описания товара с торговыми предложениями.

onBeforeProductWithOffersDescriptionRepeatConten вызывается перед началом формирования (повторяющейся части - при объединении) основного контента описания товара с торговыми предложениями/

Изменение полей товара в ВКонтакте

Нижележащие события влияют на формирвоание описания масива полей передаваемых в ВКонтакте по API.

onAfterPrepareFieldsVkFromProduct - вызывается перед началом формирования (повторяющейся части - при объединении) основного контента описания товара с торговыми предложениями.

onAfterPrepareFieldsVkFromProductWithOffers - вызывается перед началом формирования (повторяющейся части - при объединении) основного контента описания товара с торговыми предложениями.

Пример использования

Подписываемся на событие и возвращаем модифицированный шаблон описания простого товара. Для этого разместим в файле init.php код приведенный ниже:

    $oEventManager = \Bitrix\Main\EventManager::getInstance();
    $oEventManager->addEventHandler('bxmaker.vk', 'onBeforeProductDescription', array("ClassCheckEvent", "onEvent"));
    
    class ClassCheckEvent
    {
        public static function onEvent(\Bitrix\Main\Event $event)
        {
            /**
             * @var \Bitrix\Main\Event $event
             */
            $template = $event->getParameter('template');   
 
            $template = str_replace('{BR}', '*!*', $template);    
            $template .= ' --- '.date('Y.m.d H:i:s'); 
           
            $result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, array(
                'template' => $template
            ));
            return $result;
        }
    }