Connettore Shopify
Connettore Shopify
Collega il tuo negozio Shopify a Brevo per una sincronizzazione completa dei dati cliente, il recupero dei carrelli abbandonati e campagne di marketing automatizzate.
Panoramica
| Proprietà | Valore |
|---|---|
| Piattaforma | Shopify |
| Categoria | E-commerce |
| Complessità di setup | Facile |
| Integrazione ufficiale | Sì |
| Dati sincronizzati | Clienti, Ordini, Prodotti, Carrelli, Eventi |
| Skill disponibili | 12 |
Funzionalità
- Sincronizzazione clienti in tempo reale - I dati dei clienti vengono sincronizzati istantaneamente con i contatti Brevo
- Tracciamento ordini - Eventi degli ordini per flussi post-acquisto
- Sincronizzazione catalogo prodotti - Prodotti disponibili per raccomandazioni
- Abbandono carrello - Traccia e recupera i carrelli abbandonati
- Comportamento di navigazione - Tracciamento visualizzazioni pagina e interesse sui prodotti
- Supporto multi-store - Collega più negozi Shopify
Prerequisiti
Prima di iniziare, assicurati di avere:
- Un negozio Shopify con accesso admin
- Un account Brevo con accesso API
- Un account Tajo
Installazione
Opzione 1: Shopify App Store (consigliata)
- Visita l’app Tajo nello Shopify App Store
- Clicca su “Aggiungi app”
- Concedi i permessi richiesti
- Collega il tuo account Brevo
Opzione 2: Installazione manuale
Passo 1: Crea un’app Shopify
- Vai nell’admin Shopify → Impostazioni → App e canali di vendita
- Clicca su “Sviluppa app” → “Crea un’app”
- Chiamala “Tajo Integration”
Passo 2: Configura gli scope API
Abilita questi scope:
read_customerswrite_customersread_ordersread_productsread_checkoutswrite_script_tagsPasso 3: Installa l’app
# Using Tajo CLItajo connectors install shopify \ --shop-url your-store.myshopify.com \ --api-key $SHOPIFY_API_KEY \ --api-secret $SHOPIFY_API_SECRETPasso 4: Configura i webhook
Tajo registra automaticamente questi webhook:
| Webhook | Scopo |
|---|---|
customers/create | Sincronizzazione nuovo cliente |
customers/update | Modifiche dati cliente |
customers/delete | Rimozione cliente |
orders/create | Eventi di ordine effettuato |
orders/updated | Cambiamenti di stato ordine |
checkouts/create | Carrello creato |
checkouts/update | Carrello aggiornato |
Configurazione
Setup di base
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: 7Mappatura dei campi
Mappa i campi Shopify agli attributi di contatto Brevo:
Mappature predefinite
| Parameter | Type | Description |
|---|---|---|
email required | string | Email del cliente (identificatore univoco) |
first_name optional | string | Mappato all'attributo FIRSTNAME |
last_name optional | string | Mappato all'attributo LASTNAME |
phone optional | string | Mappato all'attributo SMS per WhatsApp/SMS |
accepts_marketing optional | boolean | Controlla lo stato dell'iscrizione |
orders_count optional | integer | Numero totale di ordini |
total_spent optional | number | Customer lifetime value |
tags optional | array | Tag cliente da Shopify |
Mappatura attributi personalizzati
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: RECENCYSincronizzazione prodotti
Sincronizza i prodotti per le raccomandazioni 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"]Tracciamento inventario
Abilita la sincronizzazione dei livelli di stock:
sync: inventory: enabled: true low_stock_threshold: 10 out_of_stock_events: trueEventi
Eventi cliente
| Evento | Trigger | Caso d’uso |
|---|---|---|
customer_created | Registrazione nuovo cliente | Serie di benvenuto |
customer_updated | Modifiche al profilo | Sincronizzazione dati |
customer_tags_added | Tag assegnati | Aggiornamento segmenti |
Eventi ordine
| Evento | Trigger | Caso d’uso |
|---|---|---|
order_placed | Checkout completato | Conferma d’ordine |
order_fulfilled | Ordine spedito | Notifica di spedizione |
order_cancelled | Ordine annullato | Email di annullamento |
order_refunded | Rimborso elaborato | Conferma rimborso |
Eventi carrello
| Evento | Trigger | Caso d’uso |
|---|---|---|
cart_created | Articoli aggiunti al carrello | Tracciamento navigazione |
cart_updated | Carrello modificato | Tracciamento valore carrello |
cart_abandoned | Nessun checkout in 30 min | Email di recupero |
Skill abilitate
Il connettore Shopify abilita queste skill:
| Skill | Descrizione |
|---|---|
| Customer Sync | Sincronizzazione clienti in tempo reale |
| Order Events | Tracciamento ciclo di vita ordine |
| Abandoned Cart | Email di recupero carrello |
| Welcome Series | Onboarding nuovi clienti |
| Post-Purchase | Follow-up post-ordine |
| Win-Back | Riattiva clienti inattivi |
| Browse Abandonment | Follow-up interesse prodotto |
| Replenishment | Promemoria di riordino |
Esempi di codice
Inizializza il connettore
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});Esegui la sincronizzazione iniziale
// 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// }Traccia eventi del carrello
Aggiungi lo script Tajo al tuo tema 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 webhook personalizzato
// 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');});Monitoraggio
Metriche della dashboard
Monitora la tua connessione Shopify nella dashboard Tajo:
- Stato sincronizzazione: Salute della connessione in tempo reale
- Clienti sincronizzati: Totale contatti da Shopify
- Ordini tracciati: Eventi ordine elaborati
- Recupero carrello: Performance del recupero carrelli abbandonati
- Tasso di errore: Tentativi di sincronizzazione falliti
Log dei webhook
Visualizza lo stato di consegna dei webhook:
tajo connectors logs shopify --type webhook --last 24hCronologia sincronizzazioni
Controlla le operazioni di sincronizzazione storiche:
tajo connectors history shopify --limit 10Risoluzione dei problemi
Problemi comuni
Limiti di velocità API
Shopify ha limiti di velocità API di 2 richieste/secondo. Usa la sincronizzazione batch per grandi importazioni storiche.
| Problema | Causa | Soluzione |
|---|---|---|
| Webhook non ricevuto | Permessi app | Reinstalla l’app con gli scope corretti |
| Cliente non sincronizzato | Email mancante | Shopify richiede l’email per i clienti |
| Prodotti mancanti | Stato prodotto | Verifica che il prodotto sia in stato “active” |
| Carrello non tracciato | Script non caricato | Verifica lo script in theme.liquid |
Modalità debug
Abilita il logging dettagliato:
connectors: shopify: debug: true log_level: verbose log_webhooks: trueTesta la connessione
tajo connectors test shopify# ✓ API connection successful# ✓ Webhooks registered# ✓ Products accessible# ✓ Customers readable# ✓ Orders readableBest practice
- Inizia con un negozio di test - Usa prima un development store
- Esegui la sincronizzazione iniziale fuori orario - Le sync grandi possono essere lente
- Mappa attributi personalizzati - Non affidarti solo alle mappature predefinite
- Abilita il tracciamento del carrello - Fondamentale per il recupero carrelli abbandonati
- Monitora la salute dei webhook - Imposta alert per consegne fallite
- Usa importazioni batch - Per dati storici oltre 10.000 record
Sicurezza
- OAuth 2.0 - Autenticazione sicura basata su token
- Verifica webhook - Validazione firma HMAC
- Storage cifrato - Credenziali API cifrate a riposo
- Accesso con scope - Solo i permessi minimi richiesti