Conector de Shopify
Conector de Shopify
Conecta tu tienda de Shopify con Brevo para una sincronización completa de los datos de clientes, la recuperación de carritos abandonados y campañas de marketing automatizadas.
Resumen
| Propiedad | Valor |
|---|---|
| Plataforma | Shopify |
| Categoría | Ecommerce |
| Complejidad de configuración | Fácil |
| Integración oficial | Sí |
| Datos sincronizados | Clientes, Pedidos, Productos, Carritos, Eventos |
| Skills disponibles | 12 |
Funcionalidades
- Sincronización de clientes en tiempo real - Datos de cliente sincronizados al instante con los contactos de Brevo
- Seguimiento de pedidos - Eventos de pedido para flujos post-compra
- Sincronización del catálogo de productos - Productos disponibles para recomendaciones
- Carritos abandonados - Rastrea y recupera carritos abandonados
- Comportamiento de navegación - Seguimiento de vistas de página e interés por productos
- Soporte multi-tienda - Conecta varias tiendas de Shopify
Requisitos previos
Antes de empezar, asegúrate de tener:
- Una tienda de Shopify con acceso de administrador
- Una cuenta de Brevo con acceso a la API
- Una cuenta de Tajo
Instalación
Opción 1: Shopify App Store (recomendada)
- Visita la app de Tajo en la Shopify App Store
- Haz clic en “Add app”
- Concede los permisos solicitados
- Conecta tu cuenta de Brevo
Opción 2: Instalación manual
Paso 1: crea una app de Shopify
- Ve al admin de Shopify → Settings → Apps and sales channels
- Haz clic en “Develop apps” → “Create an app”
- Ponle el nombre “Tajo Integration”
Paso 2: configura los scopes de la API
Habilita estos scopes:
read_customerswrite_customersread_ordersread_productsread_checkoutswrite_script_tagsPaso 3: instala la app
# Using Tajo CLItajo connectors install shopify \ --shop-url your-store.myshopify.com \ --api-key $SHOPIFY_API_KEY \ --api-secret $SHOPIFY_API_SECRETPaso 4: configura los webhooks
Tajo registra automáticamente estos webhooks:
| Webhook | Propósito |
|---|---|
customers/create | Sincronización de nuevo cliente |
customers/update | Cambios en datos del cliente |
customers/delete | Eliminación de cliente |
orders/create | Evento de pedido realizado |
orders/updated | Cambios de estado del pedido |
checkouts/create | Carrito creado |
checkouts/update | Carrito actualizado |
Configuración
Configuración básica
connectors: shopify: enabled: true shop_url: "your-store.myshopify.com" api_version: "2024-01"
# Data sync options sync: customers: true orders: true products: true carts: true inventory: false # Optional
# List assignment lists: all_customers: 5 buyers: 6 abandoned_cart: 7Asignación de campos
Asocia los campos de Shopify con los atributos de contacto de Brevo:
Default Mappings
| Parameter | Type | Description |
|---|---|---|
email required | string | Email del cliente (identificador único) |
first_name optional | string | Se asocia al atributo FIRSTNAME |
last_name optional | string | Se asocia al atributo LASTNAME |
phone optional | string | Se asocia al atributo SMS para WhatsApp/SMS |
accepts_marketing optional | boolean | Controla el estado de suscripción |
orders_count optional | integer | Número total de pedidos |
total_spent optional | number | Valor del cliente a lo largo del tiempo |
tags optional | array | Etiquetas del cliente en Shopify |
Asignación de atributos personalizados
field_mapping: # Standard fields email: email first_name: FIRSTNAME last_name: LASTNAME phone: SMS
# E-commerce metrics orders_count: ORDER_COUNT total_spent: TOTAL_SPENT last_order_date: LAST_ORDER_DATE
# Custom fields customer_type: CUSTOMER_TYPE preferred_language: LANGUAGE loyalty_tier: VIP_TIER
# Computed fields average_order_value: AOV days_since_last_order: RECENCYSincronización de productos
Sincroniza productos para recomendaciones por email:
sync: products: enabled: true include_variants: true include_images: true categories_as_tags: true
# Filter products filter: status: active exclude_tags: ["hidden", "wholesale-only"]Seguimiento de inventario
Habilita la sincronización de niveles de stock:
sync: inventory: enabled: true low_stock_threshold: 10 out_of_stock_events: trueEventos
Eventos de cliente
| Evento | Disparador | Caso de uso |
|---|---|---|
customer_created | Registro de nuevo cliente | Serie de bienvenida |
customer_updated | Cambios en el perfil | Sincronización de datos |
customer_tags_added | Etiquetas asignadas | Actualización de segmentos |
Eventos de pedido
| Evento | Disparador | Caso de uso |
|---|---|---|
order_placed | Checkout completado | Confirmación de pedido |
order_fulfilled | Pedido enviado | Notificación de envío |
order_cancelled | Pedido cancelado | Email de cancelación |
order_refunded | Reembolso procesado | Confirmación de reembolso |
Eventos de carrito
| Evento | Disparador | Caso de uso |
|---|---|---|
cart_created | Artículos añadidos al carrito | Seguimiento de navegación |
cart_updated | Carrito modificado | Seguimiento del valor del carrito |
cart_abandoned | Sin checkout en 30 min | Emails de recuperación |
Skills habilitadas
El conector de Shopify habilita estas skills:
| Skill | Descripción |
|---|---|
| Sincronización de clientes | Sincronización de clientes en tiempo real |
| Eventos de pedido | Seguimiento del ciclo de vida del pedido |
| Carrito abandonado | Emails de recuperación de carrito |
| Serie de bienvenida | Onboarding de nuevos clientes |
| Post-compra | Seguimiento del pedido |
| Win-back | Reactivar clientes inactivos |
| Abandono de navegación | Seguimiento por interés en producto |
| Reposición | Recordatorios de recompra |
Ejemplos de código
Inicializar el conector
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Shopify storeawait tajo.connectors.connect('shopify', { shopUrl: 'your-store.myshopify.com', apiKey: process.env.SHOPIFY_API_KEY, apiSecret: process.env.SHOPIFY_API_SECRET});Ejecutar la sincronización inicial
// Full historical syncawait tajo.connectors.sync('shopify', { type: 'full', resources: ['customers', 'orders', 'products'], since: '2023-01-01'});
// Check sync statusconst status = await tajo.connectors.status('shopify');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// customersCount: 15420,// ordersCount: 8234,// productsCount: 342// }Rastrear eventos de carrito
Añade el script de Tajo a tu tema de Shopify:
<!-- Add to theme.liquid before </head> -->{% if customer %}<script> window.tajoConfig = { customerId: "{{ customer.id }}", customerEmail: "{{ customer.email }}", customerName: "{{ customer.first_name }}" };</script>{% endif %}<script src="https://cdn.tajo.io/shopify.js"></script>Handler personalizado de webhooks
// Handle Shopify webhooks manuallyapp.post('/webhooks/shopify', async (req, res) => { const hmac = req.get('X-Shopify-Hmac-SHA256');
// Verify webhook signature if (!verifyShopifyWebhook(req.body, hmac)) { return res.status(401).send('Unauthorized'); }
const topic = req.get('X-Shopify-Topic');
// Forward to Tajo await tajo.connectors.handleWebhook('shopify', { topic, payload: req.body });
res.status(200).send('OK');});Monitorización
Métricas del dashboard
Monitoriza tu conexión con Shopify desde el dashboard de Tajo:
- Estado de sincronización: salud de la conexión en tiempo real
- Clientes sincronizados: total de contactos desde Shopify
- Pedidos rastreados: eventos de pedido procesados
- Recuperación de carrito: rendimiento de carritos abandonados
- Tasa de errores: intentos de sincronización fallidos
Logs de webhooks
Consulta el estado de entrega de los webhooks:
tajo connectors logs shopify --type webhook --last 24hHistorial de sincronización
Revisa las operaciones de sincronización pasadas:
tajo connectors history shopify --limit 10Resolución de problemas
Problemas habituales
Límites de velocidad de la API
Shopify tiene límites de velocidad de 2 peticiones/segundo. Usa sincronizaciones por lotes para grandes importaciones históricas.
| Problema | Causa | Solución |
|---|---|---|
| Webhook no recibido | Permisos de la app | Reinstala la app con los scopes correctos |
| Cliente no sincronizado | Falta el email | Shopify requiere email en los clientes |
| Faltan productos | Estado del producto | Comprueba que el producto está en estado “active” |
| Carrito no rastreado | Script no cargado | Verifica el script en theme.liquid |
Modo depuración
Habilita el logging detallado:
connectors: shopify: debug: true log_level: verbose log_webhooks: trueProbar la conexión
tajo connectors test shopify# ✓ API connection successful# ✓ Webhooks registered# ✓ Products accessible# ✓ Customers readable# ✓ Orders readableBuenas prácticas
- Empieza con una tienda de pruebas - Usa primero una development store
- Ejecuta la sincronización inicial fuera de horas punta - Las sincronizaciones grandes pueden ser lentas
- Asigna atributos personalizados - No te quedes solo con las asignaciones por defecto
- Habilita el seguimiento del carrito - Fundamental para la recuperación de carritos abandonados
- Monitoriza la salud de los webhooks - Configura alertas para las entregas fallidas
- Usa importaciones por lotes - Para datos históricos de más de 10.000 registros
Seguridad
- OAuth 2.0 - Autenticación segura basada en tokens
- Verificación de webhooks - Validación de firma HMAC
- Almacenamiento cifrado - Credenciales de API cifradas en reposo
- Acceso por scopes - Solo los permisos mínimos necesarios