E-commerce (Shopify)
Sincronizza clienti e ordini dal tuo negozio Shopify al CRM usando il tuo negozio (modello BYO).
L'integrazione E-commerce usa il TUO negozio Shopify (modello BYO: porti il tuo negozio). Ascolta i webhook del tuo negozio e sincronizza con il CRM: ogni cliente diventa un Contatto e ogni ordine diventa un Ordine di vendita. Non c'è costo, margine o intermediazione da parte nostra: i dati arrivano direttamente dal tuo negozio.
L'integrazione parte inerte: non succede nulla finché non compili i campi e attivi. Il segreto del webhook e il token admin sono memorizzati cifrati nel CRM e non vengono mai mostrati di nuovo.
Prerequisiti
- Un negozio Shopify con accesso da amministratore (Shopify Admin) per creare i webhook e visualizzare il signing secret.
- Il dominio .myshopify.com del negozio.
- In Sellio, accesso da amministratore per salvare le credenziali e attivare l'integrazione in Impostazioni → Integrazioni.
Cosa devi compilare
- Dominio del negozio: l'indirizzo .myshopify.com del tuo negozio (es. mionegozio.myshopify.com).
- Segreto del webhook (segreto API): il segreto che Shopify usa per firmare i webhook. In Shopify Admin → Impostazioni → Notifiche compare il "signing secret" dei webhook (oppure, se usi una tua app, il suo segreto API). È il valore che il CRM usa per verificare la firma (HMAC) di ogni chiamata.
- Token di accesso Admin API (facoltativo): serve solo se in futuro vuoi che il CRM legga i dati del negozio tramite API. Per ricevere solo i webhook, lascialo vuoto.
Come configurare
- Apri Impostazioni → Integrazioni e trova la scheda "E-commerce (Shopify)".
- Compila il dominio del negozio e il segreto del webhook, poi clicca "Salva credenziali".
- Copia l'"URL webhook (Shopify)" che compare.
- In Shopify Admin → Impostazioni → Notifiche → Webhook, crea un webhook (formato JSON) che punti a quell'URL per OGNUNO di questi argomenti: customers/create, customers/update, orders/create, orders/paid.
- Torna al CRM e clicca "Attiva".
Cosa succede a ogni evento
- customers/create e customers/update: il cliente viene creato o aggiornato come Contatto, associato tramite l'email. Il CRM memorizza l'id cliente di Shopify per evitare duplicati alle riconsegne.
- orders/create e orders/paid: l'ordine viene creato o aggiornato come Ordine di vendita (numero, importo, valuta e stato), collegato al Contatto corrispondente quando esiste. Lo stato diventa "fatturato" quando l'ordine è pagato, "annullato" se è stato annullato, oppure "confermato" negli altri casi.
Tratta l'URL del webhook e il segreto del webhook come dati riservati. Il CRM verifica la firma X-Shopify-Hmac-Sha256 di ogni chiamata con il tuo segreto del webhook; le firme non valide vengono rifiutate. Se provi ad attivare senza aver compilato il segreto, l'integrazione resta inerte e non viene sincronizzato nulla finché tutto non è a posto.
Come testare
- Con l'integrazione attivata e i webhook creati, in Shopify Admin → Impostazioni → Notifiche → Webhook, usa "Invia notifica di prova" su uno dei webhook (oppure crea un ordine/cliente di test nel negozio).
- Nel CRM, controlla l'oggetto Contatti (per i clienti) e Ordini di vendita (per gli ordini): dovrebbe apparire il record corrispondente.
- Reinvia lo stesso test e conferma che NON venga duplicato. Il CRM identifica il record tramite l'id Shopify.
Risoluzione dei problemi
- Firma non valida (chiamata rifiutata): il segreto del webhook salvato nel CRM è diverso dal signing secret di Shopify. Copia di nuovo il segreto (Impostazioni → Notifiche, oppure il segreto API della tua app) e incollalo nel CRM.
- Nulla si sincronizza: conferma di aver creato un webhook (formato JSON) per OGNI argomento: customers/create, customers/update, orders/create, orders/paid, tutti puntati all'"URL webhook (Shopify)".
- 404 sull'URL: l'integrazione è disattivata o il token dell'URL è cambiato. Riattiva e ricopia l'URL su Shopify.
- Ordine senza contatto collegato: il collegamento avviene tramite l'email del cliente; se il cliente non esiste ancora come Contatto, l'ordine viene creato senza collegamento e potrai associarlo in seguito.
- Campi che ho modificato sono stati sovrascritti: vengono aggiornati solo i campi provenienti dal negozio; il resto viene preservato. Se un campo del negozio è cambiato, riflette il negozio per progettazione.