МАХ-бот для ресторана и кафе 2026: меню, бронирование, заказы
Рестораны теряют 15–30% выручки на комиссиях агрегаторов. МАХ-бот возвращает прямой канал — без комиссии. Разбираю как сделать бот с меню в Mini App, доставкой, бронированием столиков, программой лояльности и интеграцией с iiko/r_keeper за 2–4 недели. С Node.js кодом, SQL-схемами лояльности и реальными бюджетами 2026.
Коротко (TL;DR)
- Агрегаторы (Я.Еда, Delivery Club, Самокат) забирают 15–30% комиссии с заказа. На обороте 1 млн ₽/мес это 150–300 тыс. ₽ ежемесячных потерь. МАХ-бот возвращает прямой канал — без комиссии.
- Полноценный бот ресторана 2026 включает: меню в Mini App, доставку и самовывоз, бронирование столиков, программу лояльности, отзывы, рассылки.
- Главная техническая задача — интеграция с POS (iiko, r_keeper, Frontpad, Quick Resto). Без неё каждый заказ — двойная работа: сначала в боте, потом в кассе руками.
- Бюджет 2026: минимум 100–200 тыс. ₽ (без POS), средний с iiko/r_keeper 250–500 тыс. ₽, enterprise мульти-точечная сеть 500 тыс. — 1 млн ₽.
- ROI — за 3–6 месяцев на ресторане с оборотом 1 млн ₽+ за счёт экономии на комиссиях агрегаторов и роста повторных заказов через лояльность.
Почему ресторанам нужен свой бот
Я работаю с HoReCa-проектами с 2020 года — от маленьких региональных кофеен до сетей с 20+ точками. Главная боль всех владельцев: агрегаторы. Я.Еда, Delivery Club, Самокат, Кухня на районе — все берут 15–30% комиссии с каждого заказа. На обороте 1 млн ₽ в месяц через агрегаторы это 150–300 тысяч рублей ежемесячно — фактически зарплата шеф-повара или аренда зала на месяц.
При этом агрегатор владеет клиентом. Когда пользователь заказывает у вас через Я.Еду, он не остаётся «вашим» — он клиент Я.Еды, и в следующий раз агрегатор подсунет ему конкурента с более низкой ценой или большей скидкой. Лояльности не формируется, повторные заказы случайны, маркетинг не работает.
Свой бот в МАХ — это прямой канал. Клиент пишет вам, вы видите всю историю его заказов, можете предложить персональную скидку, рассказать о новых блюдах, пригласить на дегустацию. LTV (lifetime value) лояльного клиента в 5–10 раз выше, чем нового. Один постоянный клиент, который заказывает 2 раза в неделю на 1500 ₽ — это 156 000 ₽ выручки в год.
В 2026 году ситуация для ресторанов меняется к лучшему. МАХ как российский мессенджер растёт, особенно в гос-сегменте и среди корпоративных клиентов 30+. Это идеальная аудитория для бизнес-ланчей, корпоративных заказов, заведений среднего и верхнего ценового сегмента. Запустить бот в МАХ сейчас — то же самое, что было запустить бот в Telegram в 2020 году: низкая конкуренция, дешёвый трафик, готовая аудитория.
Кроме экономии на комиссиях, свой бот даёт контроль качества. Жалоба клиента приходит сразу к вам, не к агрегатору. Вы можете отреагировать за 5 минут, предложить компенсацию, сохранить клиента. Через агрегатор негативный отзыв висит в публичном профиле, бьёт по рейтингу всех заведений сети, и сделать ничего нельзя.
Что должен уметь МАХ-бот ресторана 2026
Минимальный набор функций для бота ресторана, чтобы он реально работал и приносил выручку.
Показывать меню. С качественными фото, ценами, описанием, аллергенами, КБЖУ. Без хороших фото — продажи на 50–70% ниже. Меню должно быстро открываться и удобно фильтроваться по категориям.
Принимать заказы на доставку. Выбор адреса, расчёт стоимости и срока, оплата (СБП, карта, наличные курьеру), статус в реальном времени.
Бронирование столиков. Календарь, выбор времени, количество гостей, особые пожелания. Подтверждение через бот + SMS.
Программа лояльности. Бонусы за заказы, уровни (Bronze → Silver → Gold), персональные предложения. Главный инструмент повторных продаж.
Уведомления. Готовность заказа, прибытие курьера, доставка, новые блюда, акции, день рождения.
Отзывы после визита/доставки. Через 30 минут после получения заказа — короткий опрос. Хорошие отзывы — публикация, плохие — внутренняя реакция и компенсация.
Архитектура решения
Стандартная архитектура бота ресторана в МАХ — связка бота для коммуникации, Mini App для богатого меню и интеграции с POS-системой для автоматизации операций.
МАХ-бот + Mini App. Бот используется для повседневной коммуникации: уведомления, поддержка, простые заказы «как обычно». Mini App — для просмотра меню с фотографиями, выбора блюд, бронирования.
Бэкенд на Python (FastAPI) или Node.js. Python предпочтительнее для ресторанов, так как все основные POS-системы имеют Python-клиенты. PostgreSQL для данных, Redis для корзины и сессий.
Интеграция с POS (iiko, r_keeper, Frontpad, Quick Resto). Это критическая часть. Без интеграции каждый заказ из бота нужно вручную дублировать в кассу. На 30+ заказах в день — это полный рабочий день оператора.
Платежи. ЮKassa + СБП как стандарт. Для крупных чеков — СберПэй и Tinkoff Pay. Наличные курьеру — обязательная опция для регионов.
Карты и геопоиск. Яндекс.Карты API для адресов, расчёта расстояния от ресторана, выбора зон доставки.
Интеграция с iiko / r_keeper — главная сложность
POS-системы — критический элемент любого ресторана. Это касса, складской учёт, расчёт зарплат курьеров, отчётность. Без интеграции бот превращается в источник проблем: операторы тратят время на ручной перенос заказов, ошибаются, заказы теряются, остатки расходятся.
iiko (iikoCloud). Самая популярная система в крупном и среднем сегменте. API мощный, но платный — нужна лицензия iikoCloud Connect (от 5 тыс. ₽/мес). Документация подробная, поддержка отвечает.
r_keeper. Альтернатива iiko, чаще встречается в премиальном сегменте. API чуть менее удобный, но функциональность сопоставима. Лицензия тоже платная.
Frontpad. Простая система для малых ресторанов. API бесплатное в базовой версии, хватает для большинства задач. Идеально для пилотных проектов и стартующих кафе.
Quick Resto. Современная облачная POS для кофеен и фастфуда. Удобный API, активно развивается. Хороший выбор для новых заведений 2025–2026.
Пример Node.js клиента iikoCloud для отправки заказа из МАХ-бота в кассу:
// iiko-client.js — отправка заказа из МАХ-бота в iikoCloud
import axios from 'axios';
const IIKO_BASE = 'https://api-ru.iiko.services/api/1';
let iikoToken = null;
let tokenExpires = 0;
async function getIikoToken() {
if (iikoToken && Date.now() < tokenExpires) return iikoToken;
const resp = await axios.post(IIKO_BASE + '/access_token', {
apiLogin: process.env.IIKO_API_LOGIN,
});
iikoToken = resp.data.token;
tokenExpires = Date.now() + 14 * 60 * 1000; // токен живёт 15 минут
return iikoToken;
}
export async function createIikoOrder({ phone, items, address, paymentType }) {
const token = await getIikoToken();
const orderId = crypto.randomUUID();
// Формируем заказ в формате iiko
const order = {
organizationId: process.env.IIKO_ORG_ID,
terminalGroupId: process.env.IIKO_TERMINAL_ID,
order: {
id: orderId,
phone: phone,
orderTypeId: process.env.IIKO_DELIVERY_TYPE_ID,
deliveryPoint: {
coordinates: { latitude: address.lat, longitude: address.lng },
address: {
street: { name: address.street },
house: address.house,
flat: address.flat,
},
},
items: items.map(item => ({
productId: item.iikoId,
amount: item.quantity,
modifiers: item.modifiers || [],
})),
payments: [{
paymentTypeId: paymentType === 'cash'
? process.env.IIKO_CASH_TYPE_ID
: process.env.IIKO_CARD_TYPE_ID,
sum: items.reduce((s, i) => s + i.price * i.quantity, 0),
}],
},
};
const resp = await axios.post(
IIKO_BASE + '/deliveries/create',
order,
{ headers: { Authorization: 'Bearer ' + token } },
);
return { iikoOrderId: orderId, status: resp.data.orderInfo.creationStatus };
}
// Проверка статуса заказа в iiko (готовится, готов, в пути, доставлен)
export async function getIikoOrderStatus(iikoOrderId) {
const token = await getIikoToken();
const resp = await axios.post(
IIKO_BASE + '/deliveries/by_id',
{
organizationId: process.env.IIKO_ORG_ID,
orderIds: [iikoOrderId],
},
{ headers: { Authorization: 'Bearer ' + token } },
);
return resp.data.orders[0]?.status;
}
Меню — UX в Mini App
Меню — это витрина ресторана. На него пользователь смотрит первым делом, и от качества меню зависит, оформит ли он заказ или закроет бот.
Категории → блюда → детали. Трёхуровневая структура: горячее → супы → борщ. Простая навигация, понятная любой аудитории. Категории — сверху как табы, блюда — карточками с фото.
Фильтры. Вегетарианское, без глютена, острое, постное, низкокалорийное. Чем больше фильтров — тем шире охват аудитории. Не бойтесь добавлять — у кого аллергия на орехи, тот спасибо скажет.
Поиск по названию. Должен работать на 3-х буквах: «бор» → борщ, борщ постный, борщовая заправка. Без поиска при меню от 50 блюд UX ломается.
Топ-продаваемые блюда. Раздел «Хиты» или «Популярное» — самые заказываемые позиции наверху. Помогает новым клиентам сориентироваться, повышает средний чек.
Customizations. «С морсом или соком», «без лука», «острый соус сбоку», «доп. сыр (+50 ₽)». Каждое блюдо может иметь свои модификаторы. Это +15–25% к среднему чеку.
Заказ на доставку
Логика заказа на доставку должна быть максимально простой — никаких лишних шагов между «хочу борщ» и «оплатил».
Адрес доставки с автокомплитом. Через Яндекс Geocoder API или Dadata. Пользователь начинает вводить — появляются варианты, выбирает один клик. Сохраняем 2–3 последних адреса для повторных заказов.
Время доставки. Два варианта: «как можно быстрее» (показываем расчётное время) или «к определённому часу» (слоты по 30 минут).
Способ оплаты. Карта онлайн (через ЮKassa), СБП по QR, наличные курьеру, карта курьеру. В регионах наличные — обязательная опция, без неё теряете 20–30% заказов.
Промокод / купон. Поле для ввода промокода с валидацией на сервере. Промокоды могут быть персональные (приветственный, день рождения), сезонные, реферальные.
Дополнения. Приборы, доставка к подъезду, оставить заказ у двери, доп. соусы. Чек-боксы с микро-описанием.
Бронирование столика
Бронирование — отдельный сценарий, не менее важный чем доставка. Особенно для ресторанов и кафе с залом, где обед или ужин — не доставка, а живой визит.
Выбор даты и времени. Календарь на 14 дней вперёд, слоты по 30 минут. Учёт расписания ресторана (выходные, корпоративы, банкеты).
Количество гостей. 1, 2, 3, 4+, банкет. Под каждое количество — разные столики. Алгоритм подбирает оптимальный стол.
Особые пожелания. «У окна», «детский стул», «банкет на день рождения», «без музыки». Передаётся менеджеру в виде комментария.
Подтверждение. В боте сразу после бронирования + дублирование SMS-уведомлением через 5 минут (защита от случайных бронирований).
Reminder. За день и за час до брони — напоминание в боте. Снижает no-show на 30–50%.
Программа лояльности
Главный инструмент удержания клиентов. По моему опыту работы с HoReCa, грамотная программа лояльности увеличивает повторные заказы на 40–80% в первые 6 месяцев.
Баллы за заказ. 1% / 3% / 5% от суммы в зависимости от статуса клиента. 1 балл = 1 рубль на следующий заказ. Простая и понятная логика.
Уровни. Bronze (от 0), Silver (от 10 тыс. ₽), Gold (от 50 тыс. ₽), Platinum (от 200 тыс. ₽). С ростом уровня — больше баллов, эксклюзивные предложения, приоритет в очереди доставки.
День рождения. Бесплатный десерт или скидка 20% на основное блюдо в день рождения и 3 дня вокруг. Триггер автоматический по дате в профиле.
Реферальная программа. Приведи друга = 500 ₽ на следующий заказ обоим. Хорошо работает в семейном и дружеском окружении клиента.
Пример SQL-схемы для программы лояльности:
-- loyalty.sql — программа лояльности в боте ресторана
CREATE TABLE loyalty_accounts (
user_id BIGINT PRIMARY KEY REFERENCES users(id),
level TEXT NOT NULL DEFAULT 'bronze',
total_spent_cents BIGINT DEFAULT 0,
balance_cents BIGINT DEFAULT 0,
birthday DATE,
referred_by BIGINT REFERENCES users(id),
created_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE loyalty_transactions (
id BIGSERIAL PRIMARY KEY,
user_id BIGINT REFERENCES users(id),
order_id BIGINT REFERENCES orders(id),
type TEXT NOT NULL, -- 'earn', 'spend', 'bonus', 'birthday'
amount_cents INT NOT NULL,
created_at TIMESTAMPTZ DEFAULT NOW()
);
-- начисление баллов при оплате заказа
CREATE OR REPLACE FUNCTION earn_loyalty_points()
RETURNS TRIGGER AS $$
DECLARE
pct INT;
pts INT;
BEGIN
-- определяем процент по уровню
SELECT CASE level
WHEN 'bronze' THEN 1
WHEN 'silver' THEN 3
WHEN 'gold' THEN 5
WHEN 'platinum' THEN 7
END INTO pct
FROM loyalty_accounts WHERE user_id = NEW.user_id;
pts := (NEW.total_cents * pct) / 100;
-- обновляем баланс
UPDATE loyalty_accounts
SET balance_cents = balance_cents + pts,
total_spent_cents = total_spent_cents + NEW.total_cents
WHERE user_id = NEW.user_id;
-- запись транзакции
INSERT INTO loyalty_transactions(user_id, order_id, type, amount_cents)
VALUES (NEW.user_id, NEW.id, 'earn', pts);
-- автоматический апгрейд уровня
UPDATE loyalty_accounts SET level =
CASE
WHEN total_spent_cents >= 20000000 THEN 'platinum'
WHEN total_spent_cents >= 5000000 THEN 'gold'
WHEN total_spent_cents >= 1000000 THEN 'silver'
ELSE 'bronze'
END
WHERE user_id = NEW.user_id;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER trg_earn_loyalty
AFTER UPDATE OF status ON orders
FOR EACH ROW WHEN (NEW.status = 'paid' AND OLD.status != 'paid')
EXECUTE FUNCTION earn_loyalty_points();
Маркетинг через бота
Когда у вас есть база лояльных клиентов в боте, открываются возможности, недоступные через агрегаторы.
Сегментация по поведению. «Любители вегетарианского», «заказывают пиццу», «бизнес-ланчи», «вечером», «по выходным». Под каждый сегмент — релевантное предложение.
Возврат «спящих». Не заказывали 30 дней — триггерная рассылка с персональным промокодом. Возвращает 15–25% «спящих» в активный пул.
Анонсы новых блюд. Запустили сезонное меню — рассылка по базе с фото и описанием. Конверсия в первый заказ нового блюда — 5–15%.
Утренние / вечерние рассылки. С осторожностью! Не больше 2–3 рассылок в неделю, иначе бот блокируют. Утренние — про завтраки и бизнес-ланчи, вечерние — про доставку ужина.
Аналитика для ресторана
Без аналитики бот превращается в чёрный ящик. Минимальный набор метрик, который должен быть с первого дня.
AOV (средний чек). Динамика по дням, по сегментам, по каналам. Рост AOV — главный рычаг выручки.
Repeat rate. Процент клиентов с повторным заказом в течение 30 дней. Норма для HoReCa — 25–40%. Меньше — проблемы с продуктом или сервисом.
Топ-блюд. Какие позиции генерируют 80% выручки. Под них — фокус на качество, маркетинг, наличие.
Конверсия из просмотра в заказ. Открыли Mini App → добавили в корзину → оплатили. На каждом этапе — отдельная метрика. Видите узкие места.
LTV клиента. Сумма всех заказов клиента за период (3, 6, 12 месяцев). Сравните LTV «обычного» и «лояльного» клиента — это покажет ценность программы лояльности.
Юр-нюансы для HoReCa
152-ФЗ при сборе ПД. Имя, телефон, адрес доставки, история заказов — всё это ПД. Нужна политика, согласие, локализация в РФ. Подробнее в статье про локализацию.
СанПиН для меню. Калорийность, состав, аллергены, срок годности — обязательная информация для каждого блюда. Можно показывать по клику «состав», но информация должна быть доступна.
Защита прав потребителей. Возврат за неоказанную услугу (отмена заказа после оплаты), компенсация за брак, претензионный порядок. Должна быть процедура работы с жалобами.
54-ФЗ (онлайн-касса). При оплате онлайн обязателен чек на e-mail или телефон. Решения: фискализация в ЮKassa, АТОЛ Онлайн, Orange Data.
Реклама алкоголя ОГРАНИЧЕНА. Закон 171-ФЗ — нельзя в баннерах, рассылках, баннерах ботов. Можно показывать в меню при прямом запросе пользователя. Нарушение — штрафы от 100 тыс. ₽.
Стоимость разработки 2026
| Уровень | Что входит | Бюджет | Срок |
|---|---|---|---|
| Минимум | Меню, заказы, без POS-интеграции | 100–200 тыс. ₽ | 2–3 недели |
| Средний | iiko/r_keeper, лояльность, бронирование | 250–500 тыс. ₽ | 4–6 недель |
| Расширенный | CRM, рассылки, ML-рекомендации | 500–800 тыс. ₽ | 6–10 недель |
| Enterprise | Мульти-точечная сеть, аналитика | 800 тыс. — 1,5 млн ₽ | 3–5 месяцев |
Месячные расходы: 10–30 тыс. ₽ — хостинг, лицензия iikoCloud (если используете), поддержка, обновления меню. Окупаемость за счёт экономии на агрегаторах — 3–6 месяцев для ресторана с оборотом от 1 млн ₽/мес.
AI-помощник для приёма заказов
В 2026 году появилась реальная возможность подключить AI-помощника, который принимает заказы через переписку в боте, а не через Mini App. Это удобно для постоянных клиентов, которые знают меню и не хотят каждый раз листать каталог.
Сценарий: клиент пишет «как обычно пиццу пеперони и кофе латте», AI распознаёт намерение, проверяет наличие, формирует заказ, спрашивает «доставка на работу или домой?», получает подтверждение и оформляет заказ. Всё за 30 секунд переписки.
Технически реализуется через YandexGPT или GigaChat для русского языка (российские модели по 152-ФЗ). На бэкенде — function calling: AI вызывает функции addToCart, searchMenu, createOrder, checkLoyaltyBalance. Контекст диалога хранится в Redis на 30 минут. Подробнее про AI-чатботы — в моей статье про AI-помощника на сайт без программирования.
Стоимость добавления AI-чата к существующему боту — 100–200 тыс. ₽ за 2–3 недели. Окупается на постоянных клиентах — у них AOV растёт на 15–25%, потому что AI ненавязчиво предлагает «добавить десерт» или «к этой пицце часто берут».
Топ-5 ошибок при разработке бота для ресторана
1. Делают без интеграции с POS. Каждый заказ нужно вручную дублировать в кассу. На 30+ заказах в день это часы потерянного времени и неизбежные ошибки. Интеграция за 5–10 дней окупается за месяц.
2. Игнорируют программу лояльности. Делают бот «для заказов» и удивляются, почему клиенты не возвращаются. Без лояльности теряют 30–50% повторных продаж.
3. Плохие фото блюд. Стоковые фото или фото с телефона повара. Продажи падают на 50–70%. Профессиональная фотосессия — это 30–80 тыс. ₽, окупаются за месяц.
4. Слишком сложный UX заказа. 8 шагов от блюда до оплаты — пользователь бросает корзину. Должно быть 3–4 шага максимум: блюдо → корзина → адрес → оплата.
5. Не делают reactivation. Клиент заказал один раз и пропал. Без триггерной рассылки через 30–60 дней — теряете 50%+ клиентов на 6 месяцев.
Связь с кухней — экраны KDS
Когда заказ принят в боте и передан в iiko/r_keeper, его дальше видит кухня — на специальных экранах KDS (Kitchen Display System). Это обычный планшет или монитор, на котором повар видит очередь блюд и отмечает готовность каждой позиции.
Интеграция KDS уже встроена в iiko и r_keeper — отдельно её разрабатывать не нужно. Но в логике бота важно правильно передавать модификаторы и комментарии. Если клиент написал «без лука» — это должно прийти на экран повара выделенным цветом, чтобы не пропустить.
Для маленьких кафе без полноценного KDS можно сделать отдельный «бот для кухни» — простой канал в МАХ, куда падают заказы списком. Повар видит, отмечает «готово», курьеру отправляется уведомление «можно забирать». Стоимость такого решения — 30–50 тыс. ₽ дополнительно к основному боту.
FAQ
Сколько стоит запуск бота ресторана с iiko-интеграцией? От 250 тыс. ₽ под ключ за 4–6 недель. Меню, доставка, бронирование, лояльность, базовая аналитика.
Можно ли использовать бот без интеграции с POS? Технически да, но операционно — нет. Уже на 10+ заказах в день ручной перенос съедает время. Без интеграции имеет смысл только пилотный месяц для теста спроса.
Что с курьерами — нужна своя служба или внешняя? Зависит от объёма. До 30 заказов в день — выгоднее свои курьеры (1–2 человека на смене). От 50+ — Я.Доставка для пика, свои для постоянной нагрузки.
Как работать с отзывами? Через 30 минут после получения заказа — короткий опрос в боте: «как заказ?». Хорошие отзывы (4–5) — публикация. Плохие (1–3) — связь с менеджером в течение часа, компенсация.
Можно ли продавать алкоголь через бот? Запрещено по 171-ФЗ. Можно только показывать в меню при прямом запросе пользователя, без рекламы и без оплаты онлайн.
Сколько окупается бот ресторана? На обороте 1 млн ₽/мес за счёт экономии на агрегаторах — 3–6 месяцев. На обороте от 3 млн ₽ — 1–3 месяца.
Можно ли запустить бот для сети ресторанов? Да, через единый бэкенд с выбором точки доставки. Mini App показывает блюда конкретной точки, ближайшей к адресу клиента.
Чек-лист «запускаю бот ресторана за 1 месяц»
Неделя 1. Сделайте профессиональную фотосессию меню (50–80 топ-блюд). Зарегистрируйте бота в МАХ. Получите доступ к API вашей POS-системы (iiko/r_keeper/Frontpad).
Неделя 2. Поднимите бэкенд, опишите модели данных, реализуйте интеграцию с POS. Загрузите меню с фото в БД.
Неделя 3. Mini App с каталогом меню, корзиной, оформлением. Интеграция с ЮKassa и СБП. Базовая программа лояльности (баллы, уровни).
Неделя 4. Бронирование столиков. Уведомления о статусе заказа. Тестирование полного цикла (заказ → касса → курьер → клиент). Запуск с группой тестовых клиентов.
Запускал боты для нескольких HoReCa-проектов разного масштаба — от кофеен до сетей. Помогу с архитектурой под ваш формат: пилотный месяц на Frontpad для тестирования концепции или сразу масштабное решение с iiko и мульти-точечностью. Пишите в Telegram — обсудим вашу задачу.
Нужен профессиональный аудит 152-ФЗ?
Отчёт за 1–3 дня, устранение нарушений под ключ. От 5 000 ₽.