Skip to content

Акции для клиента

Возвращает список всех активных акций, подходящих для клиента и его корзины. Метод полезен, если вы хотите вывести шильдики (бейджи) акций на текущем списке товаров.

Метод безопасный, его можно вызывать с фронта.

GET https://api.rees46.ru/loyalty/promos/for-client

Параметры

ПараметрОбязателен?Описание
shop_idДаAPI-ключ
didДа*Идентификатор устройства клиента из SDK. Обязателен, если не переданы другие идентификаторы клиента
seanceДа*Идентификатор сессии клиента. Обязателен, если передается did
emailНетEmail клиента, если есть
phoneНетТелефон клиента, если есть
external_idНетВнешний идентификатор клиента, если есть
loyalty_idНетИдентификатор клиента во внешней программе лояльности, если есть
telegram_idНетИдентификатор пользователя Telegram, если есть
location_idНетИдентификатор локации (города, точки продаж)
promo_codesНетСписок промокодов (массив строк)
charge_bonusesНетБулевый флаг, списывать бонусы или нет. По-умолчанию false
subscriptionНетКод подписки клиента, если есть
streamНетСтрим
current_timeНетЛокальное время в точке продаж в формате HH:MM, если есть акции, которые работают в определенное время (например, "счастливые часы"). Если время не указано, берется текущее время на сервере в таймзоне магазина

Запрос

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

shell
curl https://api.rees46.ru/loyalty/promos/for-client?shop_id=...&did=...&sid=...

Ответ

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

json
{
  "success": true,
  "payload": {
    "promotions": [
      {
        "id": 33,
        "name": "...",
        "start_date": "2026-01-01",
        "finish_date": "2026-01-14",
        "stream": "ios",
        "badge_label": "-50%",
        "badge_color": "#AABB00",
        "description": "...",
        "reward_type": "discount",
        "reward_rules": {
          "amount_type": "percentage",
          "reward_type": "discount",
          "amount_value": 100,
          "exclude_products": [],
          "include_products": [
            {
              "sku": {
                "values": "300275",
                "operator": "in"
              },
              "brand": {
                "values":[],
                "operator": "in"
              },
              "price": {
                "value": 0,
                "operator": "more_than_or_equal_to"
              },
              "category": {
                "values": [],
                "operator":"in"
              },
              "quantity": {
                "value": 0,
                "operator": "equal"
              }
            }
          ],
          "ignore_discount_limit": true,
          "bonuses_earn_activation": "default",
          "bonuses_earn_expiration": "default",
          "bonuses_earn_activation_value": 0,
          "bonuses_earn_expiration_value": 0
        }
      },
      {
        "id": 12,
        "name": "...",
        "start_date": "2026-01-01",
        "finish_date": "2026-01-14",
        "stream": null,
        "badge_label": "1+1=3",
        "badge_color": "#AA0000",
        "description": "...",
        "reward_type": "bonuses_earn",
        "reward_rules": {}
      }
    ]
  }
}

Расшифровка ответа:

ПараметрОписание
successЗапрос выполнен успешно или нет
payload.promotionsМассив акций
payload.promotions[]Объект акции
payload.promotions[].idИдентификатор акции
payload.promotions[].nameНазвание акции
payload.promotions[].descriptionОписание акции
payload.promotions[].start_dateДата начала действия акции
payload.promotions[].finish_dateДата окончания действия акции
payload.promotions[].streamСтрим, в котором действует акция
payload.promotions[].badge_labelТекст бейджа
payload.promotions[].badge_colorЦвет бейджа
payload.promotions[].reward_typeТип вознаграждения: discount, bonuses_earn, bonuses_usage
payload.promotions[].reward_rulesПравила вознаграждения: JSON объект с указанием, на какие товары, категории или бренды применяется вознаграждение

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

json
{
  "success": false,
  "payload": {
    "message": "Shop not found"
  }
}