Skip to content

Акции под корзину

Более старая реализация списка акций под корзину клиента. Возможно, лучше пользоваться методом акций для клиента. Данный метод вернет список акций, которые можно показать в корзине клиента.

POST https://api.rees46.ru/loyalty/promos/cart

Параметры

ПараметрОбязателен?Описание
shop_idДаAPI-ключ
shop_secretДаСекретный ключ API
identifierДаИдентификатор участника программы лояльности
cart_items[]НетМассив товаров или услуг в корзине покупателя. Не может быть пустым
cart_items[].product_idДаАртикул товара или услуги
cart_items[].priceДаИсходная цена товара до применения скидок и акций
cart_items[].quantityДаКоличество единиц данного товара в корзине
promo_codesНетСписок промокодов (массив строк)
charge_bonusesНетБулевый флаг, списывать бонусы или нет. По-умолчанию false
subscriptionНетКод подписки клиента, если есть
streamНетСтрим
current_timeНетЛокальное время в точке продаж в формате HH:MM, если есть акции, которые работают в определенное время (например, "счастливые часы"). Если время не указано, берется текущее время на сервере в таймзоне магазина

Запрос

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

shell
curl --header "Content-Type: application/json" \
  --request POST \
  --data-binary "@payload.json" \
  https://api.rees46.ru/loyalty/promos/cart

Пример JSON-тела:

json
{
  "shop_id":        "...",
  "did":            "...",
  "sid":            "...",
  "promo_codes":    ["...", "..."],
  "charge_bonuses": true,
  "stream":         "pos",
  "current_time":   "17:31",
  "cart_items": [
    {"product_id": "...", "price": 1000, "quantity": 4},
    {"product_id": "...", "price": 2000, "quantity": 1, "discountable": false, "bonusable": false, "rewardable": false }
  ]
}

Ответ

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

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"
  }
}