Накопительная скидка

Механика системы лояльности: техническая спецификация
Программа лояльности 'Накопительная скидка' реализована как модуль динамического ценообразования. В основе лежит математическая модель, привязанная к customer lifetime value (CLV). Каждому аккаунту присваивается уникальный идентификатор, который связывается с историей транзакций. Накопление процента идет пошагово: при достижении пороговой суммы (установленной на серверной стороне в 250, 500, 1000 единиц) алгоритм автоматически пересчитывает скидку в корзине. Разница с фиксированными промокодами — в отсутствии ручного ввода: система сама применяет редукцию на этапе генерации чека. Используемый стек: PHP 8.2 (бэкенд-логика) + Redis для кеширования истории покупок. Это исключает задержки при повторных запросах и гарантирует, что скидка будет рассчитана за < 150 мс.
Отличия от альтернативных подходов
- Скидка по промокоду: Требует генерации уникального кода и его ввода. 'Накопительная' скидка не требует кодификации — привязка идет к номеру телефона/email. Это снижает нагрузку на базу данных на 30% при пиковых нагрузках по сравнению с массовыми рассылками промокодов.
- Подарочные сертификаты: Представляют собой предоплаченный баланс. 'Накопительная' схема не блокирует средства — скидка вычитается по факту заказа, что улучшает показатели cash flow для поставщика.
- Балльная система: Требует отдельного конвертера баллов в рубли. В нашей реализации скидка выражается напрямую в процентах, что исключает ошибки округления (контролируется через BigDecimal с точностью до 4 знаков).
Материалы и стандарты производства
Качество реализуемой блюдовой продукции не зависит от скидочного механизма, но сама система лояльности интегрирована с CRM-модулем контроля поставок. Для соблюдения стандартов используется двухфазный контроль:
- При формировании корзины (пицца, роллы, паста, десерты) происходит сверка с остатками на складе через API 1С. Если ингредиент ниже порога — позиция блокируется, и накопленная скидка не применяется к недоступному товару.
- Терминалы сборки заказа оснащены сканерами штрихкодов. Каждый товар маркирован индивидуальным QR, что исключает подмену позиции. При несовпадении веса (например, для десертов — допуск ±5 грамм) система отправляет сигнал оператору.
Технические спецификации доставки и материально-техническая база
Упаковка для пиццы и роллов — гофрокартон плотностью 1200 г/м² с внутренним слоем из вспененного полиэтилена (толщина 5 мм). Это обеспечивает сохранение температуры до 45 минут при внешней температуре до -10 °C. Для десертов используются контейнеры из пищевого полипропилена (марка PP-H), устойчивость к деформации — до 90 °C. Логистический модуль рассчитывает маршруты с учётом 'накопительной' скидки: курьеры видят только активные адреса с прогревом блюдов. Автомобили оснащены термосумками с охлаждающими элементами Eutectic (режим глубокой заморозки 0 °C).
Качественные стандарты и верификация
Каждая партия сырья (мука, рис, морепродукты) проходит спектральный анализ на содержание нитратов (норма — не более 150 мг/кг). Для накопительной программы установлен дополнительный стандарт: если клиент получает заказ с дефектом (например, ролл нарушенной формы), система в автоматическом режиме списывает 1% с накопленной скидки в пользу бонуса на следующий заказ. Это программный 'предохранитель', который не позволяет механизму лояльности работать некорректно при неудовлетворительном качестве. Мониторинг проводится каждые 4 часа через дашборд на базе Grafana. Лимит на технический сбой: не более 0,02% от общего числа транзакций в сутки.
Акции и специальные линейки: триггеры накопления
Спецпредложения интегрированы в блок накопления. Например, при покупке позиций из линейки 'Итальянская классика' (паста + десерт) коэффициент начисления скидки увеличивается на 0,1% за каждый заказ. Это заложено на уровне бизнес-правил (правила написаны на Drools). В отличие от классических акций, где скидка применяется одномоментно, 'накопительная' скидка не обнуляется при активированном спецпредложении — они аддитивны. Максимальный порог суммирования: 25% + 8% от акции = 33% (лимитировано настройками корзины). Используется критерий 'min_sum_to_trigger' = 750 рублей в одной транзакции. Это исключает фрагментацию заказов на мелкие партии ради простого набора процента.
Добавлено: 27.04.2026
