Как я собрал бота для приёмки заказов за 3 дня
Задача
Клиент — служба доставки в Москве. Менеджеры принимали заказы через WhatsApp, копировали данные в таблицу вручную, теряли заявки в потоке сообщений. Нужен был бот, который принимает заказ 24/7, записывает в базу и выгружает в Excel.
День 1: Архитектура и база
Первым делом — структура данных. Каждая заявка: имя клиента, телефон, адрес, комментарий, статус, менеджер, время. Храним в SQLite — легковесно, не требует отдельного сервера, файловая база лежит прямо на VPS.
CREATE TABLE orders (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
phone TEXT NOT NULL,
address TEXT,
comment TEXT,
status TEXT DEFAULT 'new',
manager TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Два вида пользователей: клиент (пишет боту) и менеджер (принимает заявку, меняет статус). Разграничение — по chat_id в отдельной таблице roles.
День 2: Telegram API и логика
Использую aiogram 3 — асинхронный фреймворк, удобные хендлеры, встроенный FSM (машина состояний) для пошагового диалога с клиентом.
Клиент нажимает «Оформить заказ» → бот спрашивает имя → телефон → адрес → комментарий → подтверждает. Менеджер видит новую заявку в канале, нажимает кнопку «Принять» — статус меняется, клиент получает уведомление.
Ключевые команды для менеджера:
/stats— количество заявок за день/неделю/месяц/export— выгрузка в Excel (через openpyxl)/active— список непринятых заявок
День 3: Деплой и тестирование
Бот развёрнут на VPS через systemd — автозапуск при перезагрузке, автоматический перезапуск при падении, логи в journald.
[Unit] Description=Order Bot After=network.target [Service] User=bot WorkingDirectory=/home/bot/order-bot ExecStart=/home/bot/order-bot/venv/bin/python main.py Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
После деплоя — два часа тестирования с реальными менеджерами. Исправили мелочи: формат телефона, порядок шагов, текст кнопок. На третий день вечером бот уже принимал реальные заказы.
Результат
Бот работает без простоев уже несколько месяцев. Менеджеры не копируют данные вручную — всё автоматически в базе и Excel. Ночных заказов стало больше: раньше клиент писал в WhatsApp и ждал утра, теперь бот принимает заявку сразу.
Стоимость разработки: 12 000 ₽. Окупилось за первую неделю.
← НАЗАД В АРХИВ