Перейти к содержанию
8 минут чтения
Тема: 1С-Битрикс Telegram Bot API

Как отправлять уведомления о заказах из 1С-Битрикс в Telegram

Менеджеру удобно узнавать о новом заказе сразу в Telegram, не обновляя список заказов и не проверяя почту. Разберём, как отправлять такие уведомления из интернет-магазина на 1С-Битрикс: написать свою интеграцию или настроить готовый модуль. Для примера подключим сообщение о новом заказе, затем проверим оплату, смену статуса и возможные повторы.

Начните с события и получателя

Здесь речь об интернет-магазине на «1С-Битрикс: Управление сайтом». Для CRM Битрикс24 используются другие механизмы автоматизации. В нашем сценарии уведомления получают сотрудники магазина; рассылка покупателям потребовала бы отдельной привязки их Telegram-чатов.

До настройки определите, какое действие требует реакции и кому оно важно. Не обязательно отправлять все изменения заказа в один общий чат:

Примеры уведомлений о заказах интернет-магазина
СобытиеКому отправлятьЧто показать
Новый заказМенеджеру продаж или в чат обработки заказов.Номер, сумму, состав и способ доставки.
Заказ оплаченСотрудникам, которые готовят оплаченные заказы.Номер заказа и понятное указание на подтверждённую оплату.
Изменение статусаОтветственному за следующий этап.Номер и новый статус.
Отмена заказаМенеджеру, которому нужно остановить обработку.Номер и факт отмены.

Успешное открытие страницы «Спасибо за заказ» не подтверждает оплату. Сообщение об оплате должно опираться на состояние заказа в магазине после обработки платёжной системой. Отдельно определите, как учитывать частичные платежи и несколько оплат у одного заказа.

Два варианта: своя интеграция или готовый модуль

Собственная интеграция подходит, если у магазина особая логика: нужно объединять несколько событий, согласовывать уведомления с ERP или выбирать получателя по сложным правилам. Разработчик связывает события Битрикс с Telegram Bot API и отвечает за отправку, ошибки, журнал и повторы.

Модуль из Маркетплейса удобен для стандартных событий и настройки через административную панель. В качестве примера возьмём «Оповещения в Telegram» — aby.telegram. Он поддерживает события нового заказа, оплаты, изменения статуса и отмены, позволяет выбирать получателей для событий и настраивать текст шаблонов.

Для первого запуска обычно достаточно одного события «Новый заказ» и одного тестового получателя. После проверки можно расширять сценарий. Не включайте одновременно модуль и собственный обработчик для одного уведомления: иначе оба могут отправить сообщение.

Как устроить свою интеграцию с Telegram

В D7 для реакции на сохранённый заказ есть OnSaleOrderSaved. Оно вызывается не только при создании: для нового заказа проверяйте параметр события IS_NEW. Объект заказа передаётся в ENTITY. Эти параметры описаны в документации событий сохранения заказа.

Практическая схема собственной интеграции может выглядеть так:

Схема своей интеграции
Заказ сохранён → проверка события → запись уведомления
             → фоновая отправка sendMessage → запись результата
  1. Подпишитесь на событие в коде своего проекта или локального модуля. Не меняйте ядро Битрикс.
  2. Проверьте тип события, сайт и получателя. Для «Нового заказа» отсекайте обычное повторное сохранение.
  3. Создайте постоянную запись уведомления с уникальным ключом, например «сайт + заказ + тип события + получатель».
  4. Отправьте сообщение серверным запросом sendMessage через фоновый обработчик. Храните токен на сервере, не передавайте его в браузер покупателя.
  5. Сохраните результат и идентификатор сообщения. Отдельно обработайте явный отказ Telegram и ситуацию, когда ответ не получен.

Для повторяющихся переходов статуса в ключ потребуется включить конкретный переход или его идентификатор: «заказ + статус» может случайно подавить законное повторное событие. Сам по себе IS_NEW тоже не заменяет защиту от повторного выполнения. Подробности — в руководстве о дублирующихся сообщениях.

Не связывайте успех оформления заказа с доступностью Telegram. Долгое ожидание HTTP-ответа в обработчике события задерживает запрос магазина. В своей реализации заранее продумайте надёжное сохранение работы, запуск фонового процесса и обнаружение неотправленных уведомлений.

Это схема для разработки. Если задача укладывается в стандартные события, настройка готового модуля позволит начать без написания такого обработчика.

Как настроить модуль «Оповещения в Telegram»

1. Подготовьте магазин, бота и тестовый чат

Для событий заказов нужен стандартный модуль Битрикс sale. Если сайт собирает заявки в инфоблок, это другой сценарий: в aby.telegram для него предусмотрены события элементов инфоблока. Не выбирайте событие нового заказа для формы, которая заказ вообще не создаёт.

Создайте бота через BotFather или используйте существующего бота магазина. Для личных уведомлений откройте чат с ним и нажмите «Старт». Для уведомлений в группе добавьте туда бота и проверьте, что ему разрешено отправлять сообщения.

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

2. Установите модуль и откройте настройки

Установите aby.telegram из Маркетплейса штатным способом через административную панель сайта. Актуальные условия покупки, совместимость и доступность пробного периода смотрите в карточке решения. Перед установкой проверьте требования к окружению именно для вашего сайта.

После установки перейдите в «Настройки → Настройки модулей» и выберите «Оповещения в Telegram». Введите токен бота и ID получателя. Подсказки на странице настроек содержат инструкции по полям и примеры.

3. Настройте событие и шаблон

Начните с события «Новый заказ»: задайте получателя и подготовьте короткий текст. В многосайтовой установке проверьте, к какому сайту относится шаблон. Иначе уведомление может не сработать для нужного магазина или попасть не тем сотрудникам.

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

4. Выполните тестовую отправку

В модуле предусмотрена тестовая отправка. Используйте её сначала с простым текстом и одним получателем. Она помогает проверить бота, адресата и соединение. Затем обязательно создайте тестовый заказ: успешная отправка вручную ещё не проверяет событие магазина, выбор сайта и данные шаблона.

Что написать в уведомлении о заказе

Сообщение должно помогать сотруднику понять, что произошло и что делать дальше. Для начала достаточно нескольких строк:

Пример готового сообщения с вымышленными данными
Новый заказ №1042
Магазин: Основной сайт
Сумма: 5 900 ₽
Товары: 2 позиции
Доставка: Самовывоз
Оплата: Ожидается

Проверьте заказ и подтвердите наличие товаров.

Это образец результата, а не готовый Twig-шаблон. Замените значения переменными из подсказки модуля к событию «Новый заказ». Не переносите имена переменных из другого модуля или примера для Битрикс24.

Если добавляете ссылку на заказ, она должна вести на правильный сайт и открываться сотруднику после авторизации. Для общего чата обычно достаточно номера и основных параметров; подробности можно посмотреть в административной панели, не копируя туда весь адрес, телефон и комментарий покупателя.

Сначала проверьте обычный текст, затем добавляйте оформление. Названия товаров и комментарии могут содержать символы HTML или Markdown: при использовании разметки их нужно экранировать для выбранного формата. Примеры есть в статье об ошибке can't parse entities.

Проверьте не только тестовую кнопку

Используйте тестовый контур или согласованные тестовые заказы, чтобы не запускать ненужную оплату и обработку у сотрудников. Для выбранных событий проверьте такие случаи:

  1. Новый заказ с витрины. Пришло одно сообщение с правильным номером, суммой и получателем.
  2. Повторное сохранение. Изменение комментария менеджером не создаёт ещё одно сообщение о новом заказе.
  3. Подтверждённая оплата. Уведомление соответствует состоянию заказа после обновления платёжной системой.
  4. Смена статуса и отмена. Приходят настроенные сообщения, а текст не путает разные действия.
  5. Другой сайт или получатель. Шаблон и маршрут уведомления соответствуют настройкам.
  6. Другой способ создания заказа. Если магазин получает заказы через обмен, API или свою форму, отдельно проверьте этот путь.

Для работы модуля сайт должен вызывать стандартные события, перечисленные в его описании. Наличие записи в таблице заказов само по себе этого не доказывает: нестандартный код может обходить обычный процесс сохранения.

Если уведомление не приходит

Сначала определите, проходит ли тестовая отправка из настроек. Это разделит проверку события магазина и проверку доставки сообщения:

Диагностика уведомлений из 1С-Битрикс в Telegram
Что происходитЧто проверить
Тест проходит, новый заказ молчитВыбранное событие, сайт шаблона, получателя и вызов стандартного события при оформлении.
Сообщение не доходит одному сотрудникуЕго chat_id, начало диалога с ботом, блокировку бота и выбранного получателя.
Бот не пишет в группу или темуУчастие бота, ограничения отправки, правильный чат и топик.
Простой текст проходит, шаблон — нетДоступность переменных для события, длину текста и разметку подставленных значений.
Таймаут или ошибка соединенияДоступ сервера магазина к Telegram, DNS, TLS и выбранный способ подключения.
Сообщения приходят дваждыСовпадающие шаблоны и получателей, второй модуль или собственный обработчик, повтор события или запроса.

При необходимости включите логирование в настройках модуля и воспроизведите один тестовый случай. Для разбора достаточно времени, события, номера тестового заказа и ошибки. Перед передачей журнала в поддержку удалите токены, ключи и данные покупателей.

Для сетевых ошибок используйте пошаговую диагностику таймаута, для неверного адресата — проверку chat_id и доступа. Если Telegram вернул 429, не запускайте серию повторных тестов без паузы.

Как подключить BotGate в модуле

Если сервер магазина не может стабильно обращаться к Telegram напрямую, можно использовать встроенную интеграцию с BotGate. Модуль и сервис созданы одним разработчиком; поддержка подключения уже предусмотрена в модуле. Писать отдельный HTTP-клиент или настраивать собственный прокси для этого не требуется.

  1. Создайте аккаунт в BotGate и получите API-ключ сервиса.
  2. Откройте настройки интеграции с BotGate в модуле «Оповещения в Telegram» и укажите этот ключ. Для уже настроенного модуля это основной шаг подключения.
  3. Сохраните настройки и выполните тестовую отправку в свой чат.
  4. Создайте тестовый заказ и убедитесь, что сработал нужный шаблон.

API-ключ BotGate и токен Telegram-бота — разные значения: ключ сервиса нужно вводить в предназначенное для него поле, а не вместо токена бота. Получатели, события и шаблоны продолжают настраиваться в модуле.

При таком подключении запросы идут через BotGate к Telegram. Это помогает решить задачу исходящего доступа с сервера магазина; правильный chat_id, права бота и срабатывание события Битрикс всё равно проверяются отдельно. Успешная тестовая отправка вместе с проверкой реального события подтверждает настройку всей цепочки.

Источники