API модуля бонусной системы
Информация для разработчиков, и интеграторов
Для вывода бонусов в любом месте, необходимо:
- Подключить модуль бонусов.
- Получить информацию о бонусах, подключив метод модуля.
Для списка товаров это нужно делать вне цикла, чтобы не нагружать систему.
В класс подается массив с товарами, на выходе получаете массив с данными о бонусах для товаров.
- Вывести информацию в шаблоне.
Подключение модуля:
Старый вариант:
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>
<? }?>
Вывод бонусов в любом компоненте с товарами:
Осуществляется аналогично списку товаров.