Telegram бот для быстрого заказа воды Samal с автоматическим оформлением заказов на сайте samal.kz.
Этот бот упрощает процесс заказа воды, избавляя от необходимости каждый раз заходить на сайт, заполнять формы и добавлять товары в корзину. Просто нажмите кнопку в Telegram!
- ✅ 🚰 Быстрый заказ - повторный заказ одной кнопкой (2 клика!)
- 📦 Новый заказ - полный выбор продукта и количества
- 📝 Автоматическое сохранение данных пользователя (адрес, телефон)
- 🚰 Выбор из всех доступных продуктов Samal
- 📜 История заказов
- 👤 Управление профилем
- 💾 Минимальное использование ресурсов сервера
# Клонируйте репозиторий
git clone https://github.com/tzhmbtv/SamalWaterOrderAutomation.git
cd SamalWaterOrderAutomation
# Создайте виртуальное окружение
python3 -m venv venv
source venv/bin/activate # macOS/Linux
# или venv\Scripts\activate # Windows
# Установите зависимости
pip install -r requirements.txt
# Создайте .env файл
cp env_example.txt .env
nano .env # Добавьте ваш TELEGRAM_BOT_TOKEN
# Запустите бота
python bot.pyСм. подробную инструкцию в PRODUCTION_SETUP.md
Краткая версия:
# На сервере
git clone https://github.com/tzhmbtv/SamalWaterOrderAutomation.git
cd SamalWaterOrderAutomation
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Создайте .env с вашим токеном
nano .env
# Настройте systemd сервис (см. PRODUCTION_SETUP.md)При запуске бота вы увидите главное меню с кнопками:
После сохранения данных:
- 🚰 Быстрый заказ - повторить последний заказ (2 клика!)
- 📦 Новый заказ - выбрать другой продукт
- 👤 Мой профиль - посмотреть сохраненные данные
- 📜 История заказов - список всех заказов
Текстовые команды:
/start- Начало работы/order- Сделать заказ/profile- Профиль/history- История/cancel- Отменить действие
- Нажмите "📦 Новый заказ"
- Выберите продукт из списка
- Укажите количество
- Введите:
- Имя
- Телефон
- Адрес доставки
- Комментарий (опционально)
- Подтвердите заказ
- ✅ Данные сохранены!
- Нажмите "🚰 Быстрый заказ"
- Подтвердите заказ
- ✅ Готово! Всего 2 клика!
SamalWaterOrderAutomation/
├── bot.py # Главный файл бота
├── config.py # Конфигурация (продукты, настройки)
├── database.py # Работа с SQLite базой данных
├── samal_api.py # API для работы с сайтом Samal
├── test_api.py # Скрипт для тестирования API
├── requirements.txt # Зависимости Python
├── env_example.txt # Пример .env файла
├── .gitignore # Игнорируемые файлы
├── PRODUCTION_SETUP.md # Инструкция по установке на сервер
└── README.md # Этот файл
# Обязательно
TELEGRAM_BOT_TOKEN=ваш_токен_от_BotFather
# Опционально (значения по умолчанию)
DEFAULT_PRODUCT_ID=224 # Вода Samal 18,9 л
DEFAULT_QUANTITY=2 # 2 бутыли
LOG_LEVEL=ERROR # ERROR | INFO | DEBUG- ERROR (рекомендуется для production) - только критичные ошибки, минимальное использование диска
- INFO - основные события (для отладки)
- DEBUG - максимально детально (только для разработки)
Бот поддерживает заказ всех продуктов Samal:
| Продукт | Цена | Примечание |
|---|---|---|
| Вода Samal 18,9 л | 1,700₸ | Мин. заказ: 2 бутыли |
| Вода Samal 6 л | 620₸ | Мин. заказ: 2 бутыли |
| Вода Samal 2,0 л | 325₸ | Упаковка 6 ед. |
| Вода Samal 1,5 л | 320₸ | Упаковка 6 ед. |
| Вода Samal 1 л | 275₸ | Упаковка 6 ед. |
| Вода Samal 0,5 л | 220₸ | Упаковка 12 ед. |
Бот использует SQLite для хранения:
- Пользователи: chat_id, телефон, адрес, имя, комментарий
- Заказы: история с датами и статусами
База создается автоматически при первом запуске.
Для тестирования API без реальных заказов:
python test_api.pyСкрипт проверит:
- ✅ Добавление товара в корзину
- ✅ Получение страницы checkout
- ✅ Извлечение nonce
- ✅ Формирование данных заказа
- ✅ Cookies и сессии
- Python 3.8+
- python-telegram-bot - Telegram Bot API
- requests - HTTP запросы к сайту Samal
- SQLite - База данных
- python-dotenv - Управление конфигурацией
- ✅ Пароли и токены хранятся в
.env(не в git) - ✅ База данных локальная (SQLite)
- ✅ Минимальное логирование в production
- ✅ Рекомендуется запуск от отдельного пользователя (не root)
Оптимизировано для серверов с ограниченными ресурсами:
- 💾 Минимальное использование диска (логирование только ошибок)
- 🚀 Малое потребление RAM (~50-100 MB)
- ⚡ Быстрые ответы (polling)
- 🔄 Автоматический перезапуск при сбоях
- ✅ Доставка осуществляется только по г. Алматы
- ✅ Для воды 18,9 л необходима обменная тара
- ✅ Минимальный заказ обычно 2 единицы/упаковки
- ✅ С вами свяжется оператор для подтверждения
- Проверьте токен в
.env - Убедитесь что установлены зависимости:
pip install -r requirements.txt - Проверьте логи:
tail -f /var/log/samalbot_error.log(на сервере)
- Проверьте интернет-соединение
- Убедитесь что сайт samal.kz доступен
- Включите расширенное логирование (LOG_LEVEL=INFO) для отладки
- Проверьте что LOG_LEVEL=ERROR в .env
- Очистите старые логи:
journalctl --vacuum-time=3d - См. раздел в PRODUCTION_SETUP.md об очистке системы
По всем вопросам:
- 🌐 Сайт: samal.kz
- 📧 GitHub Issues: создать issue
Этот проект создан для упрощения заказа воды Samal.
Приятного использования! 💙🚰