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