Кофейня в Telegram - предзаказ на время, самовывоз и накопительные бонусы

Ссылка на работу
image image
Задача Сеть кофеен на три точки пришла с утренней очередью. С восьми до десяти у стойки скапливалось человек десять, часть разворачивалась и уходила - людям на работу, ждать восемь минут ради капучино они не готовы. Бумажные карточки со штампами тоже мешали - их теряли, спорили на кассе, и посчитать по ним хоть что-то было нельзя. Просили сервис, где гость закажет и оплатит заранее, придёт ко времени и заберёт стакан без ожидания. Что сделал Основа - Mini App с предзаказом на конкретное время. Гость выбирает точку из трёх. У каждой своё меню и свой стоп-лист, на маленькой точке нет альтернативного молока, и это видно до оформления. Слоты по пять минут, у каждого лимит по числу напитков. Это главное, что тут надо было решить - без лимита все выбирают 08:30, и утро встаёт колом. Лимит считается от реальной пропускной способности точки, то-есть от того, сколько бариста успевает за пять минут. Оплата вперёд, картой или СБП. Неоплаченный заказ в очередь не встаёт, иначе слоты забиваются вхолостую. Стек - Python, aiogram 3, Mini App, PostgreSQL, VPS. Страница бариста обновляется через веб-сокет, обновлять её руками не нужно. Результат Утренний пик растянулся. Часть гостей приходит к готовому напитку и в очереди не стоит вовсе. На двух точках из трёх предзаказ занимает около четверти утренних чеков. Штампы на картонках убрали, бонусы считаются сами, спорных ситуаций на кассе больше нет.