Уведомление о новом заказе в почте легко потерять среди других сообщений. Поэтому владельцы магазинов ищут способ отправлять события WooCommerce в Telegram: новый заказ, изменение статуса, ошибка оплаты или низкий остаток. Но рабочая интеграция — это не только отправка текста в чат. Нужно определить события, доступы, формат сообщения и поведение системы при временной ошибке.
Определите, кому и что отправлять
Начните с маршрутов. Администратору может быть нужен полный заказ, менеджеру — номер, сумма и способ связи, а сотруднику склада — только состав и количество. Отправка одних и тех же персональных данных во все чаты увеличивает риск лишнего доступа. Состав сообщения лучше зафиксировать отдельно: идентификатор заказа, время, товарные позиции, итог, способ доставки и ссылка на административную карточку — только если все получатели действительно имеют право ее открывать.
Затем выберите события. Обычно достаточно нового заказа и смены статуса, но магазин может дополнительно реагировать на неуспешную оплату, возврат, отмену или критический остаток. Не стоит отправлять уведомление при каждом техническом изменении, если оно не требует действия человека. Поток лишних сообщений быстро снижает ценность канала.
Как устроена связка WooCommerce и Telegram
Telegram Bot API принимает сообщение от приложения магазина. В WooCommerce событие заказа передает данные в обработчик, обработчик формирует безопасный текст и отправляет запрос к API. В простом варианте это может быть небольшой модуль, а в сложном — отдельный сервис интеграции, который умеет хранить очередь, вести журнал и повторять отправку.
Токен бота нельзя хранить в открытом HTML, в репозитории или в обычном поле записи заказа. Доступ должен находиться в защищенной конфигурации, а права к нему — только у тех, кому они нужны для поддержки. Chat ID и список каналов также лучше хранить централизованно, чтобы смена получателя не требовала правки нескольких файлов.
Проверьте, что бот добавлен в нужный чат с достаточными правами, а сообщения не уходят в тестовую группу после переноса на рабочий сайт. Для разделения контуров удобно использовать разные настройки и разные чаты для staging и production.
Надежность важнее красивого шаблона
Внешний API может временно ответить ошибкой, сеть может прерваться, а сайт может получить несколько одинаковых событий. Поэтому интеграция должна иметь тайм-аут, ограниченное число повторных попыток и журнал результата. При повторе нужен идентификатор события, чтобы одно уведомление не превратилось в несколько одинаковых сообщений.
Не следует блокировать оформление заказа долгим ожиданием Telegram. Заказ должен сохраниться, а уведомление — уйти асинхронно или через очередь. Если отправка не удалась, менеджер должен увидеть это в журнале и иметь понятный способ повторить попытку. Сообщение об ошибке без контекста не поможет: в журнале нужны номер заказа, время, этап и код ответа.
Для сообщений с товарами заранее определите ограничение длины и способ представления длинного списка. Если заказ содержит много позиций, можно отправлять краткое резюме и ссылку на административную карточку. Ссылка должна вести на защищенную область сайта, а не раскрывать данные в публичном URL.
Что проверить на тестовом контуре
- новый заказ с одним товаром и с несколькими позициями;
- заказ с вариацией, скидкой, доставкой и промокодом;
- ошибку платежа и повторную смену статуса;
- недоступность Telegram во время отправки;
- повторную обработку одного события;
- отсутствие токена и неверный Chat ID;
- разные права получателей и разделение тестового и рабочего чата.
После теста проверьте не только сообщение, но и отсутствие лишних данных в логах. Текст заказа может содержать телефон, адрес или комментарий клиента. Логи должны помогать диагностировать интеграцию, но не становиться второй копией персональных данных.
Когда оправдана индивидуальная доработка
Готовый плагин удобен, если нужен один тип уведомлений и проект соответствует его ограничениям. Индивидуальная доработка нужна, когда сообщения зависят от ролей, статусов, источника заказа или нескольких магазинов. Также отдельная реализация полезна, если Telegram должен передавать ответное действие обратно в WooCommerce, например подтверждение менеджером или запуск дополнительного процесса.
Итог
Telegram-уведомления помогают быстрее реагировать на заказы, если они встроены в понятный процесс. Сначала определите события и данные, затем защитите токен, добавьте журнал и повторные попытки, а после этого проверьте дубликаты и отказ внешнего API. Такой порядок делает интеграцию поддерживаемой и не связывает успешность заказа с доступностью одного канала сообщений.
