Компонент logictim:bonus.catalog показывает, сколько бонусов ожидается за товар. Нужен на кастомных шаблонах. На Аспро: Максимум (с 1.8.10), Аспро Премьер (модуль с 4.3.1) и INTEC.KOSMOS (с 1.0.4) ничего делать не нужно.
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 нужно передать массив с товарами. Можно создать и подключать собственный шаблон со своими скриптами.
<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>
.default компонента logictim:bonus.catalog универсальный и подходит для большинства шаблонов.Отдельные инструкции по шаблонам: Аспро NEXT, Аспро Лайтшоп.
Битрикс кэширует страницы каталога в разрезе групп пользователей. Если по условиям правила бонусы для разных пользователей отличаются, по умолчанию в каталоге они могут не показываться и отображаются на этапе оформления заказа.
Чтобы показывать бонусы индивидуально:
logictim:bonus.catalog (как выше).При AJAX-выводе бонусы рассчитываются при каждой загрузке страницы. Это увеличивает нагрузку на сервер - включайте осознанно.
Осуществляется аналогично списку товаров: подключение компонента вне цикла (или с передачей нужного массива ITEMS) и блок id="lb_ajax_..." у каждого элемента.
Смотрите также: кастомная корзина, каталог для владельца, для разработчиков.