Професійний Telegram-бот для доставки їжі з інтеграцією Google Sheets, SQLite та зручною адмін-панеллю.
- Динамічне меню: Оновлення меню безпосередньо з Google Таблиці без зупинки бота.
- Розумний кошик: Інтерактивне управління кількістю товарів (
+,-,Видалити) прямо в повідомленні. - Оформлення замовлення (FSM): Покроковий майстер оформлення з можливістю повернутися назад або скасувати.
- Адмін-панель: Сповіщення про нові замовлення, призначення кур'єрів, статистика.
- Кур'єрський додаток: Окремий інтерфейс для кур'єрів (отримання замовлення, карта, статус "Доставлено").
- Надійність: Збереження історії замовлень, захист від втрати кошика при оновленні меню.
-
Клонуйте репозиторій:
git clone https://github.com/your-repo/smakota-bot.git cd smakota-bot -
Створіть віртуальне середовище (рекомендовано):
python3 -m venv venv source venv/bin/activate # Linux/macOS # venv\Scripts\activate # Windows
-
Встановіть залежності:
pip install -r requirements.txt
-
Налаштуйте змінні оточення: Створіть файл
.envі додайте:BOT_TOKEN=ващ_токен_бота ADMIN_ID=ваш_telegram_id
-
Запустіть бота:
python3 bot.py
-
Оновлення меню: Відправте боту команду
/updatemenu(тільки для адміна). Бот завантажить дані з Google Таблиці, оновить ціни та наявність, не чіпаючи активні кошики користувачів. -
Додавання кур'єра:
/add_courier <ID_Кур'єра> <Ім'я>
items: Товари (з підтримкоюis_activeдля м'якого видалення).categories: Категорії страв.cart_items: Кошики користувачів.orders: Історія замовлень.couriers: Список авторизованих кур'єрів.
Бот зчитує меню з Google Таблиці за посиланням у update_menu_gs.py.
Формат таблиці (колонки):
Category | Item Name | Price | Description | Weight
bot.py: Основна логіка бота та обробники повідомлень.database.py: Робота з SQLite (ORM-like функції).keyboards.py: Всі клавіатури (Inline та Reply).update_menu_gs.py: Скрипт синхронізації з Google Sheets.
Розроблено з ❤️ для Smakota