Описание проекта
Сердце проекта — небольшое REST API, которое будет вызывать страница оформления заказа. По коду и текущей сумме корзины оно должно быстро отвечать: действителен ли код, какую скидку применить и по какой причине он отклонён (истёк срок, исчерпан лимит, не тот клиент, корзина слишком мала). Важно, чтобы система безопасно обрабатывала одновременные погашения и один и тот же ограниченный код нельзя было потратить дважды в гонке запросов, а каждое погашение записывалось для отчётности. Приятным дополнением будет лёгкая админ-панель, где не технический сотрудник сможет создать код, выбрать правило, задать лимиты и даты, а также приостановить или отключить код прямо на лету.
Прошу сосредоточиться именно на скидочных кодах. Это не реферальная программа и не приложение лояльности с баллами, поэтому приглашения друзей, уровни и накопительные балансы мне не нужны. Больше всего важны корректная математика скидок, безопасная проверка под нагрузкой и API, которое мой фронтенд-разработчик легко подключит. Документация и несколько примеров запросов будут очень кстати.
— Генерация кодов: по одному и партиями, с произвольными префиксами и читаемым форматом
— Типы правил: процент, фиксированная сумма, BOGO, только первый заказ
— Лимиты: общее число использований, на клиента, минимальная сумма корзины, даты действия
— API проверки: быстрый REST-эндпоинт, возвращающий валидность, размер скидки и причину
— Безопасное одновременное погашение с полным журналом для отчётности
— Простая админ-панель для создания, паузы и отключения кодов