Промокоды
С помощью этой статьи вы создадите промокод, проверите скидку в корзине и примените код при создании заказа.
Для управления промокодами нужен Bearer сотрудника. Для расчёта корзины используется App Token, а для создания заказа — App Token и Counterparty Bearer.
Промокод изменяет цену клиентского заказа. Не путайте его с промоакцией: промоакция передаётся в promotion_id внутреннего заказа или мероприятия и используется как метка источника, но не рассчитывает скидку.
Подготовка
Подготовьте:
- Bearer сотрудника;
- ID приложения, если код должен работать только в одном магазине;
- размер и тип скидки;
- период действия и лимиты;
- App Token для проверки корзины.
Полный список полей, статусов и методов находится в API-справочнике промокодов.
Шаг 1. Создайте промокод
POST /api/discounts HTTP/1.1
Host: api.gigma.ru
Authorization: Bearer <employee_token>
Content-Type: application/json
Accept: application/json
{
"name": "10% на первый заказ",
"code": "WELCOME10",
"discount_type": "percent",
"discount_value": 10,
"application_id": 17,
"min_order_amount": 500,
"per_client_usage_limit": 1,
"audience": "new_clients",
"starts_at": "2026-08-20T00:00:00+03:00",
"ends_at": "2026-09-30T23:59:59+03:00"
} Если не передать status, Gigma создаст промокод в статусе draft.
Код должен быть уникальным в проекте среди неархивированных промокодов. Gigma убирает пробелы по краям и переводит латинские буквы в верхний регистр.
Полный контракт: создание промокода.
Шаг 2. Активируйте промокод
POST /api/discounts/42/activate HTTP/1.1
Host: api.gigma.ru
Authorization: Bearer <employee_token>
Accept: application/json Проверьте effective_status в ответе. Если дата начала ещё не наступила, значение будет scheduled.
Шаг 3. Рассчитайте корзину
Передайте код в promo_code:
POST /api/counterparty/orders/precalculate HTTP/1.1
Host: api.gigma.ru
Token: <application_token>
Content-Type: application/json
Accept: application/json
{
"products": [
{
"id": 34780,
"quantity": 2
}
],
"promo_code": "WELCOME10"
} В ответе используйте:
original_price— цена до скидок;promo_discount_amount— скидка по промокоду;total_discount_amount— общая скидка;final_price— итог;discount_error— причина, по которой код не применился.
Предварительный расчёт не резервирует лимит промокода.
Шаг 4. Создайте заказ
Передайте тот же promo_code в POST /api/counterparty/orders.
На этом шаге Gigma повторно проверит приложение, клиента, даты, минимальную сумму и лимиты. Применение будет записано только после успешного создания заказа.
Полный контракт: создание заказа.
Готово
Промокод создан, активирован и проверен в реальном сценарии корзины.
Что дальше
- Посмотрите статистику и журнал применений в API-справочнике промокодов.
- Свяжите внутренний заказ или мероприятие с промоакцией, если нужна атрибуция источника без скидки.
- Обработайте ошибки промокода в интерфейсе корзины.
- Не рассчитывайте итоговую цену на клиенте: перед созданием заказа всегда вызывайте
orders/precalculate.