Перейти к основному содержимому

Рекомендации на сайте 1С-Битрикс

В модуле «Октопус CDP» (с версии 0.9.0) есть два способа вывести на сайте подборки товаров от Октопуса:

  • компонент «Рекомендации Октопуса» — ставится на страницу и выводит товары каталогом сайта, с его оформлением и ценами;
  • PHP-класс \OctopusCDP\Client\Recommendations — возвращает ID товаров, чтобы передать их в любой компонент или обработать в своём коде.

Оба работают через метод GET /recommendations: там подробно описано, как строятся подборки и когда они доступны.


Подборки​

ПодборкаГде показыватьЧто нужно
Вам может понравитьсяГлавная, личный кабинет, пустая корзина—
Похожие товарыКарточка товараID товара
С этим покупаютКарточка товара или корзинаID товара или текущая корзина
Вы недавно смотрелиКарточка товара, личный кабинет—

«Вы недавно смотрели» доступно на всех тарифах, остальные подборки — с тарифа «Рост» и при условии, что в Октопус передано не меньше 20 товаров.


Перед началом​

  1. Модуль «Октопус CDP» обновлён до версии 0.9.0 или новее.
  2. В настройках модуля выбран инфоблок товаров — товары выгружаются в Октопус. Без него подборки не запрашиваются.
  3. В кабинете Октопуса сопоставлены поля товаров, в том числе ссылка на страницу товара: по ней просмотры привязываются к товарам.

Компонент «Рекомендации Октопуса»​

В визуальном редакторе компонент находится в группе «Октопус CDP». Его можно разместить в шаблоне сайта или на странице, как любой другой компонент.

Параметры​

ПараметрОписание
ПодборкаВам может понравиться, Похожие товары, С этим покупают, Вы недавно смотрели
Заголовок блокаВыводится над товарами. Пусто — без заголовка
Количество товаровДо 50
ID товараДля похожих и «с этим покупают». В карточке товара — ID текущего товара
К корзине«С этим покупают» без ID товара подбирает к текущей корзине посетителя
Не дороже, % от суммы корзиныДля подборки к корзине. По умолчанию 30 %, 0 — без ограничения
Только из разделовID разделов каталога сайта
Только со значением свойстваКод свойства (например, BRAND) и значение
Как у текущего товараКод свойства: подбирать товары с тем же значением, например «ещё от этого бренда»
Шаблон компонента catalog.sectionКаким шаблоном выводить товары. Пусто — шаблон по умолчанию
Типы ценКакие цены показывать
Время кешированияПо умолчанию 15 минут

Коды свойств — те, с которыми свойства передаются в Октопус (обычно код свойства инфоблока). Свойство должно быть сопоставлено с полем товара в кабинете Октопуса.

Примеры​

Карточка товара — похожие и «ещё от этого бренда»:

<?php $APPLICATION->IncludeComponent('octopus.recommendations', '', [
'TYPE' => 'similar',
'PRODUCT_ID' => $arResult['ID'],
'LIMIT' => 8,
'BLOCK_TITLE' => 'Похожие товары',
]); ?>

<?php $APPLICATION->IncludeComponent('octopus.recommendations', '', [
'TYPE' => 'similar',
'PRODUCT_ID' => $arResult['ID'],
'SAME_PROPERTY' => 'BRAND',
'BLOCK_TITLE' => 'Ещё от этого бренда',
]); ?>

Корзина — «с этим покупают»:

<?php $APPLICATION->IncludeComponent('octopus.recommendations', '', [
'TYPE' => 'bought_together',
'USE_BASKET' => 'Y',
'MAX_PRICE_SHARE' => 30,
'LIMIT' => 6,
'BLOCK_TITLE' => 'Дополните покупку',
]); ?>

Главная страница:

<?php $APPLICATION->IncludeComponent('octopus.recommendations', '', [
'TYPE' => 'personal',
'LIMIT' => 12,
'BLOCK_TITLE' => 'Вам может понравиться',
]); ?>

Как выводятся товары​

Компонент получает от Октопуса ID товаров и подключает bitrix:catalog.section с фильтром по этим ID и в порядке, в котором их вернул Октопус. Поэтому товары выглядят так же, как в каталоге сайта.

Чтобы изменить вёрстку, скопируйте шаблон компонента в шаблон сайта или укажите свой шаблон catalog.section. Любые параметры catalog.section можно передать массивом CATALOG_PARAMS. ID товаров доступны в шаблоне как $arResult['ITEMS_IDS'].

Когда блок не выводится​

Если подбирать нечего — не выбран инфоблок товаров, тариф не подходит, у товара нет данных, Октопус не ответил за секунду — блок просто не выводится. Администратор сайта видит на месте блока причину, посетители — ничего.


PHP-класс для своего кода​

Если нужны только ID товаров — передать их в другой компонент, сохранить, отдать в JavaScript — используйте класс напрямую:

\Bitrix\Main\Loader::includeModule('octopuscdp.client');

use OctopusCDP\Client\Recommendations;

$ids = Recommendations::get('similar', ['product' => $elementId, 'limit' => 8]);

if (!$ids && ($error = Recommendations::getLastError())) {
// почему подборка пустая
}

get() возвращает ID элементов инфоблока товаров сайта в порядке показа — только активные на сайте, не больше limit.

Параметры​

ПараметрОписаниеПо умолчанию
limitСколько товаров, до 508
productID товара — для similar и bought_together—
basketbought_together без product — подбирать к текущей корзинеtrue
max_price_shareК корзине: не дороже этого % от её суммы, 0 — без ограничения30
sectionМассив ID разделов—
filter['КОД_СВОЙСТВА' => 'значение'], несколько значений — через запятую—
sameКод свойства: значение как у product или товаров корзины—
cache_timeКеш ответа, секунд900

Первый аргумент — тип подборки: personal, similar, bought_together или recently_viewed.

Примеры​

// «Вам может понравиться» только из бренда Nike
$ids = Recommendations::get('personal', ['filter' => ['BRAND' => 'Nike'], 'limit' => 12]);

// Похожие из разделов 15 и 17
$ids = Recommendations::get('similar', ['product' => $elementId, 'section' => [15, 17]]);

// Вывести своим компонентом
$GLOBALS['arRecoFilter'] = ['ID' => $ids ?: [0]];
$APPLICATION->IncludeComponent('bitrix:catalog.top', 'my-slider', [
'IBLOCK_ID' => $catalogIblockId,
'FILTER_NAME' => 'arRecoFilter',
// ...
]);

Как модуль определяет посетителя​

  • Авторизованный посетитель, а также пришедший по ссылке из рассылки Октопуса, — как клиент: подборки учитывают его историю с любых устройств.
  • Гость — по текущей сессии: подборка строится по тому, что он смотрел и клал в корзину на сайте.
  • Поисковым роботам персональные подборки не запрашиваются: «Вам может понравиться» показывает им общие популярные товары, «Вы недавно смотрели» — ничего.

Кеш и композитный сайт​

  • Ответы Октопуса кешируются: подборки к товару — на время из настроек (по умолчанию 15 минут), персональные — не дольше 5 минут на посетителя, «Вы недавно смотрели» — минуту.
  • Если Октопус ответил, что тариф не позволяет подборки или каталог не подключён, модуль запоминает это на час и всё это время не отправляет запросы.
  • На композитном сайте «Вам может понравиться» и «Вы недавно смотрели» выводятся динамической областью: страница остаётся в кеше, а блок у каждого посетителя свой. «Похожие» и «С этим покупают» от посетителя не зависят и кешируются вместе со страницей.