Коннектор WooCommerce

Коннектор WooCommerce

Подключите магазин WooCommerce к Brevo через Tajo для полной синхронизации данных электронной коммерции. Используйте WooCommerce REST API для синхронизации клиентов, заказов, товаров и данных о купонах для таргетированных маркетинговых кампаний и автоматизированных рабочих процессов.

Обзор

СвойствоЗначение
ПлатформаWooCommerce (WordPress)
КатегорияE-commerce
Сложность настройкиСредняя
Официальная интеграцияНет
Синхронизируемые данныеКлиенты, заказы, товары, купоны
Доступных скиллов10

Возможности

  • Синхронизация клиентов, синхронизация данных клиентов в реальном времени с контактами Brevo
  • Отслеживание заказов, полное отслеживание событий жизненного цикла заказов для постпокупочных потоков
  • Синхронизация каталога товаров, синхронизация товаров и их вариантов для email-рекомендаций
  • Управление купонами, синхронизация промокодов для рекламных кампаний
  • Поддержка вебхуков, обновления в реальном времени через вебхуки WooCommerce
  • Брошенные корзины, отслеживание и восстановление брошенных корзин
  • Поддержка мультисайтов, подключение мультисайтовых установок WooCommerce на WordPress
  • Пользовательские мета-поля, сопоставление пользовательских мета-данных WooCommerce с атрибутами Brevo

Предварительные требования

Прежде чем начать, убедитесь, что у вас есть:

  1. Сайт на WordPress с установленным и активированным плагином WooCommerce
  2. WooCommerce REST API включён (Settings > Advanced > REST API)
  3. Сгенерированный Consumer Key и Consumer Secret
  4. Сайт должен использовать HTTPS для аутентификации API
  5. Аккаунт Brevo с доступом к API
  6. Аккаунт Tajo с API-учётными данными

Аутентификация

REST API Keys

WooCommerce использует пары Consumer Key и Consumer Secret для аутентификации. Генерируйте их в WooCommerce > Settings > Advanced > REST API.

OAuth 1.0a (HTTPS-сайты)

Terminal window
curl https://yourstore.com/wp-json/wc/v3/orders \
-u "consumer_key:consumer_secret"

Аутентификация через строку запроса (HTTPS)

Terminal window
curl "https://yourstore.com/wp-json/wc/v3/orders?consumer_key=ck_xxx&consumer_secret=cs_xxx"

Уровни разрешений

РазрешениеДоступ
ReadТолько просмотр ресурсов
WriteСоздание и редактирование ресурсов
Read/WriteПолный CRUD-доступ

Конфигурация

Базовая настройка

connectors:
woocommerce:
enabled: true
store_url: "https://yourstore.com"
consumer_key: "ck_your_consumer_key"
consumer_secret: "cs_your_consumer_secret"
api_version: "wc/v3"
verify_ssl: true
# Параметры синхронизации данных
sync:
customers: true
orders: true
products: true
coupons: true
# Назначение листов Brevo
lists:
all_customers: 50
buyers: 51
abandoned_cart: 52

Сопоставление полей клиентов

Сопоставьте поля клиентов WooCommerce с атрибутами Brevo:

customer_mapping:
email: email
first_name: FIRSTNAME
last_name: LASTNAME
billing.phone: SMS
billing.company: COMPANY
billing.city: CITY
billing.state: STATE
billing.country: COUNTRY
billing.postcode: ZIP
# Метрики электронной коммерции (вычисляемые)
orders_count: ORDER_COUNT
total_spent: TOTAL_SPENT
date_created: SIGNUP_DATE
# Мета-поля
meta_data.loyalty_points: LOYALTY_POINTS
meta_data.preferred_category: PREF_CATEGORY

Конфигурация вебхуков

Зарегистрируйте вебхуки в WooCommerce > Settings > Advanced > Webhooks:

webhooks:
- topic: "customer.created"
event: "customer_created"
- topic: "customer.updated"
event: "customer_updated"
- topic: "order.created"
event: "order_placed"
- topic: "order.updated"
event: "order_updated"
- topic: "order.completed"
event: "order_fulfilled"
- topic: "order.refunded"
event: "order_refunded"
- topic: "coupon.created"
event: "coupon_created"
- topic: "product.created"
event: "product_added"
- topic: "product.updated"
event: "product_updated"

Эндпоинты API

МетодЭндпоинтОписание
GET/wc/v3/customersСписок клиентов
POST/wc/v3/customersСоздание клиента
GET/wc/v3/customers/{id}Получить клиента
PUT/wc/v3/customers/{id}Обновить клиента
GET/wc/v3/ordersСписок заказов
POST/wc/v3/ordersСоздание заказа
GET/wc/v3/orders/{id}Получить заказ
GET/wc/v3/productsСписок товаров
GET/wc/v3/products/{id}Получить товар
GET/wc/v3/products/{id}/variationsСписок вариантов товара
GET/wc/v3/couponsСписок купонов
GET/wc/v3/reports/salesОтчёты о продажах
GET/wc/v3/reports/top_sellersТоп продаж
POST/wc/v3/webhooksСоздание вебхука

Примеры кода

Инициализация коннектора WooCommerce

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Подключение магазина WooCommerce
await tajo.connectors.connect('woocommerce', {
storeUrl: 'https://yourstore.com',
consumerKey: process.env.WC_CONSUMER_KEY,
consumerSecret: process.env.WC_CONSUMER_SECRET
});

Получение и синхронизация клиентов

// Получение клиентов через WooCommerce REST API
const WooCommerce = require('@woocommerce/woocommerce-rest-api').default;
const api = new WooCommerce({
url: 'https://yourstore.com',
consumerKey: process.env.WC_CONSUMER_KEY,
consumerSecret: process.env.WC_CONSUMER_SECRET,
version: 'wc/v3'
});
// Список клиентов с пагинацией
const response = await api.get('customers', {
per_page: 100,
page: 1,
orderby: 'registered_date',
order: 'desc'
});
const customers = response.data;
// [{ id, email, first_name, last_name, billing, shipping, ... }]
// Информация о пагинации из заголовков
const totalPages = response.headers['x-wp-totalpages'];
const totalItems = response.headers['x-wp-total'];

Обработка событий вебхука

// Обработчик вебхуков WooCommerce
app.post('/webhooks/woocommerce', async (req, res) => {
const topic = req.headers['x-wc-webhook-topic'];
const signature = req.headers['x-wc-webhook-signature'];
// Проверка подписи вебхука
const expectedSignature = crypto
.createHmac('sha256', WEBHOOK_SECRET)
.update(JSON.stringify(req.body))
.digest('base64');
if (signature !== expectedSignature) {
return res.status(401).send('Invalid signature');
}
// Пересылка в Tajo
await tajo.connectors.handleWebhook('woocommerce', {
topic,
payload: req.body
});
res.status(200).send('OK');
});

Пакетные операции

// Пакетное создание, обновление и удаление товаров
const batchResponse = await api.post('products/batch', {
create: [
{ name: 'New Product', type: 'simple', regular_price: '19.99' }
],
update: [
{ id: 123, regular_price: '24.99' }
],
delete: [456]
});

Ограничения скорости

WooCommerce сам по себе не устанавливает ограничения API, но базовый WordPress-сервер и хостинг-провайдер могут устанавливать лимиты:

ФакторТипичный лимитДетали
Общий хостинг50–100 запросов/минЗависит от хостинга
Управляемый WP-хостинг200–500 запросов/минWP Engine, Kinsta и др.
Self-hostedБез жёсткого лимитаОграничен ресурсами сервера
На страницуМаксимум 100 записейПо умолчанию 10
Пакетные операции100 элементов/пакетСоздание, обновление или удаление

Производительность сервера

Крупные магазины WooCommerce могут давать медленные ответы API. Используйте пагинацию, ограничивайте поля с помощью параметра _fields и планируйте массовые синхронизации в нерабочее время.

Устранение неполадок

ПроблемаПричинаРешение
401 UnauthorizedНедействительные API-ключиПерегенерируйте Consumer Key/Secret в настройках WooCommerce
403 ForbiddenНедостаточно правУстановите API-ключу уровень доступа Read/Write
Ошибки SSL-сертификатаНедействительный SSL на сайтеУстановите действительный SSL; verify_ssl: false только для тестирования
Вебхуки не срабатываютWP cron отключёнВключите WP-Cron или настройте серверный cron
Медленные ответы APIБольшая база данныхОптимизируйте базу данных WordPress, используйте параметр _fields
Отсутствующие пользовательские поляМета-данные не раскрытыИспользуйте поле meta_data для доступа к пользовательским мета-данным
Проблемы с пагинациейСтандартный размер страницыЯвно задайте параметр per_page (макс. 100)

Лучшие практики

  1. Используйте вебхуки для синхронизации в реальном времени, настраивайте вебхуки WooCommerce вместо опроса API
  2. Верифицируйте подписи вебхуков, всегда валидируйте заголовок X-WC-Webhook-Signature
  3. Пагинируйте все list-запросы, используйте параметры page и per_page; проверяйте заголовок X-WP-TotalPages
  4. Используйте параметр _fields, запрашивайте только нужные поля для уменьшения размера ответа
  5. Пакетные операции, используйте пакетные эндпоинты для массового создания/обновления/удаления (до 100 элементов)
  6. Планируйте крупные синхронизации, запускайте полные начальные синхронизации в нерабочее время
  7. Включайте HTTPS, WooCommerce API требует TLS для OAuth-аутентификации

Безопасность

  • OAuth 1.0a, безопасная аутентификация через пары Consumer Key/Secret
  • HMAC-подписи вебхуков, SHA-256 верификация подписи для входящих вебхуков
  • Требуется HTTPS, API требует TLS-шифрования для аутентификации
  • Ограничение прав, API-ключи можно настроить на Read, Write или Read/Write
  • Безопасность WordPress, наследует обновления безопасности ядра WordPress
  • Аспекты PCI, платёжные данные обрабатываются платёжными шлюзами WooCommerce, не раскрываются через API

Связанные ресурсы

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

AI-ассистент

Привет! Спрашивайте меня о документации.

Начните бесплатно с Brevo