События

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

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;
    }    
}