WP4Odoo : quand WordPress et Odoo cessent de se tourner le dos

WordPress fait tourner votre vitrine. Odoo fait tourner votre back-office. Entre les deux, une terre de personne où vos données se perdent, se dupliquent ou ne se parlent plus. WP4Odoo est un pont modulaire entre ces deux mondes : open source, bidirectionnel, et conçu pour ne pas vous réveiller la nuit.

Le problème que tout le monde contourne

Si vous utilisez WordPress (ou WooCommerce) en façade et Odoo comme ERP, vous connaissez la chanson. Un client passe commande sur votre boutique. La commande arrive dans WooCommerce. Puis quelqu’un (souvent vous, souvent à la main) la ressaisit dans Odoo pour la facturation, la gestion de stock, le suivi commercial. Les abonnements, les contacts CRM, les inscriptions à vos formations en ligne : même histoire.

Chaque saisie manuelle est une opportunité d’erreur. Chaque heure passée à copier-coller entre deux onglets est une heure en moins pour développer votre activité. Et au bout de quelques mois, vos deux systèmes divergent silencieusement : le stock WordPress dit une chose, Odoo en dit une autre, et vous découvrez le décalage quand un client appelle pour demander où est sa commande.

Il existe des connecteurs commerciaux, souvent verrouillés sur une poignée de cas d’usage, parfois dépendants de plateformes intermédiaires comme Zapier ou Make qui ajoutent un point de défaillance et une facture de plus. J’ai voulu construire autre chose.

Ce qu’est WP4Odoo

WP4Odoo est un plugin WordPress modulaire qui crée un pont bidirectionnel entre WordPress/WooCommerce et Odoo. Vous activez uniquement les modules dont vous avez besoin, et le plugin synchronise les données dans les deux sens, de manière asynchrone : aucun appel API vers Odoo ne se fait pendant qu’un visiteur navigue sur votre site.

Tout passe par une file d’attente persistante, traitée en arrière-plan par lots configurables. Retry automatique, déduplication des jobs, logs détaillés. Si Odoo est temporairement injoignable, les jobs attendent et seront retentés automatiquement. Votre site ne ralentit jamais, vos visiteurs ne voient rien.

Un plugin, des dizaines de modules

Plutôt qu’un gros monolithe, WP4Odoo est découpé en modules indépendants. Chaque module correspond à un domaine fonctionnel (e-commerce, CRM, LMS, helpdesk, événements, marketplace, comptabilité…) et à un ou plusieurs plugins WordPress tiers. Vous n’utilisez pas WooCommerce Subscriptions ? Le module n’est pas chargé. Pas besoin du CRM ? Il reste désactivé.

La couverture fonctionnelle est large et continue de s’étendre. Chaque module sait quelles applications Odoo il requiert et le vérifie à l’activation. Le README sur GitHub détaille la compatibilité, les directions de synchronisation et les prérequis module par module.

Ce qui circule : et dans quel sens

La direction de synchronisation varie selon le module. WooCommerce est bidirectionnel : produits, commandes, stocks et catégories circulent dans les deux sens. Les formulaires de contact ne poussent que vers Odoo. Le module Sales ne tire que depuis Odoo vers WordPress. Ce n’est pas un caprice d’architecte : forcer la bidirectionnalité partout, c’est s’exposer à des conflits de données impossibles à résoudre proprement. Mieux vaut définir clairement qui est le maître de chaque type de donnée.

Sous le capot

Le cœur du plugin est sa file d’attente asynchrone. Plutôt que d’appeler Odoo en temps réel au moment du checkout (fragile et lent) chaque événement génère un job traité en arrière-plan. Le plugin supporte les protocoles standard d’Odoo (JSON-RPC et XML-RPC), les credentials sont chiffrés au repos, et des webhooks entrants permettent à Odoo de notifier WordPress en temps réel avec authentification et rate limiting.

Le tout est administrable via une interface d’administration à onglets ou intégralement en ligne de commande via WP-CLI : pratique pour les déploiements automatisés ou le diagnostic rapide. Les détails techniques sont dans le fichier ARCHITECTURE.md.

Compatibilité Odoo

Le plugin fonctionne avec les versions récentes d’Odoo (17+) en JSON-RPC, et les versions antérieures (14–16) en XML-RPC. Compatible On-Premise, Odoo.sh et Odoo Online, éditions Community et Enterprise. Le plan « One App Free » fonctionne partiellement : le README détaille ce qui marche selon l’application choisie.

Extensibilité et multilingual

WP4Odoo est pensé pour être étendu : hooks pour enregistrer vos propres modules, filtres pour transformer les données en transit, mapping de champs personnalisés vers Odoo. Si votre site est multilingue (WPML ou Polylang), le plugin synchronise les traductions de produits, catégories et attributs dans les deux sens. Le plugin est lui-même traduit en plusieurs langues et prêt à en accueillir de nouvelles. Les conventions de contribution sont dans CONTRIBUTING.md.

Qualité et tests

C’est un projet personnel, pas un produit commercial. Mais c’est un projet qui touche à la facturation, au stock et aux données clients de vrais business : le niveau d’exigence doit être à la hauteur. Le plugin est couvert par des tests automatisés en intégration continue, de l’analyse statique, et des tests d’intégration contre une vraie instance Odoo dans Docker.

Disponible en open source

Le code source, la documentation, le changelog et le guide d’architecture sont sur GitHub. Le plugin est distribué sous licence GPL v2+.


A compatibility feedback form

If you’re using WP4Odoo and a third-party plugin update breaks something, or on the contrary, if an untested version works just fine, you can report it via the form below. It’s quick, it helps me prioritize fixes, and it keeps the project alive far more effectively than solo monitoring.

The form is also accessible directly from the WordPress admin: when the plugin detects a third-party plugin version higher than the one it has validated, it displays a warning with a pre-filled link. All you have to do is say whether it works or not.

Does it work or is it broken?

Écrivez quelques éclats d'âme...

Dans l'ombre vacillante d'une chandelle, où les murmures du vent se mêlent aux secrets d'un vieux parchemin, je vous invite à tisser une toile de mots. Écrivez quelques éclats d'âme – rêve, étoile, abîme, étreinte, brume – et laissez-les danser sur la page, comme des lucioles dans une nuit d'encre. Que diriez-vous de les entrelacer dans une phrase, un souffle, une histoire ?

S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire