E-commerce (WooCommerce e Magento)
Sincronizza clienti e ordini dai tuoi negozi WooCommerce o Magento al CRM usando il tuo negozio (modello BYO).
Oltre a Shopify, il CRM sincronizza i negozi WooCommerce e Magento (modello BYO: porti il tuo negozio). 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. I segreti sono memorizzati cifrati nel CRM e non vengono mai mostrati di nuovo.
Prerequisiti
- WooCommerce: un negozio WordPress/WooCommerce con accesso da amministratore (per creare webhook in WooCommerce → Impostazioni → Avanzate → Webhook).
- Magento (Adobe Commerce): accesso per installare/configurare un modulo, un'integrazione o un observer che invii una POST JSON per ogni cliente/ordine (Magento non ha webhook nativi standardizzati).
- In Sellio, accesso da amministratore per salvare le credenziali e attivare l'integrazione in Impostazioni → Integrazioni.
WooCommerce
WooCommerce invia webhook nativi. Crei i webhook nel tuo negozio puntando all'URL del CRM e definisci un "Segreto"; WooCommerce firma ogni chiamata con quel segreto (HMAC-SHA256, header X-WC-Webhook-Signature) e il CRM verifica la firma prima di sincronizzare.
- Nel CRM, apri Impostazioni → Integrazioni e trova la scheda "E-commerce (WooCommerce)".
- Compila l'URL del negozio (facoltativo, solo di riferimento) e un Segreto del webhook (una stringa a tua scelta), poi clicca "Salva credenziali".
- Copia l'"URL webhook (WooCommerce)" che compare.
- Nel tuo negozio, vai su WooCommerce → Impostazioni → Avanzate → Webhook e crea un webhook per OGNI argomento: Cliente creato, Cliente aggiornato, Ordine creato, Ordine aggiornato. In ciascuno, incolla l'URL del CRM come Delivery URL e usa lo STESSO Segreto salvato nel CRM.
- Torna al CRM e clicca "Attiva".
Magento (Adobe Commerce)
Magento non ha webhook nativi standardizzati. Configuri un modulo/integrazione (o un observer) che effettua una POST JSON verso l'URL del CRM per ogni cliente o ordine. La POST è autenticata da un segreto, in due modi possibili (usa quello supportato dal tuo modulo): una firma HMAC-SHA256 del corpo in base64 nell'header X-Magento-Signature, oppure il segreto stesso in chiaro nell'header X-Magento-Secret.
- Nel CRM, apri Impostazioni → Integrazioni e trova la scheda "E-commerce (Magento)".
- Compila l'URL del negozio (facoltativo) e un Segreto di autenticazione (una stringa a tua scelta), poi clicca "Salva credenziali".
- Copia l'"URL webhook (Magento)" che compare.
- Configura il tuo modulo/integrazione Magento per inviare una POST (JSON) a quell'URL per ogni cliente e ordine, inviando il segreto nell'header X-Magento-Signature (firma HMAC) oppure X-Magento-Secret (valore in chiaro).
- Torna al CRM e clicca "Attiva".
Formato JSON atteso da Magento. Per i clienti: { "type": "customer", "id", "email", "firstname", "lastname", "telephone", "street", "city", "region", "country_id" }. Per gli ordini: { "type": "order", "increment_id" (oppure "entity_id"), "grand_total", "order_currency_code", "status", "customer_email", "customer_id", "customer_firstname", "customer_lastname" }. Il campo "type" (customer oppure order) determina la mappatura; i campi mancanti diventano vuoti.
Cosa succede a ogni evento
- Cliente (customer.created/updated in Woo; type "customer" in Magento): il cliente viene creato o aggiornato come Contatto, associato tramite l'email. Il CRM memorizza l'id cliente del negozio (woo_customer_id / magento_customer_id) per evitare duplicati alle riconsegne.
- Ordine (order.created/updated in Woo; type "order" in Magento): l'ordine viene creato o aggiornato come Ordine di vendita (numero, importo, valuta e stato), collegato al Contatto corrispondente quando esiste. In Woo, "completed" diventa "fatturato" e "cancelled/refunded/failed" diventa "annullato"; in Magento, "complete/closed/invoiced" diventa "fatturato" e "canceled/holded" diventa "annullato"; il resto diventa "confermato".
Tratta gli URL dei webhook e i segreti come dati riservati. Le chiamate con firma/segreto non validi 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
- WooCommerce: in WooCommerce → Impostazioni → Avanzate → Webhook, modifica un webhook e controlla i "Log del webhook" dopo aver creato un cliente/ordine di test; nel CRM, controlla Contatti/Ordini di vendita.
- Magento: attiva il tuo observer/integrazione per un cliente e un ordine di test (POST JSON con il campo "type") e controlla i record nel CRM.
- Reinvia lo stesso evento e conferma che il CRM aggiorni (non duplichi), dato che la chiave è l'id esterno.
Risoluzione dei problemi
- WooCommerce: firma non valida: il "Segreto" del webhook nel negozio deve essere UGUALE al Segreto del webhook salvato nel CRM (HMAC-SHA256, header X-WC-Webhook-Signature). Reinserisci lo stesso valore su entrambi i lati.
- Magento: chiamata rifiutata: invia il segreto correttamente, sia l'HMAC-SHA256 del corpo in base64 nell'header X-Magento-Signature SIA il segreto in chiaro nell'header X-Magento-Secret (usa quello supportato dal tuo modulo).
- Non si sincronizza: conferma che i webhook/POST coprano cliente E ordine (creato/aggiornato) e puntino all'"URL webhook" corretto; conferma che l'integrazione sia attivata.
- Magento: campi vuoti nel CRM: valida il JSON atteso (cliente: id/email/firstname/lastname...; ordine: increment_id/grand_total/order_currency_code/status/customer_email...). Il campo "type" (customer/order) determina la mappatura.
- 404 sull'URL: integrazione disattivata o token cambiato. Riattiva e ricopia l'URL.