Que peut-on lire et écrire dans WooCommerce par l'API ?
L'API REST de WooCommerce permet à un programme externe de lire, créer, modifier et supprimer presque tout ce qu'un administrateur manipule dans la boutique. La documentation développeur de WooCommerce recommande la version wc/v3 (adresses en /wp-json/wc/v3/) pour toute nouvelle intégration. WooCommerce se décrit comme une plateforme libre et open source pour WordPress, gratuite : l'API est incluse, sans abonnement.
| Domaine | Ressources de l'API wc/v3 | Usage typique côté logiciel métier |
|---|---|---|
| Ventes | Orders, Order Notes, Order Refunds, Order Actions | Rapatrier la commande payée, inscrire une note avec le numéro de bon, enregistrer un remboursement |
| Catalogue | Products, Product Variations, Attributes, Categories, Tags, Shipping Classes | Publier articles et déclinaisons depuis la base articles, mettre à jour prix et quantités |
| Clients | Customers | Créer ou retrouver le compte client et ses adresses |
| Remises | Coupons | Générer des codes de remise depuis le CRM |
| Fiscalité et livraison | Taxes, Tax Classes, Shipping Zones, Shipping Methods | Contrôler que taux et zones concordent avec la gestion commerciale |
| Technique | Webhooks, Settings, System Status, Payment Gateways, Reports | Créer les webhooks par programme, surveiller l'état de la boutique |
Plusieurs ressources acceptent des opérations groupées, utiles pour une mise à jour de catalogue. Les listes sont paginées : l'API REST de WordPress, sur laquelle reposent ces adresses, plafonne le paramètre per_page à 100 enregistrements.
Comment un logiciel externe s'authentifie-t-il auprès de WooCommerce ?
Un logiciel externe s'authentifie auprès de WooCommerce avec une clé client (consumer key) et son secret (consumer secret). Ils se créent dans le menu WooCommerce, Réglages, Avancé, API REST, en choisissant l'utilisateur WordPress de rattachement et le niveau d'accès : lecture, écriture, ou les deux. Selon la documentation de WooCommerce, le secret n'est affiché qu'une fois, et la clé agit avec les droits de l'utilisateur associé.
- Boutique en HTTPS : la clé sert d'identifiant et le secret de mot de passe, en authentification HTTP Basic.
- Boutique en HTTP simple : WooCommerce impose OAuth 1.0a « à une jambe » : chaque requête est signée (HMAC-SHA1 ou HMAC-SHA256) et refusée si son horodatage sort d'une fenêtre de 15 minutes.
- Prérequis : des permaliens WordPress autres que « Simple ».
Créez un utilisateur WordPress réservé à l'intégration : si la clé appartient au compte d'un salarié supprimé à son départ, elle cesse de fonctionner, rappelle la documentation. Et donnez à chaque flux le niveau minimal : un tableau de bord qui lit les ventes n'a pas besoin d'écrire.
Les webhooks WooCommerce : rapides, mais pas suffisants seuls
Un webhook WooCommerce envoie une requête HTTP POST à l'adresse de votre choix quand un coupon, un client, une commande ou un produit est créé, modifié ou supprimé (sujets order.created, product.updated, etc.). Des sujets personnalisés, rattachés à un crochet WordPress, sont aussi possibles.
Chaque envoi porte l'en-tête X-WC-Webhook-Signature : une empreinte HMAC-SHA256 du contenu, encodée en base64 et calculée avec le secret du webhook. Le service récepteur recalcule cette empreinte et rejette tout envoi non conforme ; sans ce contrôle, n'importe qui pourrait lui adresser de fausses commandes.
La faiblesse est écrite dans la documentation : les envois sont traités en arrière-plan par wp-cron, toute réponse autre qu'un code 2xx compte comme un échec, et après cinq échecs consécutifs le webhook passe au statut « disabled ». Une maintenance du serveur de réception un samedi soir peut ainsi couper le flux des commandes sans que personne ne le voie. La parade : le webhook pour la rapidité, une interrogation régulière qui reprend les commandes modifiées depuis le dernier passage, et une alerte dès qu'un webhook change de statut. Le mécanisme général est expliqué dans notre définition du webhook.
Cinq flux concrets entre WooCommerce et un logiciel métier
- La commande payée part en préparation. Une PME de cosmétiques prépare ses colis dans son logiciel de gestion. Le webhook signale le passage de la commande au statut « en cours » ; le service lit la commande, retrouve chaque article par sa référence (SKU), crée le bon de préparation et ajoute dans WooCommerce une note portant le numéro du bon.
- Le stock de l'entrepôt fait foi. Le logiciel métier calcule le disponible (physique moins réservé) et le pousse vers produits et variations, en opérations groupées, après chaque réception fournisseur. Une boutique servie par plusieurs dépôts suit la logique de notre page sur la gestion de stock multi-sites.
- Le numéro de suivi revient au client. À l'édition de l'étiquette, le logiciel métier passe la commande à « terminée » et inscrit le lien de suivi en note. L'étiquette vient d'une autre intégration, par exemple Sendcloud ou Colissimo.
- Le client professionnel est créé une seule fois. Un négociant en vins ouvre sa boutique aux cavistes : à la validation du dossier dans le CRM, le service crée le compte client WooCommerce et un code de remise de bienvenue, sans fiche en double.
- Le remboursement remonte en gestion. Un retour accepté dans le logiciel métier enregistre le remboursement sur la commande ; l'avoir sort de l'outil de facturation, pour garder une seule numérotation.
Quelles limites d'appels et quel environnement de test ?
La documentation de l'API REST WooCommerce ne publie aucun quota d'appels. La boutique tourne sur votre hébergement, et c'est ce serveur qui fixe la limite réelle. Une synchronisation de milliers d'articles en pleine journée peut ralentir le site pour les acheteurs : on planifie les gros envois la nuit et on ne relit que les éléments modifiés.
La limitation de débit que documente WooCommerce concerne la Store API, l'interface du panier et du tunnel de commande côté acheteur. Elle est facultative, désactivée par défaut, et fixée par défaut à 25 requêtes sur 10 secondes. La documentation la décrit pour les points d'accès de la Store API, pas pour l'API wc/v3 qu'utilise un logiciel de gestion.
La documentation de l'API ne décrit pas non plus de bac à sable fourni par l'éditeur. Les tests se font sur une copie de la boutique en préproduction, avec ses propres clés ; sans elle, chaque essai crée de vraies commandes et envoie de vrais e-mails.
Doublons, héritage et données personnelles : les points de vigilance
- L'ancienne API legacy : elle ne fait plus partie de WooCommerce depuis la version 9.0 et vit dans une extension séparée. Selon la page d'aide de WooCommerce, les webhooks configurés sur cette ancienne API cessent de fonctionner sans elle.
- Les extensions : abonnements, réservations ou champs ajoutés peuvent manquer dans les réponses standard ; on vérifie ce qui est exposé.
- Les doublons : une commande reçue par webhook puis retrouvée au rattrapage n'est créée qu'une fois, grâce à l'identifiant de commande WooCommerce.
- La reprise après incident : le service mémorise la date de la dernière commande traitée et repart de ce point, avec un léger chevauchement, après une coupure.
- Le journal : chaque échange est conservé avec sa réponse, pour savoir si une commande est bien partie en préparation.
- Les données personnelles : noms, adresses et téléphones des acheteurs ne sont copiés que là où ils servent, et les journaux ont une durée de conservation définie, dans le cadre décrit par notre guide RGPD et logiciel métier.
Extension toute faite ou intégration développée ?
Une extension du marché suffit souvent : beaucoup d'éditeurs de logiciels de gestion et de transporteurs publient leur module WooCommerce, et une boutique de quelques centaines de références avec un seul entrepôt n'a pas besoin de plus. Testez-la sur la préproduction, en vérifiant qu'elle journalise et reprend après une coupure.
Le développement sur mesure se justifie quand le logiciel métier est spécifique et qu'aucun module n'existe, quand le stock combine plusieurs dépôts et des réservations, quand les prix dépendent du client, ou quand une commande perdue coûte cher. Si la question porte sur la plateforme elle-même, notre comparatif Shopify ou WooCommerce aide à trancher.
Ce que YMHB Web livre pour une intégration WooCommerce
YMHB Web construit l'intégration comme un petit service séparé de la boutique, par exemple en Node.js, avec une base PostgreSQL pour la table de correspondance (article, commande, client) et le journal. Une mise à jour de WooCommerce ne touche pas à ce code.
À la livraison, les clés d'API et l'hébergement du service sont au nom du client, et le code, déposé chez lui, lui appartient au paiement intégral. La documentation décrit chaque flux, les règles de correspondance et la procédure de reprise. Un écran de supervision affiche les commandes transmises, l'état des webhooks et les anomalies qui attendent une décision humaine. Le cadrage des flux précède tout chiffrage, selon la démarche présentée sur notre page API et intégrations entre vos logiciels.
Questions fréquentes
WooCommerce a-t-il une API gratuite ?
Oui, l'API REST fait partie de WooCommerce, que l'éditeur présente comme une plateforme e-commerce gratuite et open source pour WordPress. Aucun abonnement n'est demandé pour l'utiliser. Le coût d'une intégration WooCommerce vient de l'hébergement, qui doit absorber les appels, et du module ou du développement qui relie la boutique au logiciel métier.
Combien d'appels par minute l'API WooCommerce accepte-t-elle ?
La documentation de l'API REST WooCommerce ne publie pas de quota d'appels. La limite réelle dépend du serveur qui héberge la boutique et des protections de l'hébergeur. Les listes sont paginées à 100 éléments au maximum par page, selon la documentation de l'API REST de WordPress. Les synchronisations lourdes se planifient donc hors des heures de vente.
Que se passe-t-il si mon logiciel ne répond pas à un webhook WooCommerce ?
WooCommerce considère toute réponse autre qu'un code 2xx comme un échec de livraison. Après cinq échecs consécutifs, WooCommerce désactive le webhook, qui doit ensuite être réactivé. Pour ne perdre aucune commande, le logiciel métier complète les webhooks par une interrogation régulière de l'API et surveille le statut de chaque webhook.
Faut-il un développeur pour relier WooCommerce à un ERP ?
Pas toujours. Plusieurs éditeurs de logiciels de gestion proposent un module WooCommerce qui couvre les flux standard de commandes, d'articles et de stock. Un développeur devient utile quand le logiciel métier est spécifique, quand les règles de stock ou de prix sortent du standard, ou quand le module existant ne journalise pas ses échanges et ne sait pas reprendre après une coupure.
Mes anciens connecteurs WooCommerce vont-ils continuer à fonctionner ?
Pas forcément. Depuis WooCommerce 9.0, l'ancienne API REST dite legacy n'est plus incluse dans WooCommerce et a été déplacée dans une extension séparée. Un connecteur ou un webhook configuré sur cette ancienne API cesse de fonctionner si l'extension n'est pas installée. Vérifiez la version d'API utilisée par chaque connecteur avant une mise à jour.
À lire aussi
Sources
- WooCommerce Developer Docs, REST API : Authentication
- WooCommerce Developer Docs, REST API v3 (liste des ressources)
- WooCommerce Developer Docs, REST API v3 : Webhooks
- WooCommerce, documentation : WooCommerce REST API (clés et permissions)
- WooCommerce Developer Docs, Store API : Rate limiting
- WordPress Developer Resources, REST API : Pagination
- WooCommerce, dépôt GitHub woocommerce-legacy-rest-api (retrait du cœur en version 9.0)
- WooCommerce, page Pricing (plateforme gratuite et open source)
