Dans cet article
Un module Odoo sur mesure se justifie quand une règle métier, une intégration ou un document ne peut être obtenu ni par la configuration, ni par Odoo Studio, ni par un module existant, et que l’écart vaut un coût de maintenance à chaque version. L’ordre de décision reste donc : standard, Studio, module existant, puis développement spécifique. Voici la grille pour trancher, les critères d’un module bien construit et la façon de le spécifier.
Quatre façons d’adapter Odoo, de la plus légère à la plus engageante
Les quatre leviers d’Odoo diffèrent moins par ce qu’ils savent faire que par l’hébergement qu’ils imposent et par la personne qui les adapte à chaque version.
- La configuration standard : paramètres, étapes, séquences, modèles d’e-mail, droits d’accès.
- Odoo Studio : l’outil sans code pour ajouter champs, vues, modèles, automatisations, webhooks, rapports PDF, règles d’approbation et de sécurité. Réservé à l’édition Enterprise, il fait passer une base du plan Standard au plan Personnalisé.
- Un module existant, issu de l’Odoo Apps Store ou de l’Odoo Community Association (OCA), association à but non lucratif basée en Suisse qui diffuse des milliers de modules sous licence libre.
- Un module sur mesure : du code Python, XML et JavaScript (framework OWL) écrit pour votre entreprise.
| Levier | Hébergement possible | Qui l’adapte à chaque version |
|---|---|---|
| Configuration standard | Odoo Online, Odoo.sh ou vos serveurs | Odoo, via le service de mise à niveau (édition Enterprise) |
| Odoo Studio | Tous hébergements, en édition Enterprise et plan Personnalisé | Odoo, tant que Studio reste installé et l’abonnement actif |
| Module de l’Apps Store ou de l’OCA | Odoo.sh ou vos serveurs ; pas Odoo Online (hors modules de données sans Python) | Son éditeur ou ses mainteneurs, version par version |
| Module sur mesure | Odoo.sh ou vos serveurs ; pas Odoo Online | Vous ou votre prestataire, sauf abonnement de maintenance des personnalisations souscrit auprès d’Odoo |
La grille de décision : cinq questions, dans cet ordre
On ne passe à la question suivante que si la réponse à la précédente est non.
- Le standard le fait-il déjà, autrement ? Adapter un processus se paie une fois ; adapter le logiciel, à chaque version. Le guide de mise à niveau d’Odoo conseille d’ailleurs de supprimer tout développement qui fait doublon avec le standard.
- Studio suffit-il ? Un champ, une vue, une automatisation simple, une mise en page de rapport : Studio le fait sans code, et Odoo le maintient. Mais une automatisation qui embarque toujours plus de code Python devient du développement sans dépôt ni tests : sa place est dans un module.
- Un module existant couvre-t-il l’essentiel ? Vérifiez qu’il existe pour votre version d’Odoo, sa licence, sa dernière mise à jour, ses avis et ses dépendances. Sur l’Apps Store, chaque version d’un module payant est vendue séparément depuis Odoo 13, et le support relève de l’éditeur, pas d’Odoo.
- L’écart est-il durable et propre à votre activité ? Une règle de tarification qui fait votre différence, oui. Un rapport demandé une fois par un seul service, rarement.
- Qui maintiendra le code, avec quel budget ? Sans réponse écrite, ne lancez pas le développement.
Le choix engage aussi l’hébergement : selon la documentation d’Odoo, Odoo Online n’accepte ni modules sur mesure ni modules de l’Apps Store. Dès le premier module de code, la base passe sur Odoo.sh ou sur vos serveurs, ce qui relève, en Enterprise, du plan Personnalisé. Ce tri se fait au cadrage, besoin par besoin, avec votre intégrateur Odoo en France.
Les cas où un module sur mesure se justifie
Des règles métier que le standard ne sait pas exprimer
Un prix qui dépend de critères propres à votre métier, un contrôle qui bloque une commande tant qu’une condition manque, un statut de plus dans un flux d’intervention. Le module ajoute champs, méthodes et contrôles aux modèles existants.
Des échanges avec d’autres logiciels
Quand Odoo appelle un autre système (transporteur, plateforme, outil métier), le connecteur s’écrit dans un module, et Odoo ne compte pas ces appels comme de l’« API externe ». Quand l’autre logiciel lit ou écrit dans Odoo, il passe par l’API externe, réservée au plan Personnalisé.
L’API JSON-2, apparue avec Odoo 19, remplace les API XML-RPC et JSON-RPC, désormais dépréciées : Odoo annonce le retrait de leurs services principaux dans Odoo 22 (automne 2028) et Odoo Online 21.1 (hiver 2027). Un nouveau connecteur a intérêt à partir sur JSON-2.
Des documents et des rapports
L’éditeur de rapports PDF de Studio couvre la mise en page courante. Un module devient utile quand le document dépend d’une logique : modèles différents selon le client ou le pays, calculs absents des données, fichier d’échange au format imposé par un donneur d’ordre.
Un portail client ou fournisseur
Le portail d’Odoo donne déjà à vos clients accès aux documents des applications installées (devis, commandes, factures). Exposer d’autres données ou un parcours propre à votre activité demande un module (contrôleurs, gabarits, droits d’accès), dans la limite que rappellent les règles de l’Apps Store : un utilisateur portail peut interagir avec un devis ou une commande, pas modifier la comptabilité ou les RH.
Notre page développement Odoo sur mesure détaille ce qu’un tel projet livre.
À quoi reconnaître un module Odoo bien construit
Pas besoin de lire le Python pour juger un module : demandez à voir ces points, ou faites-les auditer.
- Il hérite, il ne modifie pas. L’ORM d’Odoo prévoit l’extension : un module ajoute des champs et surcharge des méthodes d’un modèle existant (_inherit), et modifie les vues par héritage. Aucun fichier d’Odoo ou d’un module tiers n’est retouché : toute retouche serait écrasée à la mise à jour suivante.
- Il surcharge peu, et proprement. Les règles de codage d’Odoo demandent des méthodes courtes, qui prolongent la méthode d’origine plutôt que de la réécrire, et proscrivent la validation manuelle des transactions (cr.commit()) hors cas exceptionnels.
- Il est testé. Odoo fournit tests Python, tests JavaScript et « tours » simulant un parcours utilisateur ; sur Odoo.sh, les branches de développement exécutent les tests unitaires par défaut.
- Il est déclaré correctement. Le manifeste liste toutes les dépendances, indique une licence et une version préfixée par celle d’Odoo (par exemple 20.0.1.0.0).
- Il est documenté : ce qu’il change, sa configuration, ses limites, et pourquoi le standard ne suffisait pas.
- Il est conçu pour durer : peu de dépendances, des extensions de vues qui ciblent des éléments nommés plutôt qu’une position, des paramètres plutôt que des valeurs codées en dur. La documentation d’Odoo cite justement, parmi les erreurs typiques de mise à niveau, les dépendances invalides, les champs ou vues renommés, les XPath qui ne trouvent plus leur cible et les méthodes supprimées.
Rédiger la spécification d’un module sur mesure
Une bonne spécification décrit le besoin et les règles, pas la solution technique ; elle sert ensuite de base à la recette.
- Le contexte : version d’Odoo, édition, hébergement, applications et modules déjà en place.
- Le problème : qui le rencontre, à quelle fréquence, sur quel volume, et ce que coûte le contournement actuel.
- Le processus cible, étape par étape, avec les rôles et les droits de chacun.
- Les règles de gestion, une par ligne, chacune avec un exemple chiffré et ses cas limites (avoir, annulation, multi-société, devise).
- Les données : champs à créer, origine, qui les saisit, qui les voit, ce qui doit être repris de l’existant.
- Les écrans et documents : une capture annotée vaut mieux qu’un long paragraphe.
- Les échanges avec d’autres systèmes : sens, fréquence, format, comportement en cas d’erreur ou d’indisponibilité.
- Les critères d’acceptation, écrits comme des scénarios : « étant donné…, quand…, alors… ». Ils deviennent les tests automatisés du module.
- Le hors périmètre, et la trace de la décision : pourquoi la configuration, Studio et les modules existants ont été écartés.
Maintenance : ce que coûte un module à chaque version
Odoo publie une version majeure par an (Odoo 19 en septembre 2025, Odoo 20 en septembre 2026), et le support standard de chacune dure trois ans : celui d’Odoo 17 a pris fin en septembre 2026. Un module sur mesure doit donc être porté régulièrement, et la base ne peut pas être mise à niveau tant qu’une version compatible de chaque module n’existe pas.
Ce portage n’est pas couvert par défaut : le service de mise à niveau de l’abonnement Enterprise couvre le standard et les personnalisations Studio, pas les modules développés en interne ou par des tiers, partenaires Odoo compris, sauf abonnement de maintenance des personnalisations. Le contrat d’abonnement Enterprise (version 13 du 24 septembre 2026) facture cette maintenance chaque mois par tranche de 100 lignes de code. Chaque ligne a donc un coût récurrent : raison de plus pour ne développer que l’écart réel avec le standard.
Les ruptures sont réelles : Odoo 20 a par exemple remplacé les règles d’enregistrement par un domaine porté par chaque droit d’accès, et supprimé les valeurs de suivi stockées. Prévoyez au contrat qui réalise le portage, dans quel délai après la sortie d’une version et comment il est chiffré ; les tests automatisés accélèrent sa vérification.
Propriété du code : ce qu’il faut écrire au contrat
Commander un logiciel ne rend pas propriétaire du code. Bpifrance Création le rappelle : le donneur d’ordre ne devient pas automatiquement titulaire des droits, et un contrat de cession doit être annexé au contrat de développement (le code écrit par vos salariés dans leurs fonctions, lui, appartient à l’entreprise). Faites préciser :
- la cession des droits, ou la licence accordée, et son étendue, à valider avec votre conseil juridique ;
- le dépôt de code : sur Odoo.sh, le projet est relié à un dépôt GitHub, qui doit appartenir à votre organisation, et non au prestataire ;
- une licence inscrite au manifeste et compatible avec celles des dépendances (LGPL-3 pour Odoo Community, licence Odoo Enterprise pour les modules Enterprise) ;
- aucune clé d’activation, pratique que l’Apps Store interdit d’ailleurs aux modules qu’il publie ;
- la livraison des tests et de la documentation, pour qu’un autre prestataire puisse reprendre le module.
Questions fréquentes
Peut-on installer un module sur mesure sur Odoo Online ?
Non. Odoo Online n’accepte ni modules sur mesure ni modules tiers, hormis des modules de données sans Python. Il faut passer sur Odoo.sh ou sur vos serveurs ; une base en version intermédiaire (19.1 à 19.4, par exemple) doit d’abord rejoindre la version majeure suivante.
Odoo Studio est-il disponible en Community ?
Non, Studio est réservé à l’édition Enterprise. En Community, toute adaptation au-delà de la configuration passe par du code, et le service de mise à niveau d’Odoo n’est pas inclus.
Qui assure le support d’un module de l’Apps Store ?
Son éditeur, via le canal de support ouvert depuis la commande ; Odoo indique ne pas relire chaque module publié. Testez un module payant dès l’achat : le délai de deux semaines de la politique de remboursement ne vaut que sur ce canal.
Un module sur mesure fonctionne-t-il en Community et en Enterprise ?
Cela dépend de ses dépendances : un module qui étend une application réservée à Enterprise, comme la Paie ou les Abonnements, ne fonctionne qu’en Enterprise ; s’il ne dépend que d’applications Community, il fonctionne dans les deux.
Par où commencer
Listez vos besoins d’adaptation et classez chacun dans l’une des quatre lignes du tableau. Ce qui reste en « module sur mesure » mérite une spécification ; le reste se règle souvent en atelier.
C’est ainsi que travaille AZINOVE SAS, partenaire officiel Odoo à Strasbourg : ateliers sur site en Alsace, à distance en Île-de-France et ailleurs en France, et un développement limité à l’écart avec le standard. Pour la suite, voyez notre page sur le développement spécifique Odoo, ou contactez-nous pour un échange de 30 minutes sur votre liste de besoins.
Sources
- Odoo — Tarifs : plans Standard et Personnalisé, FAQ (page consultée en octobre 2026) — https://www.odoo.com/fr_FR/pricing
- Odoo — Comparaison des éditions Community et Enterprise (page consultée en octobre 2026) — https://www.odoo.com/fr_FR/page/editions
- Odoo — Documentation 20.0, Studio — https://www.odoo.com/documentation/20.0/applications/studio.html
- Odoo — Documentation 20.0, Studio : Automation rules — https://www.odoo.com/documentation/20.0/applications/studio/automated_actions.html
- Odoo — Documentation 20.0, Odoo Online — https://www.odoo.com/documentation/20.0/administration/odoo_online.html
- Odoo — Documentation 20.0, Hosting (changer d’hébergement) — https://www.odoo.com/documentation/20.0/administration/hosting.html
- Odoo Apps — FAQ (acheteurs et éditeurs de modules) — https://apps.odoo.com/apps/faq
- Odoo Apps — Vendor Guidelines — https://apps.odoo.com/apps/vendor-guidelines
- Odoo Community Association — About — https://odoo-community.org/about
- Odoo — Documentation 20.0, Standard and extended support (calendrier des versions) — https://www.odoo.com/documentation/20.0/administration/standard_extended_support.html
- Odoo — Documentation 20.0, Upgrade (service-level agreement) — https://www.odoo.com/documentation/20.0/administration/upgrade.html
- Odoo — Documentation 20.0, Upgrade a customized database — https://www.odoo.com/documentation/20.0/developer/howtos/upgrade_custom_db.html
- Odoo SA — Odoo Enterprise Subscription Agreement, version 13 (24 sept. 2026) — https://www.odoo.com/documentation/20.0/legal/terms/enterprise.html
- Odoo — Odoo 20 Release Notes (septembre 2026) — https://www.odoo.com/odoo-20-release-notes
- Odoo — Documentation 20.0, ORM API : Inheritance and extension — https://www.odoo.com/documentation/20.0/developer/reference/backend/orm.html
- Odoo — Documentation 20.0, Coding guidelines — https://www.odoo.com/documentation/20.0/contributing/development/coding_guidelines.html
- Odoo — Documentation 20.0, Testing Odoo — https://www.odoo.com/documentation/20.0/developer/reference/backend/testing.html
- Odoo — Documentation 20.0, Odoo.sh : Branches — https://www.odoo.com/documentation/20.0/administration/odoo_sh/getting_started/branches.html
- Odoo — Documentation 20.0, Odoo.sh : Create a project — https://www.odoo.com/documentation/20.0/administration/odoo_sh/getting_started/create.html
- Odoo — Documentation 20.0, External JSON-2 API — https://www.odoo.com/documentation/20.0/developer/reference/external_api.html
- Odoo — Documentation 20.0, External RPC API (avis de dépréciation) — https://www.odoo.com/documentation/20.0/developer/reference/external_rpc_api.html
- Odoo — Documentation 20.0, Licenses — https://www.odoo.com/documentation/20.0/legal/licenses.html
- Bpifrance Création — Protection juridique d’un logiciel (juin 2026) — https://bpifrance-creation.fr/encyclopedie/trouver-proteger-tester-son-idee/proteger-son-idee/protection-juridique-dun-logiciel



