---
title: "Conector WooCommerce"
description: "Guia completo de integração do WooCommerce para sincronizar clientes, pedidos, produtos e eventos de carrinho com o Brevo através do Tajo."
url: https://tajo.io/pt/docs/connectors/ecommerce/woocommerce/
markdown: https://tajo.io/pt/docs/connectors/ecommerce/woocommerce.md
lang: pt-BR
robots: noindex
---

Solicite acesso antecipado

Indique o seu nome e endereço de e-mail profissional. Enviaremos um link para confirmar o seu pedido de acesso ao Tajo.

# Conector WooCommerce

Status do conector: Em andamento Em construção. Ainda não verificado.

| Campo de origem | Campo de destino | Valor de exemplo |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Conecte sua loja WooCommerce ao Brevo através do Tajo para sincronização completa de dados de e-commerce. Aproveite a WooCommerce REST API para sincronizar clientes, pedidos, produtos e dados de cupons em campanhas de marketing segmentadas e workflows automatizados.

## Visão geral

| Propriedade | Valor |
| --- | --- |
| **Plataforma** | WooCommerce (WordPress) |
| **Categoria** | E-commerce |
| **Complexidade de configuração** | Média |
| **Integração oficial** | Não |
| **Dados sincronizados** | Clientes, Pedidos, Produtos, Cupons |
| **Skills disponíveis** | 10 |

## Recursos

- **Sincronização de clientes** - Sincronização em tempo real de dados de clientes para contatos do Brevo
- **Rastreamento de pedidos** - Rastreamento completo de eventos do ciclo de vida dos pedidos para fluxos pós-compra
- **Sincronização de catálogo de produtos** - Sincronize produtos e variações para recomendações por e-mail
- **Gestão de cupons** - Sincronize códigos de cupom para campanhas promocionais
- **Suporte a webhook** - Atualizações em tempo real via webhooks do WooCommerce
- **Carrinho abandonado** - Rastreie e recupere carrinhos abandonados
- **Suporte multi-site** - Conecte instalações WooCommerce em WordPress multisite
- **Campos meta personalizados** - Mapeie metadados personalizados do WooCommerce para atributos do Brevo

## Pré-requisitos

Antes de começar, certifique-se de ter:

1. Um site WordPress com o plugin WooCommerce instalado e ativado
2. WooCommerce REST API habilitada (Settings > Advanced > REST API)
3. Consumer Key e Consumer Secret da API gerados
4. Seu site deve usar HTTPS para autenticação da API
5. Uma conta Brevo com acesso à API
6. Uma conta Tajo com credenciais de API

## Autenticação

### Chaves REST API

O WooCommerce usa pares de Consumer Key e Consumer Secret para autenticação. Gere-os em WooCommerce > Settings > Advanced > REST API.

#### OAuth 1.0a (sites com HTTPS)

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

#### Autenticação por query string (HTTPS)

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

### Níveis de permissão

| Permissão | Acesso |
| --- | --- |
| **Read** | Somente visualizar recursos |
| **Write** | Criar e editar recursos |
| **Read/Write** | Acesso CRUD completo |

## Configuração

### Configuração básica

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

    # Data sync options
    sync:
      customers: true
      orders: true
      products: true
      coupons: true

    # Brevo list assignment
    lists:
      all_customers: 50
      buyers: 51
      abandoned_cart: 52
```

### Mapeamento de campos de clientes

Mapeie campos de clientes do WooCommerce para atributos do 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

  # E-commerce metrics (computed)
  orders_count: ORDER_COUNT
  total_spent: TOTAL_SPENT
  date_created: SIGNUP_DATE

  # Meta fields
  meta_data.loyalty_points: LOYALTY_POINTS
  meta_data.preferred_category: PREF_CATEGORY
```

### Configuração de webhook

Registre webhooks em 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"
```

## Endpoints da API

| Método | Endpoint | Descrição |
| --- | --- | --- |
| `GET` | `/wc/v3/customers` | Listar clientes |
| `POST` | `/wc/v3/customers` | Criar um cliente |
| `GET` | `/wc/v3/customers/{id}` | Obter um cliente |
| `PUT` | `/wc/v3/customers/{id}` | Atualizar um cliente |
| `GET` | `/wc/v3/orders` | Listar pedidos |
| `POST` | `/wc/v3/orders` | Criar um pedido |
| `GET` | `/wc/v3/orders/{id}` | Obter um pedido |
| `GET` | `/wc/v3/products` | Listar produtos |
| `GET` | `/wc/v3/products/{id}` | Obter um produto |
| `GET` | `/wc/v3/products/{id}/variations` | Listar variações de produto |
| `GET` | `/wc/v3/coupons` | Listar cupons |
| `GET` | `/wc/v3/reports/sales` | Obter relatórios de vendas |
| `GET` | `/wc/v3/reports/top_sellers` | Obter mais vendidos |
| `POST` | `/wc/v3/webhooks` | Criar um webhook |

## Exemplos de código

### Inicializar o conector WooCommerce

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Connect WooCommerce store
await tajo.connectors.connect('woocommerce', {
  storeUrl: 'https://yourstore.com',
  consumerKey: process.env.WC_CONSUMER_KEY,
  consumerSecret: process.env.WC_CONSUMER_SECRET
});
```

### Buscar e sincronizar clientes

```javascript
// Fetch customers using 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'
});

// List customers with pagination
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, ... }]

// Pagination info from headers
const totalPages = response.headers['x-wp-totalpages'];
const totalItems = response.headers['x-wp-total'];
```

### Tratar eventos de webhook

```javascript
// WooCommerce webhook handler
app.post('/webhooks/woocommerce', async (req, res) => {
  const topic = req.headers['x-wc-webhook-topic'];
  const signature = req.headers['x-wc-webhook-signature'];

  // Verify 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');
  }

  // Forward to Tajo
  await tajo.connectors.handleWebhook('woocommerce', {
    topic,
    payload: req.body
  });

  res.status(200).send('OK');
});
```

### Operações em lote

```javascript
// Batch create, update, and delete products
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]
});
```

## Limites de taxa

O WooCommerce em si não aplica limites de taxa na API, mas o servidor WordPress subjacente e o provedor de hospedagem podem impor limites:

| Fator | Limite típico | Detalhes |
| --- | --- | --- |
| **Hospedagem compartilhada** | 50-100 req/min | Varia por provedor |
| **Hospedagem WP gerenciada** | 200-500 req/min | WP Engine, Kinsta, etc. |
| **Self-hosted** | Sem limite rígido | Limitado pelos recursos do servidor |
| **Por página** | 100 registros no máximo | Padrão é 10 |
| **Operações em lote** | 100 itens/lote | Criar, atualizar ou excluir |

Desempenho do servidor

Lojas grandes de WooCommerce podem ter respostas de API lentas. Use paginação, limite os campos com o parâmetro `_fields` e agende sincronizações em massa fora dos horários de pico.

## Solução de problemas

| Problema | Causa | Solução |
| --- | --- | --- |
| `401 Unauthorized` | Chaves de API inválidas | Regenere Consumer Key/Secret nas configurações do WooCommerce |
| `403 Forbidden` | Permissões insuficientes | Defina a chave de API com acesso Read/Write |
| Erros de certificado SSL | SSL inválido no site | Garanta um certificado SSL válido; defina `verify_ssl: false` apenas para testes |
| Webhooks não disparam | WordPress cron desabilitado | Habilite o WP-Cron ou configure cron no nível do servidor |
| Respostas lentas da API | Banco de dados grande | Otimize o banco de dados do WordPress, use o parâmetro `_fields` |
| Campos personalizados ausentes | Metadados não expostos | Use o campo `meta_data` para acessar metadados personalizados |
| Problemas de paginação | Tamanho de página padrão | Defina explicitamente o parâmetro `per_page` (máx. 100) |

## Melhores práticas

1. **Use webhooks para sincronização em tempo real** - Configure webhooks do WooCommerce em vez de fazer polling na API
2. **Verifique assinaturas de webhook** - Sempre valide o cabeçalho `X-WC-Webhook-Signature`
3. **Pagine todas as requisições de listagem** - Use os parâmetros `page` e `per_page`; verifique o cabeçalho `X-WP-TotalPages`
4. **Use o parâmetro `_fields`** - Solicite apenas os campos necessários para reduzir o tamanho da resposta e melhorar o desempenho
5. **Operações em lote** - Use endpoints de lote para operações em massa de criar/atualizar/excluir (até 100 itens)
6. **Agende sincronizações grandes** - Execute sincronizações completas iniciais fora do horário de pico para evitar sobrecarga no servidor
7. **Habilite HTTPS** - A API do WooCommerce requer HTTPS para autenticação OAuth

## Segurança

- **OAuth 1.0a** - Autenticação segura via pares Consumer Key/Secret
- **Assinaturas HMAC de webhook** - Verificação de assinatura SHA-256 para webhooks recebidos
- **HTTPS obrigatório** - A API requer criptografia TLS para autenticação
- **Escopo de permissões** - As chaves de API podem ser definidas como Read, Write ou Read/Write
- **Segurança do WordPress** - Beneficia-se das atualizações de segurança do core do WordPress
- **Considerações PCI** - Dados de pagamento são tratados pelos gateways de pagamento do WooCommerce, não expostos via API

## Recursos relacionados

- [Conector Shopify](https://tajo.io/pt/docs/connectors/ecommerce/shopify)
- [Conector BigCommerce](https://tajo.io/pt/docs/connectors/ecommerce/bigcommerce)
- [Skill de sincronização de clientes](https://tajo.io/pt/docs/skills/data-sync/customer-sync)
- [Skill de carrinho abandonado](https://tajo.io/pt/docs/skills/email-marketing/abandoned-cart)
