Aller au contenu
All articles
Setup

E-commerce (WooCommerce et Magento)

Synchronisez les clients et les commandes de vos boutiques WooCommerce ou Magento vers le CRM en utilisant votre propre boutique (modèle BYO).

En plus de Shopify, le CRM synchronise les boutiques WooCommerce et Magento (modèle BYO : vous apportez votre propre boutique). Chaque client devient un Contact et chaque commande devient une Commande client. Il n'y a aucun coût, aucune marge ni aucune intermédiation de notre côté : les données proviennent directement de votre boutique. L'intégration démarre inerte : rien ne se passe tant que vous n'avez pas rempli les champs et activé l'intégration. Les secrets sont stockés chiffrés dans le CRM et ne sont jamais réaffichés.

Prérequis

  • WooCommerce : une boutique WordPress/WooCommerce avec un accès administrateur (pour créer des webhooks dans WooCommerce → Réglages → Avancé → Webhooks).
  • Magento (Adobe Commerce) : accès pour installer/configurer un module, une intégration ou un observer qui envoie un POST JSON pour chaque client/commande (Magento n'a pas de webhooks natifs standardisés).
  • Dans Sellio, un accès administrateur pour enregistrer les identifiants et activer l'intégration dans Paramètres → Intégrations.

WooCommerce

WooCommerce envoie des webhooks natifs. Vous créez les webhooks dans votre boutique en pointant vers l'URL du CRM et définissez un « Secret » ; WooCommerce signe chaque appel avec ce secret (HMAC-SHA256, en-tête X-WC-Webhook-Signature) et le CRM vérifie la signature avant de synchroniser.

  1. Dans le CRM, ouvrez Paramètres → Intégrations et trouvez la carte « E-commerce (WooCommerce) ».
  2. Remplissez l'URL de la boutique (facultatif, à titre de référence uniquement) et un Secret de webhook (une chaîne de votre choix), puis cliquez sur « Enregistrer les identifiants ».
  3. Copiez l'« URL du webhook (WooCommerce) » qui apparaît.
  4. Dans votre boutique, allez dans WooCommerce → Réglages → Avancé → Webhooks et créez un webhook pour CHAQUE sujet : Client créé, Client mis à jour, Commande créée, Commande mise à jour. Dans chacun, collez l'URL du CRM comme URL de livraison et utilisez le MÊME Secret que celui enregistré dans le CRM.
  5. Revenez au CRM et cliquez sur « Activer ».

Magento (Adobe Commerce)

Magento n'a pas de webhooks natifs standardisés. Vous configurez un module/intégration (ou un observer) qui envoie un POST JSON vers l'URL du CRM pour chaque client ou commande. Le POST est authentifié par un secret, de deux façons possibles (utilisez celle que votre module prend en charge) : une signature HMAC-SHA256 du corps en base64 dans l'en-tête X-Magento-Signature, ou le secret lui-même en texte clair dans l'en-tête X-Magento-Secret.

  1. Dans le CRM, ouvrez Paramètres → Intégrations et trouvez la carte « E-commerce (Magento) ».
  2. Remplissez l'URL de la boutique (facultatif) et un Secret d'authentification (une chaîne de votre choix), puis cliquez sur « Enregistrer les identifiants ».
  3. Copiez l'« URL du webhook (Magento) » qui apparaît.
  4. Configurez votre module/intégration Magento pour envoyer un POST (JSON) vers cette URL pour chaque client et commande, en envoyant le secret dans l'en-tête X-Magento-Signature (signature HMAC) ou X-Magento-Secret (valeur en clair).
  5. Revenez au CRM et cliquez sur « Activer ».

Format JSON attendu par Magento. Pour les clients : { "type": "customer", "id", "email", "firstname", "lastname", "telephone", "street", "city", "region", "country_id" }. Pour les commandes : { "type": "order", "increment_id" (ou "entity_id"), "grand_total", "order_currency_code", "status", "customer_email", "customer_id", "customer_firstname", "customer_lastname" }. Le champ « type » (customer ou order) détermine le mapping ; les champs manquants deviennent vides.

Ce qui se passe à chaque événement

  • Client (customer.created/updated dans Woo ; type « customer » dans Magento) : le client est créé ou mis à jour en tant que Contact, en faisant correspondre par e-mail. Le CRM stocke l'id client de la boutique (woo_customer_id / magento_customer_id) pour éviter les doublons lors des renvois.
  • Commande (order.created/updated dans Woo ; type « order » dans Magento) : la commande est créée ou mise à jour en tant que Commande client (numéro, montant, devise et statut), liée au Contact correspondant lorsqu'il existe. Dans Woo, « completed » devient « facturée » et « cancelled/refunded/failed » devient « annulée » ; dans Magento, « complete/closed/invoiced » devient « facturée » et « canceled/holded » devient « annulée » ; les autres deviennent « confirmée ».
💡 La synchronisation est idempotente : si la boutique renvoie le même événement, le CRM met à jour l'enregistrement existant au lieu d'en créer une nouvelle (il identifie l'enregistrement par l'id externe). Seuls les champs provenant de la boutique sont mis à jour, et ce que vous avez modifié manuellement dans le CRM est préservé.

Traitez les URL des webhooks et les secrets comme des secrets. Les appels avec une signature/un secret invalide sont refusés. Si vous essayez d'activer sans avoir rempli le secret, l'intégration reste inerte, et rien n'est synchronisé tant que tout n'est pas en place.

Comment tester

  1. WooCommerce : dans WooCommerce → Réglages → Avancé → Webhooks, modifiez un webhook et vérifiez les « Journaux de webhook » après avoir créé un client/une commande de test ; dans le CRM, vérifiez Contacts/Commandes clients.
  2. Magento : déclenchez votre observer/intégration pour un client et une commande de test (POST JSON avec le champ « type ») et vérifiez les enregistrements dans le CRM.
  3. Renvoyez le même événement et confirmez que le CRM met à jour (ne duplique pas), puisque la clé est l'id externe.

Dépannage

  • WooCommerce : signature invalide : le « Secret » du webhook dans la boutique doit être IDENTIQUE au Secret de webhook enregistré dans le CRM (HMAC-SHA256, en-tête X-WC-Webhook-Signature). Ressaisissez la même valeur des deux côtés.
  • Magento : appel refusé : envoyez le secret correctement, soit le HMAC-SHA256 du corps en base64 dans l'en-tête X-Magento-Signature, SOIT le secret en clair dans l'en-tête X-Magento-Secret (selon ce que votre module prend en charge).
  • Ne se synchronise pas : vérifiez que les webhooks/POST couvrent bien client ET commande (créé/mis à jour) et pointent vers la bonne « URL du webhook » ; vérifiez que l'intégration est activée.
  • Magento : champs vides dans le CRM : validez le JSON attendu (client : id/email/firstname/lastname... ; commande : increment_id/grand_total/order_currency_code/status/customer_email...). Le champ « type » (customer/order) détermine le mapping.
  • 404 sur l'URL : intégration désactivée ou jeton modifié. Réactivez et recopiez l'URL.

Open this article inside the system

Read it and want to see it working?

The account is free and the whole manual is available inside the system, with an assistant that answers from this very content.

Créer un compte gratuit
E-commerce (WooCommerce et Magento) · Sellio