Интеграция бонусов в каталог Аспро: Лайтшоп через шаблон компонента aspro_lite. Корзину и оформление сначала проверьте через автоинтеграцию.
Данная интеграция - помощь в облегчении внедрения. Мы не несем ответственности при некорректной интеграции сторонними специалистами и при изменении кода шаблона сайта. Вы можете открыть код нашего шаблона и отредактировать его под ваши нужды.
Актуальная версия Битрикс на дату 15.10.2024 имела ошибки кэширования, из-за которых пропадали стили после обновления страницы. Заявка в Битрикс: "Проблема кэширования скриптов и стилей шаблонов компонентов в рамках комплексного компонента", номер 138763. Пока проблема актуальна, дополнительно перенесите стили компонента в файл шаблона сайта.
Для этого: откройте /bitrix/components/logictim/bonus.catalog/templates/aspro_lite/style.css, скопируйте весь код файла и добавьте стили в /bitrix/templates/aspro-lite/css/custom.css.
Для отображения бонусов в корзине добавьте в /bitrix/templates/aspro-lite/css/custom.css:
.bonus_item_cart, .lt_cart_bonus_all {
font-size: .8rem;
line-height: 1rem;
position: relative;
padding: 4px 0 0 14px;
width: max-content;
margin-left: auto;
}
.bonus_item_cart:after, .lt_cart_bonus_all:after {
content: '';
display: block;
position: absolute;
left: 0;
top: 3px;
bottom: 0;
width: 11px;
background: url(/bitrix/components/logictim/bonus.catalog/templates/aspro_lite/images/bonus_icon.svg) center no-repeat;
}
В разделе /bitrix/templates/aspro-lite/components/bitrix/catalog/main/page_blocks создайте копии файлов:
catalog_table.php → catalog_table_custom.phpcatalog_list.php → catalog_list_custom.phpcatalog_price.php → catalog_price_custom.phpВ catalog_table_custom.php замените "catalog_block", на "catalog_block_custom",.
В catalog_list_custom.php замените "catalog_list", на "catalog_list_custom",.
В catalog_price_custom.php замените "catalog_price", на "catalog_price_custom",.
В настройках решения Аспро в разделе "Каталог" укажите:
catalog_table_customcatalog_list_customcatalog_price_customОткройте /bitrix/templates/aspro-lite/components/bitrix/catalog.section. Создайте копии шаблонов catalog_block, catalog_list, catalog_table с именами catalog_block_custom, catalog_list_custom, catalog_table_custom.
В файлы:
.../catalog_block_custom/template.php.../catalog_list_custom/template.php.../catalog_table_custom/template.phpвне цикла (после кода) вставьте:
<? if(CModule::IncludeModule('logictim.balls')){
$APPLICATION->IncludeComponent(
"logictim:bonus.catalog",
"aspro_lite",
Array(
"COMPONENT_TEMPLATE" => ".default",
"COMPOSITE_FRAME_MODE" => "A",
"COMPOSITE_FRAME_TYPE" => "AUTO",
"ITEMS" => $arResult["ITEMS"]
)
);}?>
После блока с ценой
<div class="js-popup-price" data-price-config='<?=str_replace('\'', '"', CUtil::PhpToJSObject($arPriceConfig, false, true))?>'>
...
</div>
вставьте:
<div class="lb_bonus lb_ajax_<?=$arItem["ID"]?>" data-item="<?=$arItem["ID"]?>"></div>
В папке /bitrix/components/aspro/tabs.lite/templates/ сделайте копию папки .default с названием custom. В файле .../custom/page_blocks/catalog_block.php замените 'catalog_block', на 'catalog_block_custom',. В настройках компонента "Аспро: Табы на главной" переключите шаблон с .default на custom.
/bitrix/templates/aspro-lite/components/bitrix/catalog/main/page_blocks/element_1.php → element_1_custom.php./bitrix/admin/aspro.lite_options.php) раздел "Каталог" → "Детальная страница каталога" выберите element_1_custom.element_1_custom.php замените строку "main", на "custom",..../catalog.element/main → custom..../catalog.element/custom/template.php в любом месте вставьте:<? if(CModule::IncludeModule('logictim.balls')){
$APPLICATION->IncludeComponent(
"logictim:bonus.catalog",
"aspro_lite",
Array(
"COMPONENT_TEMPLATE" => ".default",
"COMPOSITE_FRAME_MODE" => "A",
"COMPOSITE_FRAME_TYPE" => "AUTO",
"ITEMS" => array("ITEMS"=>$arResult)
)
);}?>
После кода
<div class="line-block line-block--20 line-block--16-vertical line-block--align-normal flexbox--wrap flexbox--justify-beetwen<?=($priceHtml ? '' : ' hidden')?>">
<div class="line-block__item catalog-detail__price catalog-detail__info--margined js-popup-price" data-price-config='<?=str_replace('\'', '"', CUtil::PhpToJSObject($arPriceConfig, false, true))?>'>
<?=$priceHtml?>
</div>
</div>
вставьте:
<div class="lb_bonus lb_ajax_<?=$arResult["ID"]?>" data-item="<?=$arResult["ID"]?>"></div>
Подключение в файле /include/blocks/detail_linked_goods.php. Замените "catalog_block", на "catalog_block_custom",. Если Аспро при обновлении заменит файл, операцию придётся повторить - кастомизированный файл этого блока решением не предусмотрен.
На момент написания инструкции Аспро не давала заменить шаблон быстрого просмотра на кастомный через настройки. Изменение делают в оригинале файла подключения.
/bitrix/templates/aspro-lite/components/bitrix/catalog/main/page_blocks/fast_view_1.php замените "fast_view_1", на "fast_view_custom",. Если файл затрут обновлением - повторите только эту замену..../catalog.element/fast_view_1 → fast_view_custom..../fast_view_custom/template.php добавьте:<? if(CModule::IncludeModule('logictim.balls')){
$APPLICATION->IncludeComponent(
"logictim:bonus.catalog",
"aspro_lite",
Array(
"COMPONENT_TEMPLATE" => ".default",
"COMPOSITE_FRAME_MODE" => "A",
"COMPOSITE_FRAME_TYPE" => "AUTO",
"ITEMS" => array("ITEMS"=>$arResult)
)
);}?>
После строки <?=$priceHtml?> вставьте:
<div class="lb_bonus lb_ajax_<?=$arResult["ID"]?>" data-item="<?=$arResult["ID"]?>"></div>
Начиная с обновления 1.2.0 в решении доступен мобильный шаблон aspro-lite-mobile - отдельная версия для смартфонов и планшетов.
В /bitrix/templates/aspro-lite-mobile/components/bitrix/catalog/main/page_blocks создайте копии catalog_table.php, catalog_list.php, catalog_price.php с суффиксом _custom и замените имена шаблонов на catalog_block_custom, catalog_list_custom, catalog_price_custom по аналогии с десктопом.
В /bitrix/templates/aspro-lite-mobile/components/bitrix/catalog.section создайте копии catalog_block, catalog_list, catalog_table → *_custom. В их template.php вне цикла вставьте тот же вызов logictim:bonus.catalog с шаблоном aspro_lite и массив $arResult["ITEMS"].
После блока с ценой
<div class="js-popup-price" data-price-config='<?=str_replace('\'', '"', CUtil::PhpToJSObject($arPriceConfig, false, true))?>'>
...
</div>
и/или после <?=$priceHtml;?> вставьте:
<div class="lb_bonus lb_ajax_<?=$arItem["ID"]?>" data-item="<?=$arItem["ID"]?>"></div>
Создайте копию .../aspro-lite-mobile/.../page_blocks/element_1.php → element_1_custom.php. В ней замените "main", на "custom",. Создайте копию .../catalog.element/main → custom в мобильном шаблоне. В template.php карточки вставьте подключение компонента с ITEMS => array("ITEMS"=>$arResult) и после <?=$priceHtml?> - блок:
<div class="lb_bonus lb_ajax_<?=$arResult["ID"]?>" data-item="<?=$arResult["ID"]?>"></div>
Смотрите также: универсальный каталог.