---
title: "Conector de WooCommerce"
description: "Guía completa de integración con WooCommerce para sincronizar clientes, pedidos, productos y eventos de carrito con Brevo a través de Tajo."
url: https://tajo.io/es/docs/connectors/ecommerce/woocommerce/
markdown: https://tajo.io/es/docs/connectors/ecommerce/woocommerce.md
lang: es-ES
robots: noindex
---

Solicita acceso anticipado

Escribe tu nombre y dirección de correo de trabajo. Te enviaremos un enlace para confirmar tu solicitud de acceso a Tajo.

# Conector de WooCommerce

Estado del conector: En desarrollo En construcción. Aún no verificado.

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

Conecta tu tienda de WooCommerce con Brevo a través de Tajo para una sincronización completa de los datos de ecommerce. Aprovecha la REST API de WooCommerce para sincronizar clientes, pedidos, productos y cupones, y lanzar campañas de marketing segmentadas y flujos automatizados.

## Resumen

| Propiedad | Valor |
| --- | --- |
| **Plataforma** | WooCommerce (WordPress) |
| **Categoría** | Ecommerce |
| **Complejidad de configuración** | Media |
| **Integración oficial** | No |
| **Datos sincronizados** | Clientes, Pedidos, Productos, Cupones |
| **Skills disponibles** | 10 |

## Funcionalidades

- **Sincronización de clientes** - Sincronización en tiempo real de los datos de clientes con los contactos de Brevo
- **Seguimiento de pedidos** - Seguimiento completo de eventos del ciclo de vida del pedido para flujos post-compra
- **Sincronización del catálogo de productos** - Sincroniza productos y variaciones para recomendaciones por email
- **Gestión de cupones** - Sincroniza códigos de cupón para campañas promocionales
- **Soporte de webhooks** - Actualizaciones en tiempo real vía webhooks de WooCommerce
- **Carritos abandonados** - Rastrea y recupera carritos abandonados
- **Soporte multisitio** - Conecta instalaciones WooCommerce de WordPress multisite
- **Meta fields personalizados** - Asocia meta fields personalizados de WooCommerce a atributos de Brevo

## Requisitos previos

Antes de empezar, asegúrate de tener:

1. Un sitio WordPress con el plugin WooCommerce instalado y activado
2. La REST API de WooCommerce habilitada (Settings > Advanced > REST API)
3. Un Consumer Key y Consumer Secret de API generados
4. Que tu sitio use HTTPS para la autenticación de la API
5. Una cuenta de Brevo con acceso a la API
6. Una cuenta de Tajo con credenciales de API

## Autenticación

### Claves de REST API

WooCommerce usa pares de Consumer Key y Consumer Secret para autenticarse. Genéralos en WooCommerce > Settings > Advanced > REST API.

#### OAuth 1.0a (sitios HTTPS)

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

#### Autenticación por query string (HTTPS)

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

### Niveles de permisos

| Permiso | Acceso |
| --- | --- |
| **Read** | Solo lectura de recursos |
| **Write** | Crear y editar recursos |
| **Read/Write** | Acceso CRUD completo |

## Configuración

### Configuración 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
```

### Asignación de campos de cliente

Asocia los campos de cliente de WooCommerce con los atributos de 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
```

### Configuración de webhooks

Registra los webhooks en 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 de la API

| Método | Endpoint | Descripción |
| --- | --- | --- |
| `GET` | `/wc/v3/customers` | Listar clientes |
| `POST` | `/wc/v3/customers` | Crear un cliente |
| `GET` | `/wc/v3/customers/{id}` | Obtener un cliente |
| `PUT` | `/wc/v3/customers/{id}` | Actualizar un cliente |
| `GET` | `/wc/v3/orders` | Listar pedidos |
| `POST` | `/wc/v3/orders` | Crear un pedido |
| `GET` | `/wc/v3/orders/{id}` | Obtener un pedido |
| `GET` | `/wc/v3/products` | Listar productos |
| `GET` | `/wc/v3/products/{id}` | Obtener un producto |
| `GET` | `/wc/v3/products/{id}/variations` | Listar variaciones de producto |
| `GET` | `/wc/v3/coupons` | Listar cupones |
| `GET` | `/wc/v3/reports/sales` | Obtener informes de ventas |
| `GET` | `/wc/v3/reports/top_sellers` | Obtener los más vendidos |
| `POST` | `/wc/v3/webhooks` | Crear un webhook |

## Ejemplos de código

### Inicializar el conector de 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
});
```

### Obtener y 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'];
```

### Gestionar 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');
});
```

### Operaciones en 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]
});
```

## Límites de velocidad

WooCommerce en sí no aplica límites de velocidad, pero el servidor WordPress subyacente y el proveedor de hosting pueden imponer límites:

| Factor | Límite habitual | Detalles |
| --- | --- | --- |
| **Hosting compartido** | 50-100 peticiones/min | Varía según el host |
| **Hosting WP gestionado** | 200-500 peticiones/min | WP Engine, Kinsta, etc. |
| **Self-hosted** | Sin límite rígido | Limitado por los recursos del servidor |
| **Por página** | 100 registros máx. | Por defecto 10 |
| **Operaciones en lote** | 100 ítems/lote | Crear, actualizar o eliminar |

Rendimiento del servidor

Las tiendas grandes de WooCommerce pueden experimentar respuestas lentas de la API. Usa paginación, limita los campos con el parámetro `_fields` y programa las sincronizaciones masivas fuera de horas punta.

## Resolución de problemas

| Problema | Causa | Solución |
| --- | --- | --- |
| `401 Unauthorized` | Claves API no válidas | Regenera el Consumer Key/Secret en los ajustes de WooCommerce |
| `403 Forbidden` | Permisos insuficientes | Configura la clave API con acceso Read/Write |
| Errores de certificado SSL | SSL no válido en el sitio | Asegúrate de tener un certificado SSL válido; usa `verify_ssl: false` solo para pruebas |
| Los webhooks no se disparan | WordPress cron desactivado | Habilita WP-Cron o configura un cron a nivel de servidor |
| Respuestas lentas de la API | Base de datos grande | Optimiza la base de datos de WordPress, usa el parámetro `_fields` |
| Faltan campos personalizados | Meta data no expuesto | Usa el campo `meta_data` para acceder al meta personalizado |
| Problemas de paginación | Tamaño de página por defecto | Define explícitamente el parámetro `per_page` (máx. 100) |

## Buenas prácticas

1. **Usa webhooks para sincronización en tiempo real** - Configura webhooks de WooCommerce en lugar de hacer polling a la API
2. **Verifica las firmas de los webhooks** - Valida siempre la cabecera `X-WC-Webhook-Signature`
3. **Pagina todas las peticiones de listado** - Usa los parámetros `page` y `per_page`; revisa la cabecera `X-WP-TotalPages`
4. **Usa el parámetro `_fields`** - Solicita solo los campos necesarios para reducir el tamaño de la respuesta y mejorar el rendimiento
5. **Operaciones en lote** - Usa los endpoints de batch para crear/actualizar/eliminar en masa (hasta 100 ítems)
6. **Programa sincronizaciones grandes** - Ejecuta las sincronizaciones completas iniciales fuera de horas punta para no saturar el servidor
7. **Habilita HTTPS** - La API de WooCommerce requiere HTTPS para la autenticación OAuth

## Seguridad

- **OAuth 1.0a** - Autenticación segura mediante pares de Consumer Key/Secret
- **Firmas HMAC de webhook** - Verificación de firma SHA-256 para los webhooks entrantes
- **HTTPS obligatorio** - La API requiere cifrado TLS para la autenticación
- **Permisos por scope** - Las claves API pueden configurarse con acceso Read, Write o Read/Write
- **Seguridad de WordPress** - Se beneficia de las actualizaciones de seguridad del core de WordPress
- **Consideraciones PCI** - Los datos de pago los gestionan las pasarelas de pago de WooCommerce, no se exponen vía API

## Recursos relacionados

- [Conector de Shopify](https://tajo.io/es/docs/connectors/ecommerce/shopify)
- [Conector de BigCommerce](https://tajo.io/es/docs/connectors/ecommerce/bigcommerce)
- [Skill de sincronización de clientes](https://tajo.io/es/docs/skills/data-sync/customer-sync)
- [Skill de carrito abandonado](https://tajo.io/es/docs/skills/email-marketing/abandoned-cart)
