Intégrer WooCommerce à un ERP sans perdre de commandes

·

Une intégration WooCommerce–ERP est fiable lorsque chaque donnée dispose d'une source maîtresse, que les événements peuvent être rejoués sans créer de doublons, que les erreurs sont mises en file d'attente et qu'il existe une réconciliation quotidienne. Connecter l'API ne suffit pas : il faut définir quand naît une commande, qui réserve le stock, comment sont traités les paiements, les retours, les taxes et les factures, et ce qui se passe si l'un des systèmes est indisponible.

Définir les systèmes maîtres

DonnéeMaître habituellement recommandé
Produit/SKUERP ou PIM
PrixERP, PIM ou moteur commercial
Stock disponibleERP/WMS
Commande webWooCommerce, à sa création
FactureERP
PaiementPasserelle avec réconciliation ERP
ClientRègle définie selon B2C/B2B
ExpéditionERP/WMS ou plateforme logistique

Deux systèmes ne doivent jamais être autorisés à modifier la même donnée sans une règle qui tranche le conflit.

Identifiants

Utilisez des clés stables :

Les noms ne sont pas des identifiants. Un changement de description ne doit pas créer un nouveau produit.

API et webhooks

WooCommerce propose une API REST pour lire et écrire produits, commandes et autres ressources. Les webhooks notifient les événements à une URL.

Schéma recommandé :

  1. Le webhook signale l'événement.
  2. Le récepteur valide la signature et enregistre l'événement.
  3. Une file d'attente découple le traitement.
  4. Un worker interroge le détail via l'API.
  5. Les données sont transformées puis envoyées à l'ERP.
  6. Le résultat est confirmé.
  7. La réconciliation détecte les absences.

Ne vous fiez pas au seul webhook : il peut échouer ou être désactivé après des erreurs répétées. La réconciliation périodique est obligatoire.

Sécurité

La documentation officielle montre des clés avec droits de lecture et d'écriture ; elles ne doivent être accordées que si le flux l'exige.

Commandes et statuts

On associe chaque statut :

WooCommerceERPAction
pendingen attentene pas réserver ou règle spécifique
processingconfirméréserver/préparer
completedexpédié/clôturéclôturer selon le processus
cancelledannulélibérer
refundedretour/avoirflux financier
failedéchecne pas préparer

Le mappage s'adapte à la passerelle et à la logistique. On ne facture jamais sur un statut ambigu.

Idempotence

Chaque événement possède une clé composite — boutique, commande, type et version. S'il arrive deux fois, la seconde opération met à jour ou est ignorée, elle ne crée jamais une autre commande.

Les nouvelles tentatives après un délai dépassé vérifient d'abord si l'opération existe déjà.

Stock

Définir :

La boutique doit recevoir le disponible, pas nécessairement le physique. La fréquence dépend de la rotation et du risque de survente.

On réalise une réconciliation par SKU et des alertes en cas d'écarts.

Prix et promotions

Décider où vivent tarifs, coupons, taxes et arrondis. L'ERP reçoit un détail suffisant pour reconstituer le total.

Les promotions complexes peuvent être enregistrées comme une remise traçable. On ne recalcule pas dans l'ERP d'une façon qui change le montant facturé.

Taxes

On teste B2C/B2B, territoires, exonérations, taux, frais de port et remises. La localisation fiscale et les obligations de facturation doivent être validées.

WooCommerce calcule la vente ; l'ERP doit accepter ou valider selon la conception, sans générer d'écarts silencieux.

Clients et confidentialité

Pour la vente en tant qu'invité, on évite de créer des doublons pour chaque variante d'un e-mail. On définit une règle de correspondance et le moment de mettre à jour les données.

L'intégration minimise les données, contrôle les rôles et les contrats et applique une durée de conservation. Le marketing ne se déclenche pas automatiquement à l'achat.

Factures

L'ERP numérote et émet généralement les factures. Le lien renvoie le numéro, le PDF ou le statut à WooCommerce ou à l'espace client. Les avoirs et retours sont rattachés à l'original.

Une facture émise n'est jamais modifiée pour un changement de commande ; on applique le circuit fiscal correct.

Paiements

La commande, la transaction et le règlement sont des objets distincts. On réconcilie :

Un webhook de commande ne prouve pas que l'argent est réglé.

Expéditions et retours

L'ERP/WMS envoie transporteur, suivi, colis et statut. Les retours génèrent autorisation, réception, inspection, avoir et remise en stock selon l'état.

On ne remet pas le stock à jour lors de la demande de retour ; cela se fait à la réception et après validation.

Gestion des erreurs

La file d'erreurs affiche :

Les erreurs permanentes — par exemple un SKU inexistant — ne sont pas retentées indéfiniment. On corrige la donnée puis on retraite.

Observabilité

Indicateurs :

Les alertes doivent être actionnables.

Tests

Plan de déploiement

Jours 1 à 30

Maîtres, statuts, taxes, architecture et sécurité.

Jours 31 à 60

API, webhooks, files d'attente, idempotence et tests.

Jours 61 à 90

Pilote, réconciliation, alertes et production.

Erreurs fréquentes

  1. Absence de source maîtresse.
  2. Utiliser les noms comme clé.
  3. Ne se fier qu'aux webhooks.
  4. Retenter sans idempotence.
  5. Absence de file d'erreurs.
  6. Mettre à jour le stock physique.
  7. Recalculer les promotions.
  8. Facturer avant un paiement valide.
  9. Remettre en stock avant réception du retour.
  10. Absence de réconciliation quotidienne.

Checklist

Questions fréquentes

API ou extension ?

Cela dépend du périmètre. Une extension peut accélérer les choses, mais elle doit démontrer sécurité, maintenance, idempotence et support.

Les webhooks suffisent-ils ?

Non. Ils doivent être complétés par une interrogation et une réconciliation.

Qui doit contrôler le stock ?

Généralement l'ERP/WMS. WooCommerce reçoit la disponibilité calculée.

Sources officielles consultées

Summum Sistemas peut concevoir l'intégration, les files d'attente, la réconciliation et le monitoring.