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

Интеграция бонусов в каталог Аспро: Лайтшоп через шаблон компонента 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;
}

Интеграция в список товаров каталога

  1. В разделе /bitrix/templates/aspro-lite/components/bitrix/catalog/main/page_blocks создайте копии файлов:

    • catalog_table.php → catalog_table_custom.php
    • catalog_list.php → catalog_list_custom.php
    • catalog_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_custom
    • Вид отображения элементов списком: catalog_list_custom
    • Вид отображения элементов таблицей: catalog_price_custom
  2. Откройте /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.

Интеграция в карточке товара

  1. Создайте копию /bitrix/templates/aspro-lite/components/bitrix/catalog/main/page_blocks/element_1.php → element_1_custom.php.
  2. В настройках решения Аспро (/bitrix/admin/aspro.lite_options.php) раздел "Каталог" → "Детальная страница каталога" выберите element_1_custom.
  3. В element_1_custom.php замените строку "main", на "custom",.
  4. Создайте копию папки .../catalog.element/main → custom.
  5. В .../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",. Если Аспро при обновлении заменит файл, операцию придётся повторить - кастомизированный файл этого блока решением не предусмотрен.

Быстрый просмотр товара

На момент написания инструкции Аспро не давала заменить шаблон быстрого просмотра на кастомный через настройки. Изменение делают в оригинале файла подключения.

  1. В /bitrix/templates/aspro-lite/components/bitrix/catalog/main/page_blocks/fast_view_1.php замените "fast_view_1", на "fast_view_custom",. Если файл затрут обновлением - повторите только эту замену.
  2. Создайте копию шаблона .../catalog.element/fast_view_1 → fast_view_custom.
  3. В .../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 - отдельная версия для смартфонов и планшетов.

  1. В /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 по аналогии с десктопом.

  2. В /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>
    
  3. Создайте копию .../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>
    

Смотрите также: универсальный каталог.