Legan Studio
Все статьи
~ 6 мин чтения

Автообновление каталога в Telegram-боте: синхронизация с CMS и базой данных

Как настроить автоматическую синхронизацию каталога товаров в Telegram-боте с 1С, Shopify или WordPress — без ручного обновления карточек.

  • Telegram
  • каталог
  • интеграция

У большинства интернет-магазинов, запустивших Telegram-бота с каталогом, одинаковая проблема через несколько месяцев: каталог в боте расходится с реальным ассортиментом. Цены изменились, товар закончился, добавились новые позиции — но бот показывает старые данные. Клиент оформляет заказ, менеджер звонит и сообщает, что товара нет. Доверие потеряно.

Решение — автоматическая синхронизация. Бот всегда показывает актуальные данные, потому что получает их из того же источника, что и сайт или учётная система.

Проблема ручного обновления

Представьте магазин с 500 товарными позициями. Цены меняются раз в две недели, остатки — каждый день, ассортимент пополняется ежемесячно. Без автосинхронизации нужен человек, который вручную вносит эти изменения в бота. Это:

  • 3-5 часов в неделю на обновление цен и остатков
  • Человеческий фактор: что-то пропустили, что-то ввели неверно
  • Задержка: новый товар появился на сайте, в боте — через 3 дня

При этом клиент, который работает с ботом, ожидает той же актуальности, что и на сайте. Любое расхождение — это либо потерянная продажа (показали недоступный товар), либо потерянная маржа (показали старую цену ниже текущей).

Как работает автосинхронизация

Технически существует два подхода в зависимости от источника данных.

Webhook (реактивный). Когда в системе-источнике (CMS сайта, 1С, ERP) меняются данные — она автоматически отправляет уведомление боту. Бот получает только изменения (дельту), обновляет свою базу. Данные в боте актуальны с задержкой в секунды.

Периодическая синхронизация (polling). Бот по расписанию (каждые 15 минут, каждый час, раз в день) запрашивает полный или частичный выгруз данных из источника, сравнивает с тем, что хранит, и обновляет различия. Задержка — от 15 минут до нескольких часов, зависит от настройки.

Webhook предпочтительнее для критичных данных (остатки, цены на высококонкурентных рынках). Периодическая синхронизация достаточна для большинства ниш.

Три источника данных: 1С, CMS, Google Sheets

Синхронизация с 1С

1С — стандартная учётная система для российского малого и среднего бизнеса. Данные о товарах, ценах и остатках здесь самые актуальные — потому что именно сюда вносятся приходы и расходы.

Два способа интеграции:

REST API через «1С:Управление торговлей» или внешнюю обработку. 1С публикует REST-интерфейс, бот делает запросы. Требует настройки на стороне 1С (разработчик 1С) и доступа к системе по сети.

Выгрузка в файл (CSV/XML). 1С по расписанию выгружает прайс в файл на общий ресурс или FTP. Бот читает файл и обновляет каталог. Менее элегантно, но работает даже для устаревших конфигураций 1С.

Что синхронизируется из 1С: артикул, наименование, цена, остаток (в штуках), единица измерения, описание (если заполнено), категория.

Синхронизация с CMS сайта

Если у вас сайт на WordPress (WooCommerce), OpenCart, Shopify или аналогичной CMS — там уже есть каталог с актуальными данными. Синхронизация с ботом возможна через REST API этих систем.

WooCommerce REST API — хорошо документированный, поддерживает пагинацию, фильтры по категории и статусу. Бот может запрашивать только товары со статусом «В наличии» и обновлять каталог раз в час.

Shopify API — аналогично, хорошая документация, webhook-события при изменении товара (created, updated, deleted).

Важный нюанс: при синхронизации из CMS сайта фото товаров берутся по URL из той же системы. Это значит, что в боте будут показаны те же изображения, что и на сайте — без дополнительных усилий.

Google Sheets как источник данных

Для небольших магазинов с каталогом до 200 позиций Google Sheets — неожиданно удобное решение. Менеджер обновляет таблицу в привычном интерфейсе, бот через Google Sheets API раз в 30-60 минут читает обновления.

Плюс: нет необходимости в разработчике для обновления каталога. Минус: подходит только для относительно небольших и не очень динамичных каталогов.

Что синхронизируется

ДанныеПриоритетЧастота измененийРекомендуемый тип синхронизации
ЦеныКритическийЧастоWebhook или раз в час
ОстаткиКритическийОчень частоWebhook или каждые 15 мин
Описания товаровСреднийРедкоРаз в сутки
ФотографииНизкийРедкоРаз в сутки / при изменении
Новые позицииСреднийПо мере добавленияРаз в час
Удалённые позицииВысокийПо мере снятияРаз в час или webhook

Удалённые позиции — особый случай. Если товар снят с продажи, бот должен скрыть его из каталога немедленно — иначе клиенты пытаются его заказать и получают отказ. Это лучший кандидат для webhook-уведомления.

Интервал синхронизации: реалтайм vs периодически

Реалтайм (webhook) нужен в нескольких сценариях:

  • Высококонкурентные товары с быстро меняющимися остатками (электроника, популярные модели)
  • Магазин с высоким трафиком, где задержка в 1 час критична
  • Динамические цены (торги, аукционы, спотовые цены)

Периодической синхронизации (раз в 1-4 часа) достаточно для:

  • Большинства стандартных e-commerce магазинов
  • Каталогов с относительно стабильными ценами
  • Малого бизнеса с умеренным трафиком

Раз в сутки — только для контента, который почти не меняется (описания, характеристики, категории).

Стоимость разработки синхронизации

Тип интеграцииОбъём разработкиСтоимость
Google Sheets → бот (периодически)1-2 недели15 000–30 000 руб.
WooCommerce/Shopify → бот (периодически)2-3 недели30 000–60 000 руб.
1С → бот через выгрузку файла2-3 недели30 000–50 000 руб.
1С → бот через REST API (двусторонняя)4-6 недель80 000–150 000 руб.
Webhook из CMS → бот (реалтайм)3-5 недель60 000–100 000 руб.

Стоимость варьируется в зависимости от сложности исходной системы, качества документации API и объёма каталога.

Кому это критически необходимо

Магазины с большим ассортиментом (500+ позиций). При таком объёме ручное обновление нереально. Без синхронизации каталог в боте будет хронически неактуален.

Бизнесы с быстрым оборотом остатков. Одежда (особенно в сезон), электроника, популярные продукты питания — остатки меняются несколько раз в день.

Бизнесы с частыми акциями и изменениями цен. Если вы меняете цены раз в неделю или чаще — ручное обновление в боте создаёт постоянный риск ошибки.

Компании с несколькими каналами продаж. Если вы продаёте через сайт, бота и в офлайне — данные должны быть синхронизированы между всеми каналами. Иначе клиент видит в боте «есть в наличии», приходит в магазин — а товара нет.

Автосинхронизация — это не опция, это требование для любого серьёзного e-commerce бота. Без неё бот превращается в красивую игрушку, которая подводит клиентов в ключевой момент — при попытке купить.