---
title: "Коннектор WooCommerce"
description: "Полное руководство по интеграции WooCommerce для синхронизации клиентов, заказов, товаров и событий корзины с Brevo через Tajo."
url: https://tajo.io/ru/docs/connectors/ecommerce/woocommerce/
markdown: https://tajo.io/ru/docs/connectors/ecommerce/woocommerce.md
lang: ru-RU
robots: noindex
---

Подайте заявку на ранний доступ

Укажите имя и рабочий адрес электронной почты. Мы отправим ссылку для подтверждения запроса на доступ к Tajo.

# Коннектор WooCommerce

Статус коннектора: В разработке Создаётся. Ещё не проверен.

| Поле источника | Поле назначения | Пример значения |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Подключите магазин 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-сайты)

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

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

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

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

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

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

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

```yaml
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:

```yaml
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:

```yaml
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

```javascript
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
});
```

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

```javascript
// Получение клиентов через 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'];
```

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

```javascript
// Обработчик вебхуков 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');
});
```

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

```javascript
// Пакетное создание, обновление и удаление товаров
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

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

- [Коннектор Shopify](https://tajo.io/ru/docs/connectors/ecommerce/shopify)
- [Коннектор BigCommerce](https://tajo.io/ru/docs/connectors/ecommerce/bigcommerce)
- [Скилл синхронизации клиентов](https://tajo.io/ru/docs/skills/data-sync/customer-sync)
- [Скилл брошенной корзины](https://tajo.io/ru/docs/skills/email-marketing/abandoned-cart)
