WebApp «Кафе» (cat_cafe)
cat_cafe — готовое мини-приложение Квесчи для кафе, ресторанов, доставки еды, кофеен. Подписчик открывает меню в окне Telegram/MAX, выбирает блюда, формирует заказ — а бот принимает оплату и оповещает кухню.
В отличие от WebApp «Магазин» (cat_shop), cat_cafe заточен под общепит:
- интерфейс с категориями блюд (закуски, основное, напитки, десерты);
- понятный визуал с большими фото;
- быстрый чекаут — клиенту важно сделать заказ за 1-2 минуты.
Когда использовать
- Доставка еды — кафе, рестораны, пиццерии, суши.
- Самовывоз — приёмка предзаказа за 30 минут до прихода.
- Заказ в зале — QR-код на столе → меню → официант приносит.
- Кофейни — быстрый предзаказ к открытию.
- Кейтеринг — формирование меню на мероприятие.
Часть 1. Настройка меню
Шаг 1. Создайте приложение добавьте список блюд
Списки / WebApp → Добавить приложение каталога → выберите вкладку «Настройки»:
Заполните настройки приложения:
- Название — заголовок над настройками;
- Токен бота — для запуска не из кнопки под сообщением;
- Дизайн — выбор дизайна приложения кафе;
- Элементы — тексты и цвета кафе;
- Поиск — настройка поиска и фильтров приложения;
- Рубрики — добавление рубрик меню.

Скриншот 1. Меню в виде списка.
Шаг 2. Подключите WebApp
Раздел Списки / WebApp → Создайте каталог в настройках приложения на вкладке «Товары» (cat_cafe).
| Поле | Содержимое |
|---|---|
title | Название блюда |
description | Полное описание (состав, граммы, особенности) |
descrmin | Краткое описание для карточки |
price | Цена |
oldprice | Старая цена (для акций) |
size | Объём / порция (200г, 0.3л) |
category | Категория (Закуски / Основные блюда / Напитки / Десерты) |
image | URL фотографии |
code | Внутренний артикул для кухни |

Скриншот 2. Настройка приложения для кафе.
Шаг 3. Подключите к мессенджеру
Аналогично cat_shop: через @BotFather зарегистрируйте Menu Button с URL вашего WebApp.
Для кафе очень рекомендуется кнопка-меню в углу окна Telegram — клиент в любой момент может вернуться к меню.
Часть 2. Кнопка WebApp в сценарии
В блоке приветствия или в команде /menu:
- Тип кнопки — Ссылка;
- Название — «🍽 Меню», «Сделать заказ», «Открыть меню»;
- Ссылка — скопируйте и вставьте ссылку из приложения.
Дополнительные точки запуска
- QR-код на столе — ссылка
t.me/your_bot?start=table5, в сценарии действий сохраняемtable=#{start}→ открываем WebApp. - Подписка — сразу после подписки кнопка-меню с выбором столика.
Часть 3. Обработка заказа
cat_cafe использует ту же операцию «Каталог: обработка заказа» (cat_order), что и cat_shop. После возврата клиента из приложения текущий блок получает ответ webapp:catalog.
Сохранение данных
В блоке-приёмнике добавьте действие «WebApp/MiniApp» → «Каталог: обработка заказа»:
| Переменная | Содержит |
|---|---|
| Список заказа | Готовая строка с блюдами для отправки клиенту/кухне |
| Сумма заказа | Итоговая сумма |
| ID заказа | Уникальный номер для кухни |
| Наличие заказа | 1 если есть, 0 если корзина пуста |
И массивы для записи в список «Заказы»:
title(массив названий блюд),count(количество порций),price(цена за порцию),sum(сумма по позиции),size,code.

Скриншот 3. Сценарий действий после возврата из cat_cafe.
Часть 4. Типовой сценарий «Доставка еды»
Блок 1. Приветствие
«Добро пожаловать в Кафе Уют! Что хотите заказать?»
Кнопка WebApp «🍽 Меню»
↓ webapp:catalog
Блок 2. Обработка заказа
Сценарий действий «До»:
- WebApp/MiniApp → cat_order → переменные
- Условие #{isorder} = 1, иначе блок «Корзина пуста»
- Список «Заказы» addrow с массивами блюд
Сообщение: «Состав заказа: #{orderlist}
Сумма: #{totalsum} ₽
Подтвердить?»
Кнопки: «✅ Подтвердить» / «❌ Отменить»
Блок 3. Адрес доставки
«Введите адрес доставки или нажмите [Самовывоз]»
Ответ → переменная #{address}
Блок 4. Время доставки
«Когда вам доставить?»
Кнопки: «Сейчас (60 минут)» / «На время»
Блок 5. Платёж
Действие «Платежи» → ссылка #{pay_link}
Кнопка «Оплатить»
↓ оплата
Блок 6. Уведомление кухне (цепочка приёма платежа)
Сценарий действий «После»:
- HTTP-запрос в систему ресторана с `#{orderId}`, #{orderlist}, #{address}
- Уведомление в Telegram-канал кухни
Сообщение клиенту: «Заказ `#{orderId}` принят! Курьер выезжает.»
Часть 5. Особенности для кафе
Модификаторы (без лука, без острого)
В простом cat_cafe модификаторы делаются через размеры/цвета-варианты (сами названия "размеры" и "цвета" можно переименовать):
- блюдо «Бургер обычный»;
- блюдо «Бургер без лука»;
- блюдо «Бургер острый».
Для сложных конфигураций — пишите комментарий после оформления заказа в отдельном блоке ([Answer] после возврата из WebApp).
Комментарий к заказу
После возврата из WebApp добавьте блок «Комментарий к заказу»:
- ответ клиента сохраните в переменную
#{order_comment}; - передавайте на кухню вместе с заказом.
Доставка / Самовывоз
Сделайте две кнопки в блоке после WebApp:
- «🛵 Доставка» → блок ввода адреса;
- «👋 Самовывоз» → блок выбора времени.
Время приготовления / доставки
Используйте шаблон [AddMinutes([CurrentTime],60)] — добавит 60 минут к текущему времени для оценки.
Часть 6. Продвинутые сценарии
Сценарий 1. Заказ со стола (QR-код)
- На каждом столе — QR с уникальной ссылкой
t.me/cafe_bot?start=table7. - Клиент сканирует → в боте срабатывает цепочка по ключу
start=table*. - В сценарии действий:
table=#{start}→ сохраняем в переменную#{table}. - Открываем cat_cafe.
- После заказа в «Заказы» сохраняем поле
table = #{table}. - Официант видит заказ с номером стола.
Сценарий 2. Привязка к доставочной зоне
- В блоке после WebApp → блок «Адрес доставки».
- Действие HTTP к геокодеру (Яндекс/Google) → координаты.
- Действие JS код — проверка попадания в зоны (полигоны).
- Если вне зоны → блок «Извините, не доставляем» + предложение самовывоза.
Сценарий 3. Программа лояльности
- В глобальной переменной клиента
client_bonusнакапливаются баллы. - В блоке после заказа: предложить списать баллы (тоже через выражение).
- Списать через действие «Операции с данными» → присвоение.
Сценарий 4. Напоминание о готовности
- После оплаты — цепочка с задержкой 30 мин.
- Сообщение клиенту: «Ваш заказ
#{orderId}готов! Курьер у двери». - Кнопки: «Получил» / «Не получил» → переход в чат с менеджером.
Сценарий 5. Сбор отзывов
- Через 1 час после доставки — цепочка с триггером по тегу
доставлено. - Сообщение: «Как вам заказ?»
- Кнопки: 1-5 ⭐ → запись отзыва в список «Отзывы».
Часть 7. Архитектура
Принцип 1. Меню в приложении, акции в глобальных переменных или списке
Не дублируйте акционные цены в карточках блюд. Создайте g_acted_discount и g_promo_until — а в блоке расчёта применяйте скидку, если активна.
Принцип 2. Категории — критично для UX
Не пихайте 60 позиций в один список без категорий. Клиент должен видеть «Напитки / Основные / Десерты», иначе откажется от заказа.
Принцип 3. Острота, веганство, ккал — фичи
Поля spicy, vegan, kcal — мощные для маркетинга. Подсветка иконками в карточках блюд сильно повышает доверие.
Принцип 4. Кухонный канал — отдельная цепочка
Уведомления на кухню — отдельная цепочка с триггером «успешная оплата». Так кухня видит только оплаченные заказы.
Принцип 5. Логируйте всё
Каждый заказ в список «История». По нему стройте аналитику популярных блюд, средний чек, сезонность.
Принцип 6. Подумайте о провалах
- Что если оплата не прошла? — Резервный путь «Оплатить курьеру при получении».
- Что если кухня не приняла заказ? — Резервный путь «Оператор свяжется».
Часть 8. Сравнение с cat_shop
| cat_shop (Магазин) | cat_cafe (Кафе) | |
|---|---|---|
| Целевая аудитория | Интернет-магазин | Общепит |
| Категории | Опциональные | Критичны (меню секциями) |
| Размеры/цвета | Часто (одежда) | Редко (только объём) |
| Доставка | Чаще на следующий день | Срочная, минуты |
| Чекаут | Полный (адрес, дата) | Быстрый (адрес + время) |
| Модификаторы | Иногда | Часто (без чего-либо) |
| Время покупки | Минуты | Секунды |
Если сомневаетесь — берите cat_shop как универсальный, или cat_cafe для быстрых заказов.
Частые ошибки
- «Список меню» пустой — забыли выбрать список в настройках WebApp.
- Категории не работают — не заполнено поле
categoryв товарах списка. - Заказы не приходят на кухню — нет настроенной цепочки приёма платежа с действием уведомления.
- Высокий cancellation rate — длинный чекаут (адрес + время + комментарий) сразу после меню. Минимизируйте шаги.
#{orderlist}неинформативный — клиент видит «#1, #2». В списке-меню заполните полеdescrmin(короткое описание для строки заказа).- Telegram не показывает Menu Button — забыли зарегистрировать через
@BotFather.
Что дальше
- WebApp Магазин (cat_shop) — для розницы.
- WebApp Календарь (calendar) — для записи на услуги.
- Платежи — приём оплат.
- Списки — меню и история заказов.
- HTTP-запросы — интеграция с POS / системой кухни.
- Цепочки — напоминания, отзывы, дожимы.