Conector de BigCommerce
Conector de BigCommerce
Conecta tu tienda de BigCommerce con Brevo a través de Tajo para una sincronización completa de los datos de ecommerce. Sincroniza clientes, pedidos, productos y eventos del carrito para impulsar campañas de marketing segmentadas, recuperación de carritos abandonados y automatización post-compra.
Resumen
| Propiedad | Valor |
|---|---|
| Plataforma | BigCommerce |
| Categoría | Ecommerce |
| Complejidad de configuración | Media |
| Integración oficial | No |
| Datos sincronizados | Clientes, Pedidos, Productos, Carritos |
| 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 - Eventos del ciclo de vida del pedido para flujos de marketing post-compra
- Sincronización del catálogo de productos - Sincroniza productos para recomendaciones por email y contenido dinámico
- Carritos abandonados - Rastrea y recupera carritos abandonados con emails automatizados
- Soporte multi-storefront - Conecta varios storefronts de BigCommerce
- Actualizaciones vía webhook - Actualizaciones de datos en tiempo real a través de los webhooks de BigCommerce
- Campos personalizados - Asocia campos personalizados de BigCommerce a atributos de contacto de Brevo
- Seguimiento de inventario - Sincroniza niveles de stock para notificaciones de “de nuevo disponible”
Requisitos previos
Antes de empezar, asegúrate de tener:
- Una tienda de BigCommerce con acceso de propietario o administrador
- Una cuenta de API de BigCommerce con los scopes OAuth adecuados
- Tu Store Hash (lo encuentras en la URL de tu tienda o en las credenciales de API)
- Una cuenta de Brevo con acceso a la API
- Una cuenta de Tajo con credenciales de API
Autenticación
Credenciales de la cuenta de API
BigCommerce utiliza cuentas de API basadas en OAuth. Crea una en el panel de control de BigCommerce en Settings > API > API Accounts.
Recibirás:
- Client ID - Identificador de tu app
- Client Secret - Secreto de tu app (guárdalo de forma segura)
- Access Token - Se usa para la autenticación de la API
- Store Hash - Identificador único de tu tienda
curl https://api.bigcommerce.com/stores/{store_hash}/v3/catalog/products \ -H "X-Auth-Token: YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json"Scopes OAuth requeridos
| Scope | Acceso | Propósito |
|---|---|---|
store_v2_customers | Lectura | Sincronización de datos de clientes |
store_v2_orders | Lectura | Seguimiento de eventos de pedido |
store_v2_products | Lectura | Sincronización del catálogo de productos |
store_cart | Lectura | Seguimiento de carritos abandonados |
store_v2_information | Lectura | Configuración de la tienda |
store_v2_content | Lectura | Contenido del storefront |
Configuración
Configuración básica
connectors: bigcommerce: enabled: true store_hash: "your-store-hash" access_token: "your-access-token" client_id: "your-client-id"
# Data sync options sync: customers: true orders: true products: true carts: true inventory: false
# Brevo list assignment lists: all_customers: 40 buyers: 41 abandoned_cart: 42Asignación de campos de cliente
Asocia los campos de cliente de BigCommerce con los atributos de Brevo:
customer_mapping: email: email first_name: FIRSTNAME last_name: LASTNAME phone: SMS company: COMPANY
# Address fields addresses[0].city: CITY addresses[0].state: STATE addresses[0].country: COUNTRY addresses[0].zip: ZIP
# E-commerce metrics orders_count: ORDER_COUNT total_spent: TOTAL_SPENT date_created: SIGNUP_DATE
# Customer group customer_group_id: CUSTOMER_GROUPConfiguración de webhooks
webhooks: - scope: "store/customer/created" destination: "customer_created" - scope: "store/customer/updated" destination: "customer_updated" - scope: "store/order/created" destination: "order_placed" - scope: "store/order/updated" destination: "order_updated" - scope: "store/order/statusUpdated" destination: "order_status_changed" - scope: "store/cart/created" destination: "cart_created" - scope: "store/cart/updated" destination: "cart_updated" - scope: "store/cart/abandoned" destination: "cart_abandoned" - scope: "store/inventory/updated" destination: "inventory_changed"Endpoints de la API
| Método | Endpoint | Descripción |
|---|---|---|
GET | /v3/customers | Listar clientes |
POST | /v3/customers | Crear clientes |
PUT | /v3/customers | Actualizar clientes |
GET | /v2/orders | Listar pedidos |
GET | /v2/orders/{id} | Obtener detalles de un pedido |
GET | /v3/catalog/products | Listar productos |
GET | /v3/catalog/products/{id} | Obtener detalles de un producto |
GET | /v3/catalog/products/{id}/variants | Listar variantes de un producto |
GET | /v3/carts | Listar carritos |
GET | /v3/abandoned-carts | Listar carritos abandonados |
POST | /v3/hooks | Crear un webhook |
GET | /v3/catalog/categories | Listar categorías |
Ejemplos de código
Inicializar el conector de BigCommerce
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect BigCommerce storeawait tajo.connectors.connect('bigcommerce', { storeHash: process.env.BC_STORE_HASH, accessToken: process.env.BC_ACCESS_TOKEN, clientId: process.env.BC_CLIENT_ID});Obtener y sincronizar clientes
// Fetch customers from BigCommerceconst response = await fetch( `https://api.bigcommerce.com/stores/${STORE_HASH}/v3/customers?limit=250`, { headers: { 'X-Auth-Token': ACCESS_TOKEN, 'Content-Type': 'application/json' } });
const { data, meta } = await response.json();// data: [{ id, email, first_name, last_name, phone, ... }]// meta.pagination: { total, count, per_page, current_page, total_pages }Gestionar eventos de webhook
// BigCommerce webhook handlerapp.post('/webhooks/bigcommerce', async (req, res) => { const { scope, store_id, data } = req.body;
// Verify the webhook is from your store if (store_id !== process.env.BC_STORE_HASH) { return res.status(401).send('Unauthorized'); }
// Forward to Tajo await tajo.connectors.handleWebhook('bigcommerce', { topic: scope, payload: data });
res.status(200).send('OK');});Sincronizar el catálogo de productos
// Full product catalog syncawait tajo.connectors.sync('bigcommerce', { type: 'full', resources: ['products'], includeVariants: true, includeImages: true});
// Check sync statusconst status = await tajo.connectors.status('bigcommerce');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// customersCount: 8200,// ordersCount: 4500,// productsCount: 620// }Límites de velocidad
| Plan | Límite | Detalles |
|---|---|---|
| Standard | 150 peticiones/30 s | Por tienda |
| Plus | 300 peticiones/30 s | Por tienda |
| Pro | 450 peticiones/30 s | Por tienda |
| Enterprise | Sin límite | Límites personalizados |
Límites adicionales:
| Recurso | Límite |
|---|---|
| Webhooks | 100 por tienda |
| Por página | 250 registros máx. |
| Peticiones concurrentes | Depende del plan |
Cabeceras de rate limit
Monitoriza las cabeceras X-Rate-Limit-Requests-Left y X-Rate-Limit-Time-Reset-Ms para gestionar tu uso de la API dentro de los límites.
Resolución de problemas
| Problema | Causa | Solución |
|---|---|---|
401 Unauthorized | Access token no válido | Regenera las credenciales de API en el panel de administración de BigCommerce |
403 Forbidden | Falta un scope OAuth | Revisa los scopes de la cuenta de API y añade los permisos necesarios |
| Los webhooks no se disparan | Se alcanzó el límite de webhooks | Comprueba el número de webhooks (máx. 100) y elimina los que no se usen |
| Faltan eventos de carrito | Scripts del storefront no cargados | Verifica el script de seguimiento en el storefront de BigCommerce |
| Productos desincronizados | Caché del catálogo | Lanza una sincronización manual o espera a las actualizaciones por webhook |
429 Too Many Requests | Se superó el rate limit | Implementa una cola de peticiones monitorizando las cabeceras de rate limit |
| Faltan grupos de clientes | V2 frente a V3 de la API | Los grupos de clientes usan la API V2; comprueba la versión del endpoint |
Buenas prácticas
- Usa la API V3 siempre que sea posible - La API V3 ofrece mejor paginación, filtrado y respuestas en JSON
- Monitoriza las cabeceras de rate limit - Vigila
X-Rate-Limit-Requests-Leftpara no alcanzar los límites - Registra webhooks para sincronización en tiempo real - Usa webhooks en lugar de polling para actualizaciones de clientes y pedidos
- Agrupa las actualizaciones de clientes - Usa los endpoints V3 bulk de clientes para grandes sincronizaciones de datos
- Incluye variantes en la sincronización de productos - Sincroniza las variantes de producto para un seguimiento preciso del inventario
- Configura webhooks de carritos abandonados - Fundamentales para la automatización de emails de recuperación de carrito
- Usa paginación - Pagina siempre los endpoints de listado; máx. 250 registros por página
Seguridad
- Autenticación con token OAuth - Acceso a la API seguro basado en tokens
- Permisos por scope - Las cuentas de API se restringen a scopes de datos concretos
- Solo HTTPS - Toda la comunicación con la API se cifra vía TLS
- Verificación de webhooks - Verifica el origen del webhook usando el store hash
- Cumple con PCI DSS - BigCommerce gestiona los datos de pago de forma segura
- SOC 2 Tipo II - La plataforma BigCommerce está certificada SOC 2