Skip to content

Добавление в избранное

Событие отправляется тогда, когда клиент добавляет товар в избранное.

На данное событие завязаны следующие механики платформы:

  1. Триггер "Цена на товар в избранном снижена"
  2. Триггер "Товар в избранном снова в наличии"
  3. Избранное в карточке клиента
POST https://api.rees46.ru/push

Параметры

ПараметрОбязателен?Описание
shop_idДаAPI-ключ
did*ДаИдентификатор устройства
sidДаИдентификатор сессии . Обязателен при передаче did, желателен при других идентификаторах, если есть возможность
email*ДаEmail клиента
phone*ДаТелефон клиента
external_id*ДаВнешний идентификатор клиента
loyalty_id*ДаИдентификатор внешней программы лояльности клиента
telegram_id*ДаTelegram ID клиента
eventДаКод события. В данном случае wish
segmentНетИдентификатор сегмента для встроенных A/B-тестов. Значения: A или B (латиница)
streamНетСтрим
itemsДаМассив товаров для события. Может содержать как один товар, так и полное содержимое корзины. Массив не может быть пустым, если full_wish не true или отсутствует. При full_wish: true пустой массив items очищает избранное.
items[]ДаМассив идентификаторов товаров
full_wishНетБулевый флаг. Если true, то избранное клиента полностью перезаписывается тем, что отправлено в запросе. Если false или отсутствует, то переданные в запросе товары добавляются к уже существующему содержимому

Идентификаторы

Параметры, отмеченные [*] - обязателен хотя бы один из них. На стороне сайта или мобильных приложений SDK автоматически передает did.

Совет про full_wish

Если у вас есть доступ к избранному на вашей стороне, лучше всегда передавайте full_wish=true и список всех товаров в избранном. Так надежнее.

Передача необязательных параметров

Если вы передаёте необязательный параметр, не передавайте его пустым.Это приведёт к ошибке 422

Запрос

TODO

Ревью мобильных SDK

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

shell
# Добавление товара в избранное
curl 'https://api.rees46.ru/push' \
    -X 'POST' \
    -H 'Content-Type: application/json' \
    --data-raw '{"event":"wish", "shop_id":"SHOP_ID", "did":"DEVICE_ID", "sid":"SEANCE_ID", "items":[{"id":"PRODUCT_ID"}]}'

# Перезаписать избранное новым содержимым
curl 'https://api.rees46.ru/push' \
    -X 'POST' \
    -H 'Content-Type: application/json' \
    --data-raw '{"event":"wish", "shop_id":"SHOP_ID", "did":"DEVICE_ID", "sid":"SEANCE_ID", "segment":"A or B", "items":["FIRST_PRODUCT_ID", "LAST_PRODUCT_ID"], "full_wish":true}'

# Очистить избранное
curl 'https://api.rees46.ru/push' \
    -X 'POST' \
    -H 'Content-Type: application/json' \
    --data-raw '{"event":"wish", "shop_id":"SHOP_ID", "did":"DEVICE_ID", "sid":"SEANCE_ID", "segment":"A or B", "full_wish":true, "items": []}'
javascript
// Добавление одного товара в избранное
r46('track', 'wish', product_id);

// Полностью перезаписать избранное
r46('track', 'wish', [FIRST_PRODUCT_ID, LAST_PRODUCT_ID]);

// Очистить избранное
r46('track', 'wish', []);
swift
// Добавление товара в избранное
sdk.track(event: .productAddToFavorities(id: "PRODUCT_ID")) { trackResponse in
    // ... обработка коллбэков показана в описании события "Просмотр товара"
}

// Полностью синхронизировать избранное
sdk.track(event: .synchronizeFavorites( ids: ["PRODUCT_ID_1", "PRODUCT_ID_2"])){
  // items and full_wish flag added to request parameters
  // event type set to wish
}
kotlin
// Простое добавление товара в избранное
sdk.trackEventManager.track(Params.TrackEvent.WISH, YOUR_ITEM_ID)

// Полностью синхронизировать избранное
val fullWish = Params().apply {
  put(Params.Item(YOUR_FIRST_ITEM_ID))
  put(Params.Parameter.FULL_WISH, true)
  put(Params.Item(YOUR_SECOND_ITEM_ID))
}
sdk.trackEventManager.track(Params.TrackEvent.WISH, fullWish)
java
// Простое добавление товара в избранное
REES46.track(Params.TrackEvent.WISH, "37");
javascript
// Простое добавление товара в избранное
sdk.track("wish", 17515);

// Полностью синхронизировать избранное
sdk.track('wish', [17515, 17520]);

// Очистить избранное
sdk.track('wish', []);

Ответ

Пример ответа сервера:

json
{
  "status": "success"
}

В случае, если к событию добавлен попап, то в ответе будет объект попапа, который нужно показать посетителю:

json
{
  "status": "success",
  "popup": {
    "id": 337,
    "channels": [],
    "position": "...",
    "delay": 0,
    "html": "...",
    "web_push_system": false,
    "popup_actions": { ... }
  }
}

В случае ошибки ответ будет в формате:

json
{
  "status": "error",
  "payload": {
    "message": "Device ID is not valid"
  }
}