Чат-бот для доставки еды: заказ в переписке или мини-приложение
Чат-бот для доставки еды принимает заказ по пяти шагам: меню, корзина, адрес, время, оплата. В переписке кнопками собирают заказ из короткого меню, корзину с размерами и добавками удобнее вести в мини-приложении. Разработка — от 20 000 ₽, поддержка — от 5 000 ₽ в месяц. Дороже всего в такой задаче стоят адрес, стоп-лист и передача заказа на кухню.
Заказ еды выглядит как меню и кнопка «Оформить». Дорогой такую задачу делают три места: адрес, стоп-лист и путь заказа до кухни. Ниже — шаги сценария, сравнение переписки с мини-приложением, ограничения каналов и смета.
Короткий ответ
- Пять шагов заказа: меню и позиция, корзина, адрес и зона доставки, время, оплата. Шестой шаг — статусы заказа — в задании обычно не описан, и считается он отдельно.
- Короткое меню собирают кнопками, меню с модификаторами — экраном. Замеренного порога у нас нет: перелом даёт не длина списка, а модификаторы. Как только у позиции появляются размер, добавки и количество, кнопки превращаются в лабиринт.
- Адрес — самое дорогое поле сценария. Зону доставки проверяют до сборки корзины, а подъезд, квартиру, этаж и код домофона спрашивают отдельно: точка на карте их не содержит.
- Статус заказа разрешает канал, а не бот. Telegram — только тому, кто нажал «Запустить»; ВКонтакте — тому, кто разрешил сообщения сообществу, и бессрочно; МАКС — после того, как человек сам начал диалог; в Instagram* писать первым нельзя.
- Разработка от 20 000 ₽, поддержка от 5 000 ₽ в месяц. Точную цифру называем после разбора задачи и до начала работ. Сроков не обещаем.
Пять шагов заказа: меню, корзина, адрес, время, оплата
Шаг 1. Меню и позиция. Бот показывает разделы, потом позиции. Пока позиций мало, хватает кнопок. Когда у позиции есть размер, тесто, добавки и количество, один выбор превращается в четыре, и одна позиция стоит четырёх сообщений с кнопками.
Шаг 2. Корзина. Корзина — не список, а состояние: убрать позицию, поменять количество, увидеть сумму. В переписке её рисует сообщение, которое бот перерисовывает, и каждое действие — отдельная кнопка и ветка сценария.
Шаг 3. Адрес и зона доставки. Зону проверяют до корзины, а не после: иначе человек собирает заказ из восьми позиций и получает «по этому адресу не доставляем» на последнем шаге, когда заказ уже собран, а предложить взамен боту нечего.
Шаг 4. Время. «Как можно быстрее» или «ко времени». Второй вариант требует знать часы работы кухни и правило предзаказа на следующий день, иначе ночной заказ на 9 утра уедет в пустоту.
Шаг 5. Оплата. Онлайн в боте или курьеру при получении. Развилка не про удобство, а про смету: первый вариант тянет кассу, чеки и возвраты, второй перекладывает сверку на человека.
Заказ в переписке или мини-приложение с корзиной
| Что сравниваем | Заказ в переписке кнопками | Мини-приложение с корзиной |
|---|---|---|
| Меню | сообщения с кнопками, каждый раздел — отдельный шаг | список с фото и ценами на одном экране |
| Позиция с размером и добавками | 3–4 шага на одну позицию | один экран, всё видно сразу |
| Корзина | сообщение, которое бот перерисовывает | привычная корзина с плюсом и минусом |
| Адрес | вопросы по одному полю за раз | форма с полями и картой |
| Оплата | кнопка оплаты в переписке | кнопка оплаты внутри экрана |
| Стоимость работы | ниже на старте | выше: это веб-часть, а не сценарий |
| Когда выбирать | короткое меню, повторные заказы, простые позиции | десятки позиций, модификаторы, важна витрина |
Ошибка выбора обычно такая: мини-приложение берут ради красоты и получают вторую смету, а кнопками собирают меню с добавками и получают сценарий из десятков ветвей, который потом страшно править. Что такое мини-приложение в Telegram и когда оно нужно вместо бота — разобрано отдельно.
Мини-приложения есть только в Telegram и МАКС. Во ВКонтакте и Instagram* этого варианта нет вообще: там остаются кнопки в переписке или ссылка на обычный сайт, то есть уход из мессенджера.
Работает и смешанный вариант: витрина и корзина экраном, разговор и статусы в переписке.
Где ломается адрес доставки
- Свободная строка. Человек пишет «Ленина 5» — без города, подъезда и квартиры. Заказ принят, курьер звонит, и смысл автоматизации на этом звонке заканчивается.
- Зона доставки. Правило зоны надо описать словами заранее: улицы, районы, границы, стоимость доставки по зонам, минимальная сумма. Пока правила нет, бот принимает заказы, которые никто не повезёт.
- Точка на карте. В переписке человек может отправить геолокацию, и это помогает найти дом. Но подъезд, этаж, квартиру и код домофона точка не содержит: их всё равно спрашивают отдельными вопросами.
- Справочник адресов. Превратить «Ленина 5» в проверяемый адрес умеет внешний справочник адресов. Работа по чужому API — отдельная строка сметы: объём виден после разбора документации.
- Сохранённый адрес. Второй заказ короче, если адрес подставляется кнопкой «как в прошлый раз». Заодно это место, где в боте появляются персональные данные.
- «До двери» или «до подъезда». Это разные обещания, и бот должен называть ваше, иначе клиент придумает его сам.
Где ломается оплата
Оплата курьеру дешевле в разработке: боту достаточно записать способ оплаты в заказ. Дальше идёт ручная сверка — кто сколько привёз, что вернули, что не доехало.
Онлайн-оплата снимает сверку и добавляет слой, который видно в смете сразу: касса и чек, отмена до передачи курьеру, полный и частичный возврат. Частичный возврат здесь обычное дело: позицию сняли со стопа позже, чем приняли заказ. Юридическая и техническая часть — в статье про приём оплаты в Telegram-боте; ставку платёжного провайдера называет провайдер, это не наша цена.
Отдельно живут правила, которые всплывают в середине сборки: минимальная сумма, стоимость доставки по зонам, бесплатная доставка от суммы, промокоды. Каждое — арифметика в корзине и текст, который бот показывает до кнопки оплаты.
И механическая ловушка: кнопку «Оформить» нажимают дважды — из нетерпения или из-за медленной сети. Без защиты от повтора на кухню уедут два одинаковых заказа.
Меню, стоп-лист и часы работы кухни
Меню меняется чаще сценария: цены, стоп-позиции, часы работы правят каждую неделю, иногда несколько раз в день. Поэтому «кто правит меню» решается до сборки.
- Правит заказчик в кабинете бота — дешевле всех в эксплуатации, но кто-то должен это делать.
- Меню приходит из вашего учёта — править дважды не надо, но нужна интеграция, и она считается отдельно.
- Правит подрядчик — самый дорогой вариант: каждое изменение цены становится заявкой в поддержку.
Стоп-лист — тот же вопрос, только острее. Позиция кончилась в 19:40, а бот продаёт её, пока кто-то не выключит. Механика простая: тумблер у позиции и человек, который его щёлкает. Без ответственного стоп-лист мёртв.
Часы работы кухни — третье место того же рода. Ночной заказ либо получает «кухня закрыта, принимаем с 10:00», либо оформляется как предзаказ на утро. Оба варианта рабочие, выбрать надо заранее, а не после запуска.
Как заказ попадает на кухню
| Куда падает заказ | Кому подходит | Что учесть |
|---|---|---|
| Сообщение ответственному в мессенджер | одна точка, небольшой поток | сообщение теряется в переписке, поэтому дублируется в таблицу |
| Таблица заказов в кабинете бота | нужен список с историей и статусами | смотреть надо в кабинет; отдельного приложения для кухни нет |
| Ваша система по её API | учёт уже работает, менять его нельзя | работа по чужому API — отдельная строка сметы после разбора документации |
Шестой шаг, которого в задании обычно нет, — статусы: принят, готовится, передан курьеру, доставлен. Каждый статус — исходящее сообщение, и кто нажимает кнопку, решают заранее. Если заказ живёт в таблице кабинета, статус ставит человек. Если заказ ушёл в вашу систему, статус должен вернуться обратно — иначе обещание «бот напишет, когда курьер выехал» окажется пустым.
Ограничения каналов: кому бот может написать про статус заказа
Право написать первым даёт мессенджер, а не бот. Полный разбор — в статье о том, кто может написать клиенту первым; для доставки важны четыре строки.
| Канал | Кто может написать первым | Статусы заказа | Что учесть в доставке |
|---|---|---|---|
| Telegram | только тому, кто нажал «Запустить» | работают | рассылки по базе телефонов не существует: по номеру бот человека не найдёт |
| ВКонтакте | тому, кто разрешил сообщения сообществу, — бессрочно | работают | окна в 24 часа у ВК нет — это чужое ограничение, попавшее в разговор по инерции |
| МАКС | только после того, как человек начал диалог | работают | профиль организации, ИП или самозанятого; верификация несколько рабочих дней |
| Instagram* | написать первым нельзя | не обещаем | легальные входы — ответ на комментарий, реакция на сторис, кодовое слово в личных сообщениях |
Про Instagram* скажем прямо: принять заказ в директе можно, а сообщить через сорок минут «курьер выехал» официальный API не даёт. Первый директ после комментария уходит как Private Reply, и попытка одна: отказ сжигает слот, повторная отправка не спасает, спасает публичная подсказка в комментариях. Поэтому заказ из Instagram* уводим в Telegram-бота ссылкой, и статусы приходят оттуда.
В МАКС вход строже: бота заводит организация, ИП или самозанятый — резидент РФ, кабинет на business.max.ru, верификация занимает несколько рабочих дней. Обращения к API требуют доверенного российского корневого сертификата — без него запросы не проходят, и выглядит это как «бот молчит без ошибок».
Персональные данные в заказе: имя, телефон, адрес
Имя, телефон и адрес доставки — персональные данные, и бот собирает их все три. До запуска нужны текст согласия, понятное место хранения и решение, сколько данные живут. Наша политика обработки персональных данных — пример формы, а не образец для вашего бизнеса: формулировки согласуйте со своим юристом, мы не юридическая фирма.
Инженерная часть короткая: не пересылайте адреса и телефоны в общие чаты и заранее решите, что происходит с сохранённым адресом, когда клиент просит удалить его.
Создать тг бот доставки еды: что нужно с вашей стороны
Чтобы создать тг бот доставки еды и не переделывать его трижды, до начала работ нужны шесть вещей.
- Меню файлом: разделы, позиции, цены, модификаторы. Не «пицца», а «пицца 30 см, 890 ₽, тесто на выбор, добавки из списка».
- Правила доставки: зоны, стоимость по зонам, минимальная сумма, бесплатная доставка от суммы, «до двери» или «до подъезда».
- Часы работы кухни и правило ночных заказов: отказ или предзаказ.
- Способ оплаты: курьеру, онлайн или оба. Если онлайн — кто ведёт кассу и как оформляются возвраты.
- Куда падает заказ и кто ставит статусы: мессенджер ответственного, таблица в кабинете или ваша система.
- Один человек со стороны заказчика, который решает вопросы по меню и стоп-листу. Когда таких людей трое, меню переделывается трижды.
Когда бот для доставки не нужен
Когда меню меняется каждый день, а править его некому. Сначала ответственный за стоп-лист, потом бот — иначе бот будет уверенно продавать то, чего нет на кухне.
Когда поток маленький. Порога в заказах у нас нет, его считают на вашем потоке. Логика простая: пока администратор успевает отвечать сам, хватает автоответчика с меню и контактом, а разработка от 20 000 ₽ и поддержка от 5 000 ₽ в месяц должны на что-то делиться.
Когда нужна логистика или агрегатор, а не приём заказов. Назначение курьеров, маршруты, карта с движением курьера, расчёт смен — это система доставки. Несколько ресторанов, рейтинги и комиссии — платформа. Бот бывает входом и туда, и туда, но сам их не заменяет, и обещать обратное было бы нечестно.
Когда нужна рассылка по базе телефонов. В Telegram её не существует: бот пишет только тому, кто нажал «Запустить», и по номеру человека не найдёт. «Напомнить о себе тем, кто нам не писал» решается во ВКонтакте: сообщество может написать первым тому, кто разрешил ему сообщения, и срок для этого не истекает.
Когда весь заказ должен жить в одном Instagram*. Принять заказ там можно, сообщить статус — нет. Если статусы — половина смысла проекта, второй канал придётся добавить.
Сколько стоит бот для доставки еды
Разработка — от 20 000 ₽, поддержка — от 5 000 ₽ в месяц. Точную цифру называем после разбора задачи и до начала работ, а не в процессе; как считаем и что входит в поддержку — в разделе про цены на разработку и поддержку.
Что двигает смету именно в доставке:
- число позиций и модификаторов: меню на десять позиций и конструктор пиццы — разная работа;
- зоны доставки: одна зона дешевле трёх с разной ценой и минимальной суммой;
- онлайн-оплата: касса, чеки, отмены, полные и частичные возвраты;
- источник меню и стоп-листа: экран в кабинете дешевле интеграции с учётом;
- статусы заказа: сколько их и кто их ставит;
- число каналов и мини-приложение вместо кнопок — отдельная веб-часть со своей сметой.
Сроков мы не обещаем. Единственный подтверждённый срок в статье — верификация профиля в МАКС, несколько рабочих дней, и он от нас не зависит.
Отдельная строка — ИИ. Если заказ принимается словами («две пиццы и колу на восемь вечера»), на первой линии стоит ИИ-агент, и его работа считается по расходу токенов: сколько потратил, столько и стоит, фиксированной ставки за месяц у нас нет. Оплату зарубежных ИИ-сервисов иностранными картами помогаем провести отдельно. Требование к такому агенту одно — не выдумывать позиции и цены, которых нет в меню; как сделать так, чтобы ИИ-агент не придумывал, разобрано отдельно.
Что запомнить
- Порядок шагов важнее текстов: зона доставки проверяется до сборки корзины, а не на кнопке «Оформить».
- Точка на карте адрес не заменяет: подъезд, этаж, квартиру и код домофона бот спрашивает отдельными вопросами, а проверка адреса по внешнему справочнику — отдельная строка сметы.
- Стоп-лист работает только при живом ответственном: тумблер у позиции — программа, щелчок в 19:40 — человек.
- Канал решает, будут ли статусы вообще: если заказы приходят только из Instagram*, обещание «напишем, когда курьер выехал» придётся переносить в другой мессенджер.
- Онлайн-оплата — это касса, чеки и частичные возвраты, а не одна кнопка; двойное нажатие «Оформить» без защиты от повтора даёт два заказа на кухне.
- Смету двигает не «сложность бота», а число модификаторов, зон доставки и статусов, способ оплаты и то, откуда бот берёт меню. Работа ИИ-агента считается по расходу токенов, сроков мы не обещаем.
Чтобы посчитать смету, напишите в @etoBotTeamBot три вещи: меню файлом, правила зон и минимальной суммы и канал, где сейчас принимаются заказы. Этого обычно хватает, чтобы назвать цифру до начала работ.
Частые вопросы
Как создать тг бот доставки еды?
Сначала собрать меню файлом с ценами и модификаторами, описать зоны доставки и часы кухни, выбрать способ оплаты. Потом собирается сценарий из пяти шагов: меню, корзина, адрес, время, оплата. Шестым идут статусы заказа. В Telegram бот пишет только тому, кто нажал «Запустить», поэтому статусы работают без оговорок.
Сколько стоит чат-бот для доставки еды?
Разработка — от 20 000 ₽, поддержка — от 5 000 ₽ в месяц. Точную цифру называем после разбора задачи и до начала работ. Смету двигают число позиций и модификаторов, количество зон доставки, онлайн-оплата с возвратами, источник меню и стоп-листа, число каналов. Сроков не обещаем.
Что выбрать для доставки: заказ в переписке или мини-приложение с корзиной?
Переписка кнопками дешевле и подходит короткому меню с простыми позициями. Мини-приложение с корзиной нужно, когда у позиций есть размер и добавки: это веб-часть со своей сметой. Замеренного порога у нас нет — перелом даёт не длина меню, а модификаторы. Проверьте и канал: мини-приложения есть только в Telegram и МАКС. Рабочий и смешанный вариант: витрина экраном, статусы в переписке.
Как бот для доставки проверяет адрес?
Зона доставки проверяется до сборки корзины по вашему правилу: улицы, районы, стоимость по зонам, минимальная сумма. Точку на карте человек отправить может, но подъезд, квартиру, этаж и код домофона она не содержит — их бот спрашивает отдельно. Проверка адреса по внешнему справочнику адресов — отдельная строка сметы.
Можно ли принимать оплату в боте для доставки еды?
Да, двумя способами: онлайн в боте или курьеру при получении. Оплата курьеру дешевле в разработке, но оставляет ручную сверку. Онлайн-оплата добавляет кассу, чеки, отмены и частичные возвраты — они всплывают, когда позицию сняли со стопа после приёма заказа. Ставку платёжного провайдера называет провайдер.
Можно ли сделать бота для доставки в МАКС?
Да, но вход строже, чем в Telegram. Бота заводит организация, ИП или самозанятый — резидент РФ, кабинет на business.max.ru, верификация профиля занимает несколько рабочих дней, число ботов на профиль ограничено. Писать человеку можно только после начала диалога. Обращения к API МАКС требуют доверенного российского корневого сертификата.
Можно ли принимать заказы на доставку через Instagram*?
Принять заказ можно: человек приходит из комментария под постом, по реакции на сторис или по кодовому слову в личных сообщениях, дальше обычный сценарий. Сообщить статус позже нельзя — написать первым в Instagram* официальный API не даёт. Первый директ после комментария уходит как Private Reply, попытка одна: отказ сжигает слот.
Может ли бот сообщать статус заказа клиенту?
Да, если канал разрешает написать первым: в Telegram — тому, кто нажал «Запустить», во ВКонтакте — тому, кто разрешил сообщения сообществу, в МАКС — после начала диалога. В Instagram* статусы не обещаем. Второе условие — статус должен откуда-то приходить: кнопкой в кабинете или из вашей системы.
Нужен бот, который делает это у вас?