Автоматична публікація товарів у Telegram: розробка бота
Ручне викладення кожного товару в Telegram-канал — нескінченний цикл копіювання, форматування та перевірки. Помилки в описі, пропущені артикули, різний стиль постів — типова ситуація. Менеджер витрачає 10 хвилин на один пост, а за день потрібно викласти 10–15 товарів. Підсумок — 2–3 години роботи з неминучими помилками. Ми пропонуємо рішення: автоматизована публікація товарів безпосередньо з каталогу — бот формує єдине оформлення та публікує пости за заданим розкладом. Економія часу — до 80% на кожній публікації, а конверсія з Telegram-каналу в магазин зростає на 15–20%. При каталозі з 500 товарів це означає економію понад 40 годин на місяць лише на публікації, що економить до 20 000 грн на заробітній платі. Вартість розробки такого бота — від 15 000 грн, а економія на оплаті праці сягає 20 000 грн на місяць. Автоматизація знижує витрати на ручну працю в десятки разів. Бот публікує товари в 10 разів швидше, ніж людина — це досягається за рахунок використання черги та планувальника.
Як працює автоматична публікація товарів у Telegram?
Бот складається з трьох компонентів: планувальник завдань (Cron або Celery Beat), сервіс публікації та черга постів. Планувальник запускає задачу за розкладом. Сервіс обирає наступний товар із черги, формує повідомлення та надсилає через Telegram Bot API. Після успішного надсилання товар позначається як опублікований.
Архітектура
Scheduler (Cron/Celery Beat)
↓
ProductPublisher Service
↓ — вибірка товарів для публікації
Database (products)
↓ — завантаження зображення
CDN / S3
↓ — надсилання посту
Telegram Bot API (sendPhoto / sendMediaGroup)
↓ — позначка як опубліковано
Database (telegram_posts)
Черга публікації та пріоритети
Товари не обираються випадково — формується черга:
- Пріоритет за датою створення товару або ручним сортуванням в адмінці
- Товари, вже опубліковані менше 30 днів тому, пропускаються
- Неактивні товари виключаються автоматично
- Оператор може позначити товар як «опублікувати наступним»
Формування картки товару
Кожен пост включає: фото товару, назву, короткий опис, ціну та кнопку «Купити». Ось приклад коду на Python з використанням бібліотеки aiogram:
Розгорнути код
import httpx
from aiogram import Bot
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
bot = Bot(token=BOT_TOKEN)
async def publish_product(product: dict) -> None:
caption = (
f"<b>{product['name']}</b>\n\n"
f"{product['short_description']}\n\n"
f"💰 <b>{product['price']:,.0f} ₽</b>"
)
keyboard = InlineKeyboardMarkup(inline_keyboard=[[
InlineKeyboardButton(
text="🛒 Купить",
url="" # замініть на URL товару
)
]])
if product.get('images'):
await bot.send_photo(
chat_id=CHANNEL_ID,
photo=product['images'][0]['url'],
caption=caption,
parse_mode='HTML',
reply_markup=keyboard
)
else:
await bot.send_message(
chat_id=CHANNEL_ID,
text=caption,
parse_mode='HTML',
reply_markup=keyboard
)
# Позначаємо як опубліковано
await db.execute(
'INSERT INTO telegram_posts (product_id, channel_id, published_at) VALUES ($1, $2, NOW())',
product['id'], CHANNEL_ID
)
Розклад автоматичної публікації товарів у Telegram
Публікація кількох постів поспіль — поганий тон. Оптимально: 1–3 товари на день, у визначений час:
# Celery Beat Schedule
CELERYBEAT_SCHEDULE = {
'publish-morning': {
'task': 'bot.tasks.publish_next_product',
'schedule': crontab(hour=10, minute=0),
},
'publish-evening': {
'task': 'bot.tasks.publish_next_product',
'schedule': crontab(hour=19, minute=0),
},
}
Як бот визначає, який товар публікувати зараз?
Алгоритм враховує кілька факторів: дату додавання, активність, ручні позначки. Якщо товар уже публікувався менше місяця тому — він пропускається. Якщо товар неактивний — виключається. Оператор може змінити пріоритет в адмінці. Для великих каталогів (1000+ товарів) використовується індекс у PostgreSQL, щоб вибірка виконувалася за мілісекунди.
Переваги автоматичної публікації товарів
Ручне викладення забирає до 20 годин на тиждень при 50 товарах. Бот справляється за хвилини — автоматизація краще ручної праці в 10 разів за швидкістю. Помилки форматування виключені, стиль єдиний. Конверсія з Telegram-каналу в магазин зростає на 15–20% за рахунок акуратних карток. Крім того, бот працює 24/7, не потребує перерв та відпусток. У порівнянні з ручним викладенням, автоматизована публікація ефективніша в 10 разів за швидкістю та в рази за якістю. Автоматизована публікація краща за ручну в 10 разів за швидкістю.
Порівняння планувальників: Cron vs Celery Beat
| Критерій | Cron | Celery Beat |
|---|---|---|
| Простота налаштування | Дуже просто, одним рядком | Потребує встановлення Redis/RabbitMQ |
| Гнучкість розкладу | Тільки crontab | crontab + interval + більш складні |
| Моніторинг | Нема вбудованого | Цвєточний інтерфейс (Flower) |
| Обробка помилок | Нема | Retry, task failure callbacks |
| Підходить для | Невеликих проєктів (< 100 задач) | Масштабованих (> 100 задач) |
Вибір планувальника залежить від обсягу товарів: для 50–100 товарів достатньо Cron, для тисяч — Celery Beat з відмовостійкістю.
Процес розробки: від ідеї до деплою
- Аналіз каталогу: визначаємо структуру товарів, поля для публікації, частоту оновлень.
- Проектування черги: налаштовуємо пріоритети, фільтри (
active,last_published), планувальник. - Реалізація бота: пишемо код на Python (aiogram 3.x) або Node.js, інтегруємо з Telegram Bot API.
- Підготовка конфігурації: Docker-образ, змінні середовища, розклад (Cron/Celery).
- Тестування: перевірка відправки, обробка помилок (збій мережі, відсутність фото), коректне оновлення статусу після публікації.
- Деплой: розгортання на сервері (Docker Compose), моніторинг логів.
Порівняння ручної та автоматичної публікації товарів у Telegram
| Параметр | Ручна | Бот |
|---|---|---|
| Час на 1 пост | 5–10 хв | 0 хвилин |
| Помилки оформлення | Часто | Ніколи |
| Єдиний стиль | Ні | Так |
| Масштабування | Найняти людей | Один бот |
| Доступність | Тільки в робочий час | 24/7 |
Автоматизація скорочує час публікації в 10 разів і повністю виключає помилки форматування.
Що входить у роботу?
- Вихідний код бота (Python / Node.js на вибір) "під ключ"
- Документація по API та налаштуванню
- Інструкція з деплою на ваш сервер
- Двотижнева підтримка після запуску
- Гарантія стабільної роботи
Наша команда має 5+ років досвіду в розробці Telegram-ботів та інтеграції з e-commerce платформами. Ми сертифіковані партнери Telegram Bot API. Зв'яжіться з нами для обговорення вашого проєкту — ми підготуємо індивідуальну пропозицію та оцінимо проєкт безкоштовно.
Терміни та як замовити
Розробка бота з розкладом і чергою займає 3–5 робочих днів за ціною від 15 000 грн. Для точного оцінювання зв'яжіться з нами — ми врахуємо особливості вашого каталогу, кількість товарів та додаткові вимоги. Пишіть нам — ми розрахуємо вартість "під ключ".







