кейс · разработка mini app telegram
Mini App доставки: меню, оплата, статусы
Mini App для доставки в Night Sniper — это меню, корзина, оплата и статус кухни в Telegram и MAX, а не «бот пришлёт PDF прайс». Живой пример — Сувлак & Кебаб: две точки, онлайн-оплата, статусы заказа. Каталог недвижимости в мессенджере устроен иначе: Royal Coast и RICH GROUP — подбор объекта и заявка, не чек за шаурму.
Я Дима. Mini App и боты пишу сам, оплату и статусы кухни не отдаю «виджету конструктора». Срок Mini App — от 5 дней после фиксации объёма, как на главной. Смета после брифа.
Экраны доставки
Живой магазин: shop.zentomax.ru. Это доставка, не медиа-инструменты Zentomax на zentomax.ru. Кадр с витрины — меню в телефоне.

На кадре: блюда, точка, переход в корзину. Дальше checkout и оплата. Статусы кухни человек видит в том же канале, куда писал: принят → кухня → готов / в пути. Не «смотрите статус на сайте, который вы не откроете из MAX».
На главной в доказательствах у Сувлак те же три строки, без звёзд и без выдуманного отзыва.
Роль: TG/MAX боты, mini-app, каталог, checkout, Robokassa. Два канала, один сценарий, два коннектора. Код Telegram в MAX не вставляется — об этом в how-to: бот для MAX и Telegram-бот под ключ.
Что собрано на доставке
- Каталог блюд с фото.
- Корзина и checkout.
- Оплата в контуре Сувлак (Robokassa).
- Статусы: принят → кухня → готов / в пути.
- Две точки продаж, не «один адрес на весь город в подвале».
Почему это Mini App, а не бот с кнопками: позиция, модификаторы, точка, слот. Простыня callback-кнопок это выдержит до третьего заказа. Потом ломается UX и ломается кухня.
HMAC initData проверяю на сервере. Токен бота в бандл Next не кладу. Иначе любой подделает user id и «оплатит» чужой заказ.
Почему не один bot.py на все ниши
Доставка считает позицию и кассу. Недвижимость считает объект, район, заявку в CRM. Общее — хостинг 24/7, токен в env, заявка не теряется. Предметная область разная.
Ниже — кадры каталогов, которые часто путают с доставкой. Это не шаурма.

Каталог Royal Coast: рынки, объекты, заявка в ту же CRM, что и сайт. На витрине: MAX, Telegram @royalcoast_bot, 63 объекта в четырёх рынках. Это факт того контура, не обещание «столько же объектов будет у вас».

RICH GROUP — Telegram mini-app премиальной недвижимости Крыма и Сочи. Подбор по региону, карточки, заявка внутри Telegram. Живая ссылка: t.me/rich_groups_bot.
На главной формулировка про мессенджеры прямая: работаю с Telegram и MAX Bot API в проде — бот, mini-app, оплата, статусы и связь с CRM. Не «интегрируем мессенджеры под ключ» без предмета.
Что заказать
Нужны меню и оплата с телефона — описывайте точки, кассу и каналы (MAX, Telegram, оба). Нужен каталог объектов — другой бриф, ближе к CRM: CRM для агентства. Бот без Mini App, только заявка — бот + CRM.
Корзина, оплата, кухня
Меню без корзины — витрина. Корзина без оплаты — заявки, которые «потом переведут». Оплата без статусов — человек не знает, приняли ли заказ. На Сувлак эти три слоя вместе.
Онлайн-оплата в этом контуре — Robokassa. Другой эквайринг — другой бриф. Не обещаю «подключу любую кассу за вечер». Точки продаж две: человек должен выбрать, куда ехать курьеру или откуда забирать, до оплаты, не после «ой, не туда».
Статусы кухни пишу в тот же чат, где заказ. Не заставляю открывать отдельный сайт, который в MAX неудобен. Это продуктовое решение, не «интеграция ради галочки».
Два канала, один сценарий
Telegram и MAX. Меню одно. Коннекторы два. User id в MAX — не chat_id Telegram. Клавиатура другая. How-to не копируйте из одного в другой.
На главной это прямо: работаю с Telegram и MAX Bot API в проде. Если нужен только один канал — так и пишите. Второй не навязываю «на всякий случай»: это второй токен, второй процесс, вторая точка отказа.
Что ломается, если сделать «как бота с кнопками»
- Модификаторы («без лука», «острый») превращаются в десять сообщений.
- Смена точки после корзины сбрасывает сумму, и никто не замечает.
- Статус «готов» улетает, пока повар пишет в общую группу.
- Mini App открывается, а initData не проверяется — заказ «от кого угодно».
Это не теория. Поэтому HMAC на сервере обязателен, токен бота в клиент не кладётся.
Недвижимость рядом, чтобы не заказать не то
Если вам нужен подбор объекта, вы не получите корзину шаурмы «чуть перекрашенную». Каталог Royal Coast и RICH GROUP — заявки в CRM, не SKU. Срок Mini App тот же порядок (от 5 дней), состав экранов другой: фильтр, карточка, заявка, без кассы.
CRM агентства целиком: CRM для агентства.
Исходники ваши. Абонплаты за платформу ботов нет. Срок Mini App — от 5 дней после фиксации объёма. Квиз. Карточка на витрине: Сувлак. Проверить магазин: shop.zentomax.ru.
Вопросы
- Это один bot.py на доставку и недвижимость?
- Нет. Общие хостинг и CRM. Сценарий меню и сценарий объекта — разные.
- RICH GROUP — тоже доставка?
- Нет. Mini App каталога недвижимости. Стек мини-приложения похож, предмет — нет.
- Где живой магазин?
- shop.zentomax.ru — доставка Сувлак. Не путать с медиа-инструментами Zentomax.
- Срок Mini App?
- От 5 дней после фиксации объёма. Смета после брифа.
- Токен бота в Mini App?
- Нет. initData проверяю HMAC на сервере. Токен только в env бэкенда.
- Где живой магазин точно?
- shop.zentomax.ru. Не путать с zentomax.ru — там медиа-инструменты.
- Это отзыв клиента?
- Нет. На главной у Сувлак три функции: две точки, оплата, статусы. Их же в статье.
Нужны меню и оплата с телефона — опишите точки и кассу. Квиз