Odoo Online a des limites réelles : pas de module Python personnalisé, pas de module de l'Odoo Apps Store, aucun accès au serveur ni à la base de données, et un calendrier de mises à jour fixé par Odoo. Mais la plupart des besoins spécifiques d'une PME se traitent sans migrer : Studio pour adapter les écrans et documents, actions serveur et automatisations pour les règles métier, webhooks pour échanger avec d'autres logiciels, et une application externe reliée par l'API pour le reste. Plusieurs de ces outils demandent le plan Custom : c'est le vrai critère à regarder.
Ce qu'Odoo Online ne permet pas
Commençons par les faits, tels qu'ils figurent dans la documentation et sur la page des tarifs d'Odoo :
- Pas de module personnalisé ni de module de l'Apps Store. La documentation d'Odoo le dit sans détour : Odoo Online est incompatible avec les modules personnalisés et ceux de l'Odoo Apps Store. Les modules communautaires (OCA, par exemple) sont donc exclus aussi.
- Pas d'accès au serveur. Pas de connexion SSH, pas d'accès direct à la base PostgreSQL, pas de bibliothèque Python à installer, pas de journaux du serveur à consulter. Vous pouvez en revanche télécharger à tout moment une sauvegarde complète de votre base.
- Des mises à jour imposées. Odoo Online suit les versions publiées par Odoo, y compris des versions intermédiaires. Vous êtes prévenu quelques semaines à l'avance, vous pouvez tester, mais la mise à jour finit par se faire.
- Des fonctions réservées au plan Custom. Studio, la gestion de plusieurs sociétés et l'API externe ne font pas partie du plan Standard.
Si une de ces limites bloque vraiment votre projet, l'article Odoo Online, Odoo.sh ou serveur : lequel choisir ? compare les autres formules. Sinon, voici comment contourner chacune d'elles, en résumé :
| Limite | Solution sur Odoo Online | À savoir |
|---|---|---|
| Pas de module Python personnalisé | Studio, actions serveur avec code Python | Studio demande le plan Custom |
| Pas d'accès au serveur pour planifier des tâches | Actions planifiées, automatisations basées sur une date | Exécution limitée dans le temps : traiter par lots |
| Pas de connecteur sur mesure installé dans Odoo | Webhooks entrants et sortants | Création via Studio : plan Custom |
| Écran ou calcul qu'Odoo ne sait pas faire | Application externe connectée par l'API | API externe : plan Custom |
| Plusieurs sociétés | Multi-sociétés natif dans la même base | Ajouter une société : plan Custom |
| Site web avec une logique serveur spécifique | Éditeur de site, formulaires, ou page externe reliée par l'API | Site inclus en Standard, API en Custom |
Pas de module Python : Studio et actions serveur
Odoo Studio couvre une grande partie de ce qu'on demandait autrefois à un module : ajouter des champs, créer des modèles, modifier les vues, adapter les rapports PDF, créer des automatisations. Gros avantage sur Odoo Online : selon la documentation, la mise à jour des personnalisations faites avec Studio est couverte par le contrat, tant que Studio reste installé et l'abonnement actif. J'en parle en détail dans ce qu'on peut faire avec Studio sans développeur.
Les actions serveur « Exécuter du code » permettent d'écrire du Python directement dans la base, sans module. Le code a accès à l'enregistrement concerné, au reste de la base et à une fonction de journalisation, dans un environnement restreint : on ne peut pas y importer n'importe quelle bibliothèque. C'est suffisant pour beaucoup de règles métier :
- un grossiste qui bloque la confirmation d'une commande quand l'encours du client dépasse un plafond ;
- une entreprise de services qui calcule automatiquement une date d'intervention selon le type de contrat ;
- un atelier qui génère les tâches de production à partir des lignes d'un devis signé.
Attention : Odoo précise que la maintenance de ce code n'est incluse dans aucun plan. Si une mise à jour le casse, c'est à vous ou à votre consultant de le corriger. Gardez-le court et documenté.
Pas d'accès au serveur : actions planifiées et automatisations
Sur un serveur, on programme des tâches avec l'outil du système. Sur Odoo Online, on utilise les actions planifiées, accessibles en mode développeur, qui exécutent une action serveur à intervalle régulier : chaque nuit, chaque heure, chaque lundi.
Les règles d'automatisation proposent aussi des déclencheurs temporels : par rapport à un champ date, après la création ou après la dernière modification d'un enregistrement. Exemples : relancer un devis non signé après dix jours, prévenir le responsable quand un contrat arrive à échéance dans un mois, alerter sur un stock sous le seuil.
Limite à connaître : ces tâches tournent sur une infrastructure partagée. La documentation d'Odoo.sh précise que les actions planifiées y ont un temps d'exécution limité et sont lancées « au mieux », sans garantie de fréquence inférieure à cinq minutes. Odoo ne publie pas de chiffres équivalents pour Odoo Online, mais la règle de prudence est la même : traiter les enregistrements par petits lots et ne pas compter sur une exécution à la minute près.
Intégrations : les webhooks entrants et sortants
Depuis la refonte des automatisations dans les versions récentes d'Odoo, deux mécanismes permettent d'échanger avec d'autres logiciels sans rien installer :
- Le webhook entrant (déclencheur « Sur webhook ») : Odoo génère une adresse unique. Quand un autre logiciel envoie des données à cette adresse, Odoo exécute l'action prévue, par exemple créer une piste dans le CRM ou mettre à jour une commande. Odoo insiste : cette adresse est confidentielle, car elle donne accès à votre base. On peut la régénérer à tout moment, et il faut alors la mettre à jour dans l'autre logiciel.
- Le webhook sortant (action « Envoyer une notification webhook ») : quand un événement survient dans Odoo, il envoie une requête POST contenant les champs choisis vers l'adresse d'un autre service. Un aperçu des données envoyées est disponible avant la mise en service.
Exemple concret : un outil de prise de rendez-vous externe envoie chaque nouvelle réservation à Odoo, qui crée le contact et l'activité. Dans l'autre sens, chaque commande confirmée dans Odoo est envoyée à l'outil de planification du transporteur.
Les limites : la documentation présente la création des webhooks depuis Studio (donc avec le plan Custom) ou depuis le menu des automatisations. Le webhook sortant envoie les champs sélectionnés, ce qui ne suffit pas toujours quand le service en face attend un format précis ou une authentification particulière. Dans ce cas, une petite application intermédiaire fait la traduction. N'oubliez pas non plus les intégrations natives d'Odoo (paiements en ligne, transporteurs, téléphonie, synchronisation bancaire) : la page des tarifs précise qu'elles font partie du plan Standard.
Ce qu'Odoo ne sait pas faire : une application externe connectée par l'API
Certains besoins dépassent ce que Studio et les automatisations peuvent offrir : un configurateur produit avec visuel, un portail client sur mesure, un outil de chiffrage technique, un tableau de bord de direction. La solution n'est pas de quitter Odoo Online, mais de construire l'outil à côté d'Odoo et de le relier par l'API. Odoo reste la source unique des données (clients, produits, devis, stock, factures) et l'application lit et écrit directement dedans.
Quelques exemples de ce que je construis de cette façon :
- un portail client où un client professionnel suit ses commandes et ses documents dans une interface à son métier ;
- un tableau de bord de dirigeant qui croise ventes, marge et trésorerie en un seul écran ;
- un portail interne d'installateur qui prépare l'étude technique et crée le devis, les achats et le chantier dans Odoo (voir l'étude photovoltaïque dans Odoo).
Les conditions à connaître :
- L'accès aux données par l'API externe est réservé au plan Custom. Il n'est disponible ni en Standard ni avec l'application gratuite.
- L'accès se fait avec une clé API liée à un utilisateur, et l'application ne voit que ce que cet utilisateur a le droit de voir. Les clés ont une durée de validité : leur renouvellement fait partie de la maintenance.
- Odoo 19 a introduit une nouvelle API, dite JSON-2. Les anciennes interfaces XML-RPC et JSON-RPC sont annoncées comme retirées dans Odoo Online 21.1 (hiver 2027) et Odoo 22 (automne 2028). Toute intégration construite aujourd'hui doit en tenir compte.
- Odoo ne publie pas de quota d'appels pour l'API dans sa documentation. Une application bien conçue lit les données par lots et évite d'interroger Odoo en permanence.
Le détail technique est dans l'article sur l'API externe d'Odoo.
Plusieurs sociétés et site web : ce qui passe sur Odoo Online
Le multi-sociétés fonctionne sur Odoo Online, dans une seule base : chaque société a sa comptabilité, ses journaux et ses documents, et un utilisateur peut passer de l'une à l'autre. La condition est tarifaire : la page des tarifs indique qu'ajouter une société à votre base vous fait passer automatiquement au plan Custom. Seul le plan gratuit à une application fait exception. Pour un groupe avec une société d'exploitation et une société immobilière, par exemple, c'est souvent la solution la plus simple.
Le site web et l'e-commerce sont inclus dans toutes les applications du plan Standard. L'éditeur permet de construire des pages, un blog et une boutique reliés aux produits, au stock et au CRM. La limite d'Odoo Online, c'est qu'on ne peut pas ajouter de code Python côté serveur, donc pas de page dont la logique sort de ce que les applications standard prévoient. Pour un configurateur, une prise de commande très spécifique ou un espace client métier, on revient à la solution précédente : une application externe reliée par l'API, éventuellement intégrée au site. C'est le principe des configurateurs que je réalise pour des fabricants.
Quand faut-il vraiment quitter Odoo Online ?
Je le dis franchement quand c'est le cas. Quitter Odoo Online pour Odoo.sh ou un serveur se justifie si :
- vous devez modifier en profondeur un comportement standard d'Odoo (un calcul de valorisation de stock, une logique de réservation), ce qu'une application externe ne peut pas faire ;
- un module de l'Apps Store ou un module communautaire vous est indispensable ;
- une bibliothèque Python spécifique doit tourner à l'intérieur d'Odoo ;
- vous devez maîtriser vous-même le calendrier des mises à jour.
Dans les autres cas, rester sur Odoo Online garde un Odoo standard, mis à jour par Odoo, et vos développements restent à l'abri des changements de version.
Questions fréquentes
Peut-on écrire du code Python sur Odoo Online ?
Oui, dans les actions serveur et les automatisations, avec un environnement restreint. Mais on ne peut pas installer de module Python, ni personnalisé ni issu de l'Apps Store.
Une automatisation Odoo peut-elle envoyer des données à un autre logiciel ?
Oui, avec l'action « Envoyer une notification webhook », qui envoie les champs choisis en POST vers l'adresse du service. Odoo peut aussi recevoir des données via un webhook entrant.
Faut-il le plan Custom pour connecter une application à Odoo Online ?
Oui. L'API externe, utilisée par un logiciel tiers pour lire ou écrire dans Odoo, est réservée au plan Custom.
Peut-on gérer plusieurs sociétés sur Odoo Online ?
Oui, dans une seule base. Ajouter une société fait passer la base au plan Custom, sauf sur le plan gratuit à une application.
Les personnalisations Studio survivent-elles aux mises à jour ?
Selon Odoo, leur mise à jour est couverte tant que Studio reste installé et l'abonnement actif. Le code Python des actions serveur, lui, n'est pas couvert.
Vous vous demandez si votre besoin tient sur Odoo Online ? Décrivez-le-moi via le formulaire de projet. Je vous montre ensuite, dans une démo gratuite construite sur votre cas, comment le réaliser sans changer d'hébergement, ou je vous dis honnêtement si ce n'est pas possible.