Статья A.S Groups

Webhooks WooCommerce: как надёжно передавать заказы в CRM и внешние сервисы

Надёжная интеграция WooCommerce Webhooks с CRM и внешними API

Навигация по статье

Услуги A.S Groups

Нужен сайт, магазин или автоматизация?

Помогаю бизнесу запускать и дорабатывать WordPress-проекты: от посадочной страницы до WooCommerce, CRM и Telegram-уведомлений.

Обсудить проект Telegram
WordPress под ключ Лендинги, корпоративные сайты и структура под заявки. WooCommerce Интернет-магазины, каталог, оплата, доставка и интеграции. Доработка сайта Правки, скорость, формы, баги и развитие текущего проекта. CRM / Telegram / AI Автоматизация заявок, уведомлений и ручных процессов.

Webhooks WooCommerce — один из самых удобных способов передавать события магазина во внешнюю CRM, ERP, склад, Telegram-бот, систему аналитики или собственный API. Магазин сообщает о событии сам, поэтому внешнему сервису не нужно постоянно опрашивать REST API и спрашивать: «появился ли новый заказ?».

Но простая схема «указали Delivery URL и забыли» хорошо работает только до первого таймаута, дубля, временного 500 или недоступной CRM. В production-интеграции нужно проектировать не только успешный запрос, но и повторную доставку, проверку подлинности, защиту от дублей, журналирование и восстановление после сбоя.

Разберём практическую архитектуру для WooCommerce, где webhook не теряет заказ из-за кратковременной ошибки внешнего сервиса и при этом не создаёт второй заказ при повторной доставке.

Как WooCommerce отправляет webhook

В WooCommerce webhook привязывается к событию: например, созданию или обновлению заказа, товара, купона или покупателя. Для заказов типичные topics — order.created, order.updated и order.deleted. Можно использовать и WooCommerce actions, если нужен более специфичный триггер.

При срабатывании WooCommerce формирует JSON payload и отправляет HTTP POST на настроенный Delivery URL. В запрос добавляются служебные заголовки, среди которых:

  • X-WC-Webhook-Topic — тип события;
  • X-WC-Webhook-Resource — ресурс, например order;
  • X-WC-Webhook-Event — событие, например updated;
  • X-WC-Webhook-Signature — HMAC-SHA256 подпись payload;
  • X-WC-Webhook-ID — ID webhook;
  • X-WC-Webhook-Delivery-ID — ID конкретной доставки.

Штатная доставка выполняется в фоне. WooCommerce также ведёт delivery logs, где можно увидеть URL, длительность запроса, request/response и HTTP-код. Это важный источник диагностики, а не просто технический журнал.

Почему ответ 200 ещё не означает надёжную интеграцию

Представим простую обработку: CRM принимает webhook, создаёт заказ и отвечает 200 OK. Всё работает, пока нет ошибок сети и повторных запросов.

Теперь внешний сервер успел создать заказ, но соединение оборвалось до того, как WooCommerce получил ответ. С точки зрения WooCommerce доставка не подтверждена. Повторная попытка может прийти с тем же бизнес-обработка вынесена в очередь/worker;

  • ☐ есть retry policy для временных ошибок;
  • ☐ есть Dead Letter Queue или аналогичное состояние;
  • ☐ delivery logs WooCommerce сопоставляются с логами интеграции;
  • ☐ после серии ошибок есть мониторинг disabled webhook;
  • ☐ периодически выполняется reconciliation WooCommerce ↔ CRM.
  • Когда нужна кастомная интеграция

    Готовый коннектор подходит, если CRM принимает стандартный заказ WooCommerce без сложного маппинга. Но при нескольких складах, нестандартных статусах, вариациях, B2B-ценах, split payments, внешнем fulfillment или двусторонней синхронизации обычно нужен отдельный интеграционный слой.

    A.S Groups разрабатывает и дорабатывает интеграции WordPress/WooCommerce с CRM, ERP, API и внутренними сервисами: от webhook endpoint до очередей, reconciliation и диагностики нестабильного обмена. Если нужно разобрать конкретную схему, можно описать задачу и текущие системы.

    Источники

    Следующий шаг

    Нужно решить похожую задачу?

    Связать тему с разработкой интеграций WooCommerce, API и автоматизацией обмена заказами. Не обещать доставку exactly-once; объяснить at-least-once и idempotency на стороне получателя.

    Обсудить задачу

    Источники

    Обсуждение

    Вопросы и комментарии

    Можно уточнить детали статьи или поделиться своим опытом. Первый комментарий проходит проверку.

    Оставить комментарий

    Email не публикуется. Ссылки и HTML в тексте удаляются.

    Мы используем приватную аналитику SlimStat, чтобы понимать, какие страницы полезны посетителям, и улучшать сайт. IP-адреса анонимизируются и хэшируются. Вы можете согласиться или отказаться от аналитики.
    Cookies и конфиденциальность

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