- Управление → Курс → Скидки (
/manage/course/:courseId/discounts); - Управление → Продукт → Скидки (
/manage/product/:productId/discounts).
DiscountEntity).
Типы скидок
У скидки есть тип (DiscountType), определяющий, как считается величина скидки:
Величина задаётся в поле
value: для Amount — это сумма в валюте школы, для Percent — процент.
Создание промокода
1
Откройте скидки продукта
Перейдите в раздел скидок нужного курса или продукта и создайте новую скидку.
2
Выберите тип и величину
Укажите тип (
Amount или Percent) и значение скидки. Для Amount рядом показывается валюта школы,
для Percent — знак «%».3
Задайте код
Введите код промокода (до 12 символов, без пробелов) или сгенерируйте случайный кнопкой «Сгенерировать».
Код должен быть уникальным — при дублировании форма покажет ошибку.
4
Настройте ограничения
При необходимости укажите лимит применений и период действия (см. ниже).
5
Активируйте и сохраните
Включите переключатель активности и сохраните. Неактивный промокод не применяется при оплате.
Ограничения и настройки
Дополнительно платформа хранит вычисляемые признаки активности:
isActive— итоговая активность промокода;isActiveByDate— активен ли по периоду действия;isActiveByCountApplies— не исчерпан ли лимит применений;countApplies— сколько раз уже применён;isScheduled— запланирован ли на будущее.
Применение при оплате
При расчёте корзины промокоды проверяются на сервере. В итоге расчёта (invoiceCalculateCartTotal) видно:
appliedDiscounts— какие скидки применились;unAppliedDiscounts— какие не применились и почему.
DiscountUnAppliedReason):
Проверить код отдельно (например, для подсказки ученику) можно запросом
discountCheckCode, который вернёт
тип, величину и код скидки, если он валиден.
Архивирование
Ненужный промокод можно архивировать (archivedAt) вместо удаления. По умолчанию список скидок скрывает
архивные (фильтр archived: false).
Заархивированный промокод нельзя активировать, пока он не разархивирован — переключатель активности в форме
будет заблокирован с соответствующей подсказкой.