Ключевой элемент — компактное REST API, к которому обращается страница оплаты. Получив код и сумму заказа, оно должно оперативно вернуть вердикт: годится ли код, какую скидку начислить и по какой причине отказ (срок вышел, лимит исчерпан, покупатель не подходит, сумма мала). Отдельно важно корректно обрабатывать параллельные списания, чтобы ограниченный код нельзя было применить дважды при одновременных запросах, и вести журнал всех применений для последующей аналитики. Хорошим бонусом станет несложная панель управления, где сотрудник без технических навыков заведёт код, выберет правило, укажет лимиты и даты, а при необходимости остановит или выключит код одним нажатием.
Сразу оговорюсь: интересуют именно скидочные коды. Реферальная механика и бонусно-накопительные программы лояльности в этот проект не входят, поэтому приглашения, уровни и балансы баллов делать не нужно. Приоритет — верный расчёт скидок, надёжная проверка при высокой нагрузке и понятное API, которое наш верстальщик без труда интегрирует. Буду признателен за документацию и пару примеров запросов.
— Выпуск кодов: поштучно и сериями, с настраиваемыми префиксами и удобным форматом
— Правила: процент, фиксированная сумма, «второй в подарок», только первый заказ
— Ограничения: всего применений, на покупателя, минимум суммы, сроки действия
— API проверки: быстрый эндпоинт с ответом о годности, размере скидки и причине отказа
— Корректная параллельная обработка списаний и журнал всех применений
— Удобная панель для создания, остановки и отключения кодов