+7 (843) 212-62-17 - Казань
+7 (843) 212-62-17 - Казань

Событие до расчета бонусов

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

При наличии торговых предложений, событие срабатывает для основного товара и для каждого его торгового предложения, потому что для каждого торгового предложения могут быть разные условия, и даже разные правила начислений. При этом в каталоге необходимо отображать бонусы за любое торговое предложение товара. Для этого событие и вызывается на каждое торговое предложение.

Пример события (код вставлять в init.php):
\Bitrix\Main\EventManager::getInstance()->addEventHandler("logictim.balls", "BeforeCalculateBonus", "BeforeCalculateBonus");
function BeforeCalculateBonus(\Bitrix\Main\Event $event)
{
	$arBonus = $event->getParameters();
    
	//Пример отмены начисления бонусов за товар
	$arBonus['BONUS'] = 0;
	
	$result = new Bitrix\Main\EventResult($event->getEventType(), $arBonus);
    return $result;
}

Изменяемые поля:
BONUS - Количество бонусов, указанное в поле "Начислять" правила.
BONUS_TYPE - тип расчета бонусов, указанный в правиле. Доступные варианты: percent - проценты, bonus - бонусы (фиксированное количество бонусов).
ROUND - Степень округления при расчете суммы бонусов (количество знаков после запятой). Доступные значения от 0 до 4.
ROUND_TYPE - Тип округления. Доступные значения: MATH - математическое округление, UP - округление в большую сторону, DOWN - округление в меньшую сторону.
ROUND_METHOD - Метод округления. Доступные значения: UNIT - за единицу товара, POSITION - за всю позицию товара.
VIEW_IN_CATALOG - Показывать бонус в каталоге. Доступные значения: Y - показывать бонус за товар в каталоге, N - не показывать (бонус будет показан только на этапе корзины и оформления заказа.

Доступная в массиве события информация:
PROFILES - список правил, под которые попадает товар.
PROFILE_RULE - правило, которое согласно сортировке применилось к товару.
ELEMENT_INFO - Информация о товаре (ID, разделы товара, торговые предложения, свойства, цены и т.д.).

Возврат к списку