Conector de WooCommerce

Conector de WooCommerce

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

PropiedadValor
PlataformaWooCommerce (WordPress)
CategoríaEcommerce
Complejidad de configuraciónMedia
Integración oficialNo
Datos sincronizadosClientes, Pedidos, Productos, Cupones
Skills disponibles10

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)

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

Autenticación por query string (HTTPS)

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

Niveles de permisos

PermisoAcceso
ReadSolo lectura de recursos
WriteCrear y editar recursos
Read/WriteAcceso CRUD completo

Configuración

Configuración básica

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:

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:

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étodoEndpointDescripción
GET/wc/v3/customersListar clientes
POST/wc/v3/customersCrear un cliente
GET/wc/v3/customers/{id}Obtener un cliente
PUT/wc/v3/customers/{id}Actualizar un cliente
GET/wc/v3/ordersListar pedidos
POST/wc/v3/ordersCrear un pedido
GET/wc/v3/orders/{id}Obtener un pedido
GET/wc/v3/productsListar productos
GET/wc/v3/products/{id}Obtener un producto
GET/wc/v3/products/{id}/variationsListar variaciones de producto
GET/wc/v3/couponsListar cupones
GET/wc/v3/reports/salesObtener informes de ventas
GET/wc/v3/reports/top_sellersObtener los más vendidos
POST/wc/v3/webhooksCrear un webhook

Ejemplos de código

Inicializar el conector de WooCommerce

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

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

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

// 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:

FactorLímite habitualDetalles
Hosting compartido50-100 peticiones/minVaría según el host
Hosting WP gestionado200-500 peticiones/minWP Engine, Kinsta, etc.
Self-hostedSin límite rígidoLimitado por los recursos del servidor
Por página100 registros máx.Por defecto 10
Operaciones en lote100 ítems/loteCrear, 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

ProblemaCausaSolución
401 UnauthorizedClaves API no válidasRegenera el Consumer Key/Secret en los ajustes de WooCommerce
403 ForbiddenPermisos insuficientesConfigura la clave API con acceso Read/Write
Errores de certificado SSLSSL no válido en el sitioAsegúrate de tener un certificado SSL válido; usa verify_ssl: false solo para pruebas
Los webhooks no se disparanWordPress cron desactivadoHabilita WP-Cron o configura un cron a nivel de servidor
Respuestas lentas de la APIBase de datos grandeOptimiza la base de datos de WordPress, usa el parámetro _fields
Faltan campos personalizadosMeta data no expuestoUsa el campo meta_data para acceder al meta personalizado
Problemas de paginaciónTamaño de página por defectoDefine 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

Subscribe to updates

developer-docs

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

Asistente AI

¡Hola! Pregúntame lo que quieras sobre la documentación.

Empieza gratis con Brevo