Регистрация и конфигурация сервиса рекомендаций
Для регистрации и конфигурации сервиса рекомендаций необходимо использовать метод POST /api/v5/integration-modules/{code}/edit. Если модуль с кодом {code}
уже существует, метод меняет его настройки, в противном случае создается новый интеграционный модуль сервиса рекомендаций. Текущие параметры модуля можно посмотреть используя метод GET /api/v5/integration-modules/{code}.
При регистрации сервиса необходимо указать название integrationModule[name]
, код integrationModule[code]
, базовый url integrationModule[baseUrl]
и пользовательский идентификатор integrationModule[clientId]
. clientId
необходим для идентификации пользователя в системе при совершении callback-запросов, подробнее в статье.
Набор вкладок передается в виде массива в поле integrationModule[integrations][recommendation][modes]
. Для каждой вкладки требуется задать код и названия на языках системы. Код вкладки передается в url-параметре mode
при обращении к сервису рекомендаций. Названия на языках системы передаются в виде ассоциативного массива, где ключ - язык системы (ru
, es
, en
), а значение - название вкладки на данном языке системы. Передача ключа en
обязательна, ключи ru
и es
могут отсутствовать, при отсутствии названия вкладки для языка будет использовано название из языка en
. Передача несуществующих языков системы будет вызывать ошибку валидации.
[
[
'code' => 'upsell',
'names' => [
'ru' => 'Upsell-товары',
'en' => 'Products for upsell',
'es' => ,
],
],
[
'code' => 'presents',
'names' => [
'ru' => '',
'en' => 'Presents',
'es' => ,
],
],
]
Например, при передаче следующего массива вкладок система посчитает, что модуль рекомендаций предоставляет две вкладки:
- Вкладка с кодом
upsell
, при выводе вкладки для языкаru
будет использоваться название из ключа[names][ru]
, т.е "Upsell-товары", а для языкаen
будет использоваться название из[names][en]
("Products for upsell"). Так как название для языкаes
не передано, то будет использоваться названиеen
. - Вкладка с кодом
presents
, при выводе вкладки для всех языков будет использовано название из[names][en]
, т.е "Presents".
Также можно указать integrationModule[integrations][recommendation][addDefaultModes]
со значением true
или false
. Установка данного флага в true
позволяет выводить помимо вкладок модуля системные вкладки "С этим товаром покупают" и "Аналоги". Если модуль позволяет выводить системные вкладки, то на коды вкладок модуля накладывается ограничение - они не должны быть равны analogs
и buying_with
. В настройках модуля также возможно отключение вывода системных вкладок, если addDefaultModes
равен true
.
Вкладки показываются в следующем порядке:
- Системная вкладка "С этим товаром покупают" (если вкладка активирована в настройках модуля)
- Системная вкладка "Аналоги" (если вкладка активирована в настройках модуля)
- Вкладки, предоставляемые модулем, в том же порядке как указаны в массиве
integrationModule[integrations][recommendation][modes]
.
Также можно указать логотип сервиса рекомендаций integrationModule[logo]
, который будет отображаться в списке интеграций в разделе Маркетплейс.
Для активации callback-методов необходимо передать настройки нужного callback-метода в integrationModule[integrations][recommendation][actions]
. Для каждого метода необходимо указать код code
и url
. Адрес для запроса будет собираться из integrationModule[baseUrl]
базовой конфигурации и url
конкретного метода.
Ниже приведены доступные callback-методы.
Получение списка рекомендаций для товара
Для получения списка рекомендаций система будет выполнять GET
запрос к методу с кодом recommendation
из массива integrationModule[integrations][recommendation][actions]
. К url
метода будут добавлены следующие параметры:
ids[]
- ID товаровexternalIds[]
- externalId товаровmode
- код вкладки, возможные значения берутся из кодов вкладокintegrationModule[integrations][recommendation][modes]
, переданных во время создания/редактирования модуля
В качестве ответа от сервиса рекомендаций система принимает объект со следующими полями:
by
- указывает по какому полю система должна идентифицировать товары, возможные значенияid
,externalId
ids
- массив с идентификаторами товаров