Skip to end of metadata
Go to start of metadata

 

Важно: REST API постоянно меняется без предварительного уведомления. Для 100% гарантии отсутствия проблем используйте готовые SDK (JS, PHP, Ruby).

При использовании HTTP API для рекомендаций и трекинга событий невозможно использование рассылок, рекламы и веб пушей по модели CPA/CPC. Использование этих инструментов возможно только по ежемесячной подписке.

Получение сессии пользователя

Все запросы на трекинг и рекомендации выполняются с параметром ssid, который является уникальным идентификатором пользователя в REES46. Если ssid неизвестен, то необходимо сгенерировать его HTTP-запросом:

 GET http://api.rees46.com/generate_ssid?shop_id=КОД_МАГАЗИНА

В теле ответа возвращается строка-идентификатор пользователя:

fe09523f-433f-4a5e-967e-e0181858b8c3

Трекинг событий

Отслеживаются следующие типы событий:

  • view – просмотр товара
  • cart – товар добавлен в корзину
  • remove_from_cart – товар убран из корзины до заказа
  • purchase – заказ оформлен

Каждый запрос содержит обязательные поля, не относящиеся к заказу:

  • event – тип события
  • shop_id – идентификатор магазина
  • ssid – сессия пользователя
  • user_id – идентификатор пользователя в магазине, если есть
  • user_email – e-mail пользователя в магазине, если есть

Каждая переменная с информацией о товаре передается массивом с указанным индексом, начинающимся с нуля, например:

item_id[0]=34753&
price[0]=15717&
barcode[0]=123456&
is_available[0]=true&
categories[0]=198,199,200&
name[0]=ItemName&
url[0]=SomeURL&
image_url[0]=SomeURL&
item_id[1]=131&
price[1]=3000&
barcode[1]=7891011&
is_available[1]=true&
categories[1]=13&
name[1]=ItemName2&
url[1]=SomeURL2&
image_url[1]=SomeURL2&
locations[1]=moscow,spb,vladimirsky_17&
attributes[1]={fashion:{"brand":"ROCK&REPUBLIC","color":"Синий","type":"upper","sizes":["e25","e26","e27","e29","e30","e31","e32"],"gender":"f"}}

Поддерживаемые параметры о товаре (жирным выделены обязательные параметры):

  • item_id (integer) – идентификатор товара в магазине клиента;
  • price (float) – цена товара;
  • is_available (string) – есть ли товар в продаже ("true" или "false");
  • categories (string) – массив идентификаторов категорий через запятую, в которых находится товар;
  • barcode (string) – штрихкод;
  • name (string) – название товара;
  • url (string) – ссылка на товар;
  • image_url (string) – ссылка на изображение товара;
  • locations (string) – идентификаторы мест через запятую, в которых товар доступен в продаже (используется для городов и пунктов выдачи, если клиенту интересны товары, которые есть в наличии рядом с подходящим пунктом выдачи);
  • attributes (string) – json-строка расширенных атрибутов товара.

Эти параметры передаются во всех событиях.

Дополнительно в событии purchase передаются данные:

  • order_id (string) – идентификатор заказа в системе клиента;
  • amount[] – количество единиц каждого товара (содержит индекс товара), например:

    item_id[0]=1&
    amount[0]=1&
    ...
    item_id[1]=33&
    amount[1]=2
    ...

Любое событие, если оно было совершено с рекомендованным товаром (переход на рекомендованный товар, добавление в корзину рекомендованного товара) должен иметь дополнительный атрибут:

  • recommended_by (string) – код алгоритма рекомендации.

 

Все запросы выполняются как POST:

POST http://api.rees46.com/push
 
Form-data:
event=view
shop_id=КОД_МАГАЗИНА
ssid=СЕССИЯ_ПОЛЬЗОВАТЕЛЯ
user_email=EMAIL_ПОЛЬЗОВАТЕЛЯ
item_id[0]=ID_ТОВАРА
price[0]=ЦЕНА_ТОВАРА
is_available[0]=true
categories[0]=191
name[0]=НАЗВАНИЕ_ТОВАРА
url[0]=УРЛ_ТОВАРА
image_url[0]=УРЛ_КАРТИНКИ
recommended_by=similar

Дополнительные атрибуты пользователей

Позволяет сохранять дополнительные пользовательские атрибуты

НазваниеОписание
genderПол пользователя (m – мужской, f – женский)
birthday

День рождения. В формате ISO (YYYY-MM-DD)

ageВозраст (в годах)
emailе-mail пользователя

Каждый запрос содержит обязательные поля, не относящиеся к заказу:

  • shop_id – идентификатор магазина
  • ssid – сессия пользователя

 

Все запросы выполняются как POST:

POST http://api.rees46.com/push_attributes
 
Form-data:
shop_id=КОД_МАГАЗИНА
ssid=СЕССИЯ_ПОЛЬЗОВАТЕЛЯ
attributes[gender]=m
attributes[birthday]=1990-07-03
attributes[age]=26
attributes[email][email protected]

Запрос рекомендаций

Внимание

Поддержка REST API для запроса рекомендаций в скором времени будет прекращена. Используйте расширенный метод рекомендаций сопутствующих товаров с помощью JS SDK.

На данный момент поддерживаются следующие алгоритмы рекомендаций:

  • popular – популярные товары (с фильтром по категории и без него);
  • similar – похожие товары;
  • also_bought – с этим товаром покупают;
  • see_also – посмотрите также;
  • interesting – возможно, вам это понравится;
  • recently_viewed – недавно просмотренные;
  • buying_now – покупают прямо сейчас (применяется на большом потоке заказов на недорогие товары);

Рекомендованная структура расположения блоков рекомендаций на сайте для получения максимальной эффективности:

  • Главная страница:
    • популярные товары (без категории).
  • Страница категории:
    • популярные товары (сверху);
    • вы недавно смотрели (снизу);
    • возможно, вам это понравится (снизу).
  • Детальный просмотр товара (все снизу):
    • с этим товаром покупают;
    • похожие товары;
    • возможно, вам это понравится.
  • Страница корзины:
    • посмотрите также.

Каждый запрос содержит содержит следующие поля (жирным отмечены обязательные):

  • recommender_type (string) – тип алгоритма рекомендации;
  • shop_id (string) – идентификатор магазина;
  • ssid (string) – сессия пользователя;
  • item_id (string) – идентификатор текущего товара:
    • Обязателен для:
      • similar;
      • also_bought.
    • Желателен для:
      • interesting;
      • buying_now.
  • cart_item_id (array) – массив идентификаторов товаров, лежащих у клиента в корзине;
    • Обязателен для:
      • similar;
      • also_bought;
      • see_also.
    • Желателен для:
      • interesting;
      • buying_now.
  • category (string) – идентификатор просматриваемой категории;
  • categories (string) – список идентификаторов категорий, разделенных запятой, из которых выбирать рекомендованные товары (применяется в расширенном also_bought и similar);
  • limit (integer) – максимальное количество возвращаемых рекомендованных товаров (чем меньше, тем быстрее работает, максимум 50);
  • locations (string) – список географических мест, по которым фильтруются рекомендации (для отсеивания товаров, которые не продаются в указанной локации);
  • items (string) – список идентификаторов товаров на стороне магазина, разделенных запятой, среди которых нужно выбрать рекомендации (для ранжирования);
  • exclude (string) – список идентификаторов товаров на стороне магазина, разделенных запятой, которые нужно исключить из рекомендаций;
  • brands (string) – строка со списком брендов, разделенных запятой, если нужно отфильтровать товары только по интересующим брендам.

Пример запроса:

GET http://api.rees46.com/recommend?shop_id=КОД_МАГАЗИНА&ssid=СЕССИЯ_ПОЛЬЗОВАТЕЛЯ&recommender_type=interesting&item_id=39559&limit=5

Ответ:

["2861","7846","39996","30688","36190"]

Если рекомендаций не найдено, то возвращается пустой JSON-массив:

[]
  • No labels