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

Вывод бонусов в шаблоне каталога и корзине

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

  
Вывод бонусов в списке товаров:

1. В шаблоне компонента catalog.section подключить компонент logictim:bonus.catalog вне цикла товаров.
<? $APPLICATION->IncludeComponent(
	"logictim:bonus.catalog",
	".default",
	Array(
		"COMPONENT_TEMPLATE" => ".default",
		"COMPOSITE_FRAME_MODE" => "A",
		"COMPOSITE_FRAME_TYPE" => "AUTO",
		"ITEMS" => $arResult["ITEMS"]
	)
);?>

Компонент получает данные по бонусам товаров и торговых предложений, и подставляет их в соответсвующие блоки по id.
В параметр "ITEMS" необходимо передать массив с товарами.

Вы можете создать и подключать собственный шаблон со своими яваскриптами.

2. Добавить под ценой товара блок:
<div class="bonus" id="lb_ajax_<?=$arItem["ID"]?>"></div>
где $arItem["ID"] - ID товара


Вывод бонусов в карточке товара:

В шаблоне компонента catalog.element добавить под ценой товара подключение компонента и блок для подстановки бонусов:

<? $APPLICATION->IncludeComponent(
	"logictim:bonus.catalog",
	".default",
	Array(
		"COMPONENT_TEMPLATE" => ".default",
		"COMPOSITE_FRAME_MODE" => "A",
		"COMPOSITE_FRAME_TYPE" => "AUTO",
		"ITEMS" => array("ITEMS"=>$arResult)
	)
);?>
<div class="bonus" id="lb_ajax_<?=$arResult["ID"]?>"></div>
ВНИМАНИЕ:
  1. Шаблон ".default" компонента logictim:bonus.catalog универсальный и подходит для всех шаблонов.

  2. При необходимости можно создать копию шаблона компонента, и изменить верстку и скрипты под конкретный шаблон сайта.

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


    Для шаблона сайта АСПРО-МАКС имеется готовый шаблон компонента вывода бонусов!!!
    Инструкция для АСПРО-МАКС: https://logictim.ru/marketplace/nakopitelnaya_referalnaya_sistema_versii_4_0_i_vyshe/vnedrenie_v_shablony_4/integratsiya_v_shablon_aspro_max/




Вывод бонусов в корзине (требуется только, если шаблон корзины не стандартный):
$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>
<? }?>

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




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