События

Данный раздел справки находится в стадии наполнения

OnBasketItemDiscountApply - применение скидки

Событие возникает в момент расчета и применения скидки из свойства инфоблока и позволяет изменить величину скидки или отменить ее.

Пример применения события:


<?php


namespace Partner;

\Bitrix\Main\EventManager::getInstance()->addEventHandler
    
'grain.discountbyproperty'
    
'OnBasketItemDiscountApply'
    
'\Partner\DiscountByProperty::onBasketItemDiscountApply'
); 

class 
DiscountByProperty
{
    function 
onBasketItemDiscountApply(\Bitrix\Main\Event $event
    {
        
$order $event->getParameter('order'); // объект заказа (еще не созданного)
        
$basketCode $event->getParameter('basketCode'); // код позиции корзины
        
$basketRow $event->getParameter('basketRow'); // массив позиции корзины
        
$element $event->getParameter('element'); // массив элемента информационного блока, содержит ID, IBLOCK_ID
        
$rowActionDescription $event->getParameter('rowActionDescription'); // описание параметров скидки
        
$discountValue $event->getParameter('discountValue'); // непосредственно величина рассчитанной скидки

        
$return = array();
        
        
// используя массив $element, содержащий ID и IBLOCK_ID товара, можно получить значения дополнительных свойств и др.

        // если $return будет содержать ключ 'discountValue', то значение скидки будет изменено
        
        
$return['discountValue'] = 0// чтобы отменить скидку
        
$return['discountValue'] = -7// чтобы установить величину скидки в валюте
    
        
$result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS$return);
        return 
$result;
    }    
}

OnBasketItemPriceApply - установка цены из свойства

Событие возникает в момент установки цены из свойства инфоблока и позволяет изменить цену или отменить установку цены.

Пример применения события:


<?php


namespace Partner;

\Bitrix\Main\EventManager::getInstance()->addEventHandler
    
'grain.discountbyproperty'
    
'OnBasketItemPriceApply'
    
'\Partner\DiscountByProperty::onBasketItemPriceApply'
); 

class 
DiscountByProperty
{
    function 
onBasketItemPriceApply(\Bitrix\Main\Event $event
    {
        
$order $event->getParameter('order'); // объект заказа (еще не созданного)
        
$basketCode $event->getParameter('basketCode'); // код позиции корзины
        
$basketRow $event->getParameter('basketRow'); // массив позиции корзины
        
$element $event->getParameter('element'); // массив элемента информационного блока, содержит ID, IBLOCK_ID
        
$rowActionDescription $event->getParameter('rowActionDescription'); // описание параметров скидки
        
$basePriceValue $event->getParameter('basePriceValue'); // величина цены до применения правила корзины
        
$priceValue $event->getParameter('priceValue'); // непосредственно величина рассчитанной цены

        
$return = array();
        
        
// используя массив $element, содержащий ID и IBLOCK_ID товара, можно получить значения дополнительных свойств и др.

        // если $return будет содержать ключ 'priceValue', то значение скидки будет изменено
        
        
$return['priceValue'] = $basePriceValue// чтобы отменить установку цены
    
        
$return['priceValue'] = 100// чтобы установить цену

        
$result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS$return);
        return 
$result;
    }    
}