Comment un programme dialogue-t-il avec Odoo ?
Un programme dialogue avec Odoo en appelant les méthodes de ses modèles. Dans Odoo, chaque type de donnée est un modèle : res.partner pour les contacts, sale.order pour les commandes de vente, et ainsi de suite pour les articles, les factures ou les stocks. L'API externe donne accès aux méthodes publiques de ces modèles, y compris les méthodes génériques de lecture, de recherche, de création et de modification.
Avec Odoo 19, la porte d'entrée recommandée est l'API JSON-2. Sa documentation officielle, dans sa version 19.0, en fixe les règles :
- l'adresse contient le modèle et la méthode, par exemple /json/2/res.partner/read ;
- le corps de la requête est un objet JSON qui regroupe les identifiants des enregistrements (ids), le contexte et tous les arguments de la méthode, obligatoirement nommés ;
- une clé d'API, envoyée dans l'en-tête Authorization (bearer), remplace le couple identifiant et mot de passe ; Odoo en déduit l'utilisateur courant ;
- l'en-tête X-Odoo-Database, facultatif, ne sert que lorsqu'un même serveur héberge plusieurs bases et que l'adresse ne suffit pas à désigner la bonne.
| Critère | API JSON-2 | XML-RPC et JSON-RPC |
|---|---|---|
| Statut | API de référence depuis Odoo 19 | Dépréciées depuis la version 19.0, suppression annoncée pour Odoo 22 (automne 2028) |
| Authentification | Clé d'API dans un en-tête HTTP | Base, identifiant d'utilisateur et mot de passe (ou clé d'API) transmis à chaque appel |
| Arguments | Nommés uniquement | Positionnels, plus des arguments nommés (execute_kw) |
| Cas typique | Toute nouvelle intégration | Intégrations existantes, bases antérieures à Odoo 19 |
Plan, version, notifications : ce qu'il faut vérifier avant de chiffrer
Trois vérifications précèdent toute estimation d'une intégration Odoo.
Le plan. Sur Odoo Online, la version hébergée par l'éditeur, la documentation d'Odoo est explicite : l'accès aux données par l'API externe n'est disponible que sur les plans Custom, et pas sur les plans One App Free ou Standard. Cette condition peut changer le coût des licences : elle se règle avant le cadrage technique. Si elle remet en cause le choix d'Odoo, notre page sur les alternatives à Odoo peut aider.
La version. Une intégration écrite pour une version antérieure à Odoo 19 passe par XML-RPC ou JSON-RPC. Elle répond encore sous Odoo 19, mais ces API sont dépréciées : la documentation d'Odoo annonce leur retrait pour Odoo 22 (automne 2028), et dès la version Online 21.1 (hiver 2027) sur Odoo Online. Toute intégration neuve vise donc JSON-2, et toute intégration existante doit inscrire sa migration au plan de maintenance.
Les notifications. L'API externe répond aux appels qu'on lui adresse. Pour savoir qu'une commande a changé, deux voies : interroger Odoo à intervalles réguliers sur les enregistrements modifiés depuis le dernier passage, ou faire envoyer par Odoo une notification vers votre logiciel, ce qui demande un paramétrage ou un développement côté Odoo, à étudier selon votre version et votre plan. Le choix se fait au cadrage, avec la personne qui administre votre base.
Exemples de flux entre Odoo et un outil spécifique
- Portail de commande pour les revendeurs. Un revendeur commande sur un portail sur mesure qui affiche ses prix négociés. Le portail lit articles et tarifs dans Odoo, crée la commande de vente au nom du bon contact, puis la confirme par un second appel. L'équipe ADV la retrouve dans Odoo comme si elle l'avait saisie.
- Application des techniciens. L'application mobile de maintenance fonctionne hors ligne chez le client. Au retour du réseau, elle envoie à Odoo le temps passé et les pièces consommées ; la facturation part d'Odoo, sans ressaisie de bons papier.
- Compteurs d'atelier. Un automate compte les pièces bonnes et les rebuts d'une ligne de production. Un petit service lit ces compteurs et met à jour les quantités produites dans Odoo à chaque fin de poste. Ce type de liaison entre automates et logiciel de gestion fait partie des compétences internes de YMHB Web.
- Configurateur de devis. Un configurateur en ligne calcule une menuiserie ou une machine selon les options choisies, puis crée le devis et ses lignes dans Odoo : le commercial n'a plus qu'à le relire et l'envoyer.
- Vue de direction. Chaque nuit, un service lit dans Odoo commandes, factures et marges, les croise avec les données d'un autre outil et alimente un tableau de bord de pilotage.
Ces flux illustrent un montage hybride : Odoo pour la gestion standard (achats, ventes, comptabilité), un outil sur mesure pour ce qui fait la différence du métier, reliés par l'API. Notre comparatif Odoo ou ERP sur mesure détaille quand ce montage se justifie.
Les étapes d'une intégration Odoo bien menée
- Inventaire. Liste des modèles et des champs utilisés, y compris les champs personnalisés et ceux ajoutés par des modules spécifiques, et des règles de gestion qui s'y rattachent.
- Utilisateur technique. Création d'un utilisateur dédié à l'intégration, comme la documentation d'Odoo le recommande pour un usage automatisé, avec les seuls droits nécessaires, et d'une clé d'API à son nom. Les appels s'exécutent au nom de cet utilisateur, ce qui rend l'historique d'Odoo lisible.
- Base de test. Les essais se font sur une copie de la base, jamais en production : une commande créée par erreur y déclencherait de vrais mouvements.
- Correspondances. Une table relie l'identifiant de chaque client, article ou commande dans votre logiciel à son identifiant Odoo. C'est elle qui permet d'éliminer les doubles saisies sans créer de doublons.
- Construction flux par flux. D'abord le flux qui touche l'argent ou le stock, testable en permanence sur la base de test.
- Mise en service sous contrôle. Pendant les premiers jours, les résultats sont vérifiés à la main avant de faire confiance au flux.
Montées de version, droits, reprises : les risques à anticiper
- Les montées de version. Une nouvelle version d'Odoo peut renommer un champ ou modifier le comportement d'une méthode. Chaque montée de version passe par une nouvelle recette des flux sur la base de test, avant la production.
- Les modules d'un intégrateur. Si un intégrateur Odoo a ajouté des modules à votre base, l'intégration dépend de leurs champs : il est associé au cadrage.
- Les enchaînements d'appels. Créer une commande puis la confirmer, ce sont deux appels distincts. Si le second échoue, le premier reste : le service d'intégration sait reprendre là où il s'est arrêté.
- La sobriété des lectures. Sur une base hébergée, on ne demande que les champs utiles et on regroupe les lectures, plutôt que de lire chaque enregistrement un par un.
- La clé d'API. Elle ouvre ce que son utilisateur peut faire : elle se range dans un coffre de secrets, jamais dans le code, et se remplace au départ d'un prestataire.
- Les contacts. Les contacts d'Odoo incluent des personnes physiques : seuls les champs nécessaires circulent, et le flux est inscrit au registre des traitements.
Module Odoo, connecteur ou service externe : que choisir ?
Trois voies existent ; la bonne dépend de l'endroit où vit la règle de gestion.
| Voie | Quand elle convient | Limite |
|---|---|---|
| Module développé dans Odoo (Python) | La règle concerne surtout Odoo : un champ, un écran, un calcul | À reprendre à chaque montée de version ; affaire de spécialiste Odoo |
| Connecteur ou outil d'automatisation du marché | Deux logiciels connus, flux simple, volume modéré | Peu de maîtrise de la reprise après erreur |
| Service d'intégration externe | Logiciel spécifique ou ancien, correspondances riches, plusieurs outils autour d'Odoo | Un composant de plus à héberger et à surveiller |
YMHB Web intervient sur la troisième voie et sur les applications construites autour d'Odoo. Quand le besoin relève d'un module interne, un intégrateur Odoo est souvent mieux placé, et nous le disons. Pour départager les outils d'automatisation, voir notre comparatif n8n, Make ou Zapier.
Ce que vous récupérez à la fin du projet
Le service d'intégration est écrit en technologies standard (Node.js, PostgreSQL), déposé dans votre dépôt de code et hébergé sur votre compte. Vous recevez la fiche de chaque flux (modèle Odoo, champs, sens, fréquence, règles de reprise), le journal des échanges consultable par votre équipe, les alertes en cas d'échecs répétés et la procédure de remplacement de la clé d'API. Le code vous appartient au paiement intégral : un autre prestataire peut le reprendre sans repartir de zéro. Notre approche de ces composants est décrite sur la page API et microservices.
Questions fréquentes
Faut-il un abonnement particulier pour utiliser l'API d'Odoo ?
Sur Odoo Online, oui. La documentation d'Odoo indique que l'accès aux données par l'API externe n'est disponible que sur les plans Custom, et qu'il ne l'est pas sur les plans One App Free et Standard. Cette condition se vérifie avant tout développement, car elle peut modifier le coût des licences Odoo de l'entreprise.
XML-RPC fonctionne-t-il encore avec Odoo 19 ?
Oui, les API XML-RPC et JSON-RPC répondent encore sous Odoo 19, mais la documentation d'Odoo les marque comme dépréciées depuis la version 19.0 et annonce leur suppression pour Odoo 22 (automne 2028), et dès la version Online 21.1 (hiver 2027) sur Odoo Online. L'API JSON-2 les remplace. Une intégration existante sur XML-RPC doit donc prévoir sa migration vers JSON-2 dans son plan de maintenance.
Au nom de qui l'API d'Odoo crée-t-elle les enregistrements ?
Avec l'API JSON-2, Odoo déduit l'utilisateur courant de la clé d'API envoyée dans l'en-tête de la requête. Les enregistrements sont donc créés ou modifiés au nom de cet utilisateur. La bonne pratique consiste à créer un utilisateur technique dédié à l'intégration, avec les seuls droits nécessaires, plutôt que d'utiliser la clé d'un administrateur.
Odoo peut-il prévenir mon logiciel quand une commande change ?
L'API externe d'Odoo répond aux appels qu'on lui adresse. Pour suivre les changements, la méthode la plus simple consiste à interroger Odoo à intervalles réguliers sur les enregistrements modifiés depuis le dernier passage. Faire envoyer une notification par Odoo vers votre logiciel demande un paramétrage ou un développement côté Odoo, à étudier selon la version et le plan : le choix se fait au cadrage.
Faut-il passer par un intégrateur Odoo pour connecter un logiciel ?
Pas forcément. Un service externe qui appelle l'API JSON-2 ne modifie pas Odoo et peut être construit par un développeur qui maîtrise l'API. Un intégrateur Odoo devient utile quand il faut un module à l'intérieur d'Odoo (champ, écran, règle de calcul) ou quand il gère déjà des modules spécifiques sur votre base, qu'il faut alors associer au projet.
À lire aussi
Sources
- Odoo, documentation officielle (dépôt GitHub, branche 19.0) : External JSON-2 API (modèle et méthode dans l'URL, arguments nommés, clé d'API en en-tête Authorization, X-Odoo-Database, plans Custom sur Odoo Online, utilisateurs dédiés, sale.order, retrait des API RPC dans Odoo 22)
- Odoo, documentation officielle (dépôt GitHub, branche 19.0) : External RPC API (dépréciation en 19.0, retrait annoncé pour Odoo 22 et Online 21.1, execute_kw, authentification par base, identifiant et mot de passe ou clé d'API)
- Odoo, documentation officielle (dépôt GitHub, branche 19.0) : Odoo Online, exemple d'appel JSON-2 avec clé d'API
