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

API модуля бонусной системы

Информация для разработчиков, и интеграторов

Для вывода бонусов в любом месте, необходимо:
  1. Подключить модуль бонусов.
  2. Получить информацию о бонусах, подключив метод модуля.
    Для списка товаров это нужно делать вне цикла, чтобы не нагружать систему.
    В класс подается массив с товарами, на выходе получаете массив с данными о бонусах для товаров.
  3. Вывести информацию в шаблоне.
Подключение модуля:
Старый вариант:
CModule::IncludeModule('logictim.balls');
Вариант для D7:
use Bitrix\Main\Loader;
Loader::includeModule("logictim.balls"); 

Вывод бонусов в списке товаров:
$arBonus = cHelperCalc::CatalogBonus($arResult); //Подключать вне цикла, чтобы не грузить сервер
$arBonus[$arItem["ID"]]["VIEW_BONUS"];
*$arItem["ID"] - ID товара

Код для быстрой вставки:
<? //Каталог товаров (catalog.section)
CModule::IncludeModule('logictim.balls');
$arBonus = cHelperCalc::CatalogBonus($arResult);
?>
<? if($arBonus[$arItem["ID"]]["VIEW_BONUS"] > 0) {?>
	<div class="bonus">+ <?=$arBonus[$arItem["ID"]]["VIEW_BONUS"]?> <?=COption::GetOptionString("logictim.balls", "TEXT_BONUS_FOR_ITEM", '')?></div>
<? }?>

Вывод бонусов в карточке товара:
$arBonus = cHelperCalc::CatalogBonus($arResult);
$arBonus[$arResult["ID"]]["VIEW_BONUS"];

Код для быстрой вставки:
<? //Карточка товара (catalog.element)
CModule::IncludeModule('logictim.balls');
$arBonus = cHelperCalc::CatalogBonus($arResult);
?>
<? if($arBonus[$arResult["ID"]]["VIEW_BONUS"] > 0) {?>
	<div class="bonus">+ <?=$arBonus[$arResult["ID"]]["VIEW_BONUS"]?> <?=COption::GetOptionString("logictim.balls", "TEXT_BONUS_FOR_ITEM", '')?></div>
<? }?>

Вывод бонусов в корзине:
$arBonus = cHelperCalc::CartBonus($arResult["ITEMS"]["AnDelCanBuy"]);
	//За единицу товара
	$arBonus["ITEMS"][$arItem["PRODUCT_ID"]]["ADD_BONUS_UNIT"];
	//За все количество товара
	$arBonus["ITEMS"][$arItem["PRODUCT_ID"]]["ADD_BONUS"];
	//За всю корзину
	$arBonus["ALL_BONUS"];
Код для быстрой вставки:
<? //В корзине bitrix:sale.basket.basket
CModule::IncludeModule('logictim.balls');
$arBonus = cHelperCalc::CartBonus($arResult["ITEMS"]["AnDelCanBuy"]);
?>
<? //За единицу товара
if($arBonus["ITEMS"][$arItem["PRODUCT_ID"]]["ADD_BONUS_UNIT"] > 0) {?>
    <div class="bonus">
        + <?=$arBonus["ITEMS"][$arItem["PRODUCT_ID"]]["ADD_BONUS_UNIT"];?> <?=COption::GetOptionString("logictim.balls", "TEXT_BONUS_FOR_ITEM", '')?>
    </div>
<? }?>
<? //За все количество товара
if($arBonus["ITEMS"][$arItem["PRODUCT_ID"]]["ADD_BONUS"] > 0) {?>
    <div class="bonus">
        + <?=$arBonus["ITEMS"][$arItem["PRODUCT_ID"]]["ADD_BONUS"];?> <?=COption::GetOptionString("logictim.balls", "TEXT_BONUS_FOR_ITEM", '')?>
    </div>
<? }?>
<? //За всю корзину
if($arBonus["ALL_BONUS"] > 0) {?>
    <div class="bonus">
        + <?=$arBonus["ALL_BONUS"];?> <?=COption::GetOptionString("logictim.balls", "TEXT_BONUS_FOR_ITEM", '')?>
    </div>
<? }?>

Вывод бонусов на странице оформления заказа:
$arBonus = cHelperCalc::CartBonus($arResult["BASKET_ITEMS"]);
	//За единицу товара
	$arBonus["ITEMS"][$arItem["PRODUCT_ID"]]["ADD_BONUS_UNIT"];
	//За все количество товара
	$arBonus["ITEMS"][$arItem["PRODUCT_ID"]]["ADD_BONUS"];
	//За всю корзину
	$arBonus["ALL_BONUS"];
Код для быстрой вставки:
<? //На страницу оформления заказа (sale.order.ajax / шаблон / summary.php)
CModule::IncludeModule('logictim.balls');
$arBonus = cHelperCalc::CartBonus($arResult["BASKET_ITEMS"]);
?>
<? 
//За единицу товара
if($arBonus["ITEMS"][$arItem["PRODUCT_ID"]]["ADD_BONUS_UNIT"] > 0) {?>
    <div class="bonus">
        + <?=$arBonus["ITEMS"][$arItem["PRODUCT_ID"]]["ADD_BONUS_UNIT"];?> <?=COption::GetOptionString("logictim.balls", "TEXT_BONUS_FOR_ITEM", '')?>
    </div>
<? }?>
<? 
//За все количество товара
if($arBonus["ITEMS"][$arItem["PRODUCT_ID"]]["ADD_BONUS"] > 0) {?>
    <div class="bonus">
        + <?=$arBonus["ITEMS"][$arItem["PRODUCT_ID"]]["ADD_BONUS"];?> <?=COption::GetOptionString("logictim.balls", "TEXT_BONUS_FOR_ITEM", '')?>
    </div>
<? }?>
<?
//За всю корзину
if($arBonus["ALL_BONUS"] > 0) {?>
    <div class="bonus">
        + <?=$arBonus["ALL_BONUS"];?> <?=COption::GetOptionString("logictim.balls", "TEXT_BONUS_FOR_ITEM", '')?>
    </div>
<? }?>

Вывод бонусов в любом компоненте с товарами:
Осуществляется аналогично списку товаров.