Telegram-бот для отслеживания позиций товаров на Wildberries
Мощный инструмент для продавцов на Wildberries, позволяющий автоматически отслеживать позиции своих товаров в поисковой выдаче по различным запросам с учётом региона и типа устройства.
- 🔍 Автоматическое отслеживание — проверка позиций каждые 10 минут
- 🔔 Умные уведомления — оповещения при падении позиции ниже порога
- 📦 Управление артикулами — добавление, удаление, просмотр товаров
- 🗺️ Региональный поиск — выбор федерального округа и города
- 📱 Поддержка устройств — отслеживание для PC, Android, iOS
- ⚙️ Гибкие настройки — индивидуальные пороги для каждой фразы
- ✅ Ручная проверка — мгновенная проверка позиций одного или всех товаров
- Python 3.11 или выше
- PostgreSQL 13 или выше
- Telegram Bot Token (получить у @BotFather)
-
Клонируйте репозиторий:
git clone https://github.com/your-username/WbPositionBot.git cd WbPositionBot -
Создайте виртуальное окружение:
python -m venv .venv # Windows: .venv\Scripts\activate # Linux/MacOS: source .venv/bin/activate
-
Установите зависимости:
pip install -r requirements.txt
-
Настройте окружение:
Создайте файл
.envв корне проекта:# Обязательные параметры TELEGRAM_TOKEN=your_bot_token_here DATABASE_URL=postgresql+asyncpg://user:password@localhost:5432/wb_bot # Опциональные параметры SCHEDULER_ENABLED=true DEFAULT_DEVICE=pc # Для режима webhook (опционально) WEBHOOK_URL=https://your-domain.com/webhook WEBHOOK_SECRET=your_secret_token APP_HOST=0.0.0.0 PORT=8080 # Для внешнего cron (опционально) CRON_SECRET=your_cron_secret
-
Создайте базу данных:
CREATE DATABASE wb_bot;
-
Запустите бота:
python bot.py
/start— Запуск бота и отображение главного меню/cancel— Отмена текущей операции
- Нажмите "📦 Артикулы"
- Добавьте артикул (SKU товара)
- Укажите поисковые фразы для отслеживания
- Задайте пороговые позиции
- Нажмите "🔎 Проверить позиции"
- Выберите артикул или проверьте все сразу
- Получите актуальные позиции с изображениями товаров
- Автообновление — включение/выключение автоматической проверки
- Устройство — выбор типа устройства (PC, Android, iOS)
- Регион — выбор федерального округа и города
Используйте скрипт для получения кода региона по координатам:
python scripts/fetch_dest.py 55.7558 37.6176 МоскваПараметры:
55.7558— широта37.6176— долготаМосква— название города
python scripts/reset_db.pywbpos!
Просто запустите бота — он будет опрашивать Telegram API:
python bot.py-
Настройте переменные окружения:
WEBHOOK_URL=https://your-domain.com/webhook WEBHOOK_SECRET=your_secret_token
-
Запустите бота — он автоматически переключится в режим webhook.
- Создайте Background Worker
- Укажите команду запуска:
python bot.py - Добавьте переменные окружения из
.env - Подключите PostgreSQL базу данных (Render предоставляет бесплатно)
- Настройте Cron Job для внешнего триггера (опционально):
GET https://your-app.onrender.com/cron?s=your_cron_secret
Бот совместим с любыми платформами, поддерживающими Python и PostgreSQL:
- Heroku — используйте Procfile
- Railway — автоопределение Python проекта
- DigitalOcean — App Platform или Droplet
- VPS/Dedicated — systemd service
WbPositionBot/
├── app/
│ ├── config.py # Настройки приложения
│ ├── scheduler.py # Планировщик задач
│ ├── states.py # FSM состояния
│ ├── data/
│ │ └── regions.py # Справочник регионов
│ ├── db/
│ │ ├── base.py # Настройка БД
│ │ └── models.py # ORM модели
│ ├── handlers/
│ │ ├── start.py # Главное меню
│ │ ├── articles.py # Управление артикулами
│ │ ├── tracking.py # Управление отслеживанием
│ │ ├── settings.py # Настройки пользователя
│ │ └── manual_check.py # Ручная проверка
│ └── services/
│ ├── wb_client.py # Клиент Wildberries API
│ └── tracker.py # Логика отслеживания
├── scripts/
│ ├── fetch_dest.py # Получение dest кода
│ └── reset_db.py # Сброс БД
├── bot.py # Точка входа
├── requirements.txt # Зависимости
├── runtime.txt # Версия Python
├── render.yaml # Конфигурация Render
└── README.md # Документация
- Хранит настройки пользователей
- Регион, устройство, флаг автообновления
- Артикулы товаров пользователей
- Связь один-ко-многим с пользователями
- Поисковые фразы и пороги
- История проверок и уведомлений
- aiogram 3.x — асинхронный фреймворк для Telegram Bot API
- SQLAlchemy 2.x — ORM для работы с БД
- asyncpg — асинхронный драйвер PostgreSQL
- APScheduler — планировщик задач
- aiohttp — асинхронный HTTP клиент/сервер
- Pydantic — валидация настроек
- loguru — удобное логирование
1. Нажмите "📦 Артикулы" → "➕ Добавить"
2. Введите SKU: 12345678
3. Введите фразы:
кроссовки мужские=20
кроссовки nike=15
спортивная обувь=30
4. Готово! Бот начнёт отслеживание
1. Нажмите "⚙️ Настройки" → "🗺️ Регион"
2. Выберите "Центральный"
3. Выберите "Москва"
4. Регион сохранён