Aller au contenu principal
Odoo 20 · Guide technique

Odoo 20 est là : ce qui change pour vos intégrations et connecteurs

Odoo 20.0 FINAL est publié. Quatre points cassent les connecteurs tiers (l'un d'eux, jusqu'au 31 octobre, sans afficher la moindre erreur) et voici comment nous les avons vérifiés dans le code réel avant de porter les nôtres.

Code source d'Odoo 20 relu ligne par ligne avant de porter les connecteurs

Odoo 20.0 FINAL est sorti après l'Odoo Experience de Bruxelles (24–26 septembre 2026) et il est déjà publié sur l'App Store de Odoo. Avant de porter quoi que ce soit, nous avons lu le code source réel (pas un changelog ni un blog tiers) pour savoir ce qui casse un connecteur qui fonctionne aujourd'hui sur Odoo 19. Voici ce que nous avons trouvé, avec le fichier et la ligne où nous l'avons vérifié.

Méthode : chaque ligne du tableau provient de l'exécution de ls, grep ou git log sur /srv/odoo-fuente/odoo-20.0 et /srv/odoo-fuente/enterprise-20.0 (commits 17ff827a1 et e5186134, 26 et 27 septembre 2026), et non d'une lecture sur Odoo 20 ailleurs.

Les quatre ruptures que nous avons vérifiées

Ce qui disparaîtCe qui se passe si votre module l'utiliseVérifié sur
base_vat et base_ibanLe module ne s'installe pas s'il en dépend : la validation du NIF/IBAN a été déplacée dans le noyau.addons/ du code source d'Odoo 20.0 FINAL
ir.model.access et ir.ruleIls fusionnent dans un nouveau modèle, ir.access. Les CSV de droits d'accès à l'ancien format ne sont pas lus.odoo/addons/base/models/ir_access.py + odoo/upgrade_code/19.4-00-ir-access.py
odoo.osv (le paquet entier)from odoo.osv import expression renvoie ModuleNotFoundError et le module ne se charge pas.odoo/osv/ absent du code source d'Odoo 20.0 FINAL
Le champ datas sur les pièces jointesir.attachment.create({'datas': ...}) lève AssertionError depuis le 31 octobre 2026. Jusque-là, il créait la pièce jointe avec une taille de 0, sans aucune erreur, et le PDF signé sortait vide.odoo/addons/base/models/ir_attachment.py:502 dans le code source d'Odoo 20.0 du 2 novembre 2026 (auparavant, la ligne 535)

Mise à jour du 6 novembre 2026 : jusqu'au 31 octobre, la plus dangereuse était celle des pièces jointes, car elle ne levait aucune exception : un connecteur de signature électronique qui continuait d'écrire 'datas': base64... s'installait proprement, passait le smoke test et enregistrait le PDF signé avec une taille de 0. Depuis le commit c06a07264bdb d'Odoo (« [FIX] base: remove fallback for datas »), cet create lève AssertionError: _check_contents should handle that. Le correctif ne change pas : 'raw' avec les octets non encodés, ce qui fonctionne sur Odoo 17, 18, 19 et 20.

Que vérifier avant de migrer un connecteur maison

  1. grep -rn base_vat\|base_iban __manifest__.py dans tous vos modules : s'il apparaît dans depends, le module ne s'installe pas.
  2. grep -rn 'from odoo.osv import' dans le code Python : chaque occurrence doit être remplacée par from odoo.fields import Domain.
  3. Fichiers ir.model.access.csv : lancer odoo-bin upgrade_code --script 19.4-00-ir-access, qui convertit le format, met à jour le manifeste et supprime l'ancien CSV (le script d'Odoo lui-même).
  4. Tout 'datas': base64.b64encode(...) écrit sur une pièce jointe : le remplacer par 'raw': ..., qui fonctionne de la même façon sur Odoo 17, 18, 19 et 20 : inutile d'attendre le portage pour le corriger.

Comment nous l'avons testé nous-mêmes

Chacun de nos connecteurs qui arrive sur Odoo 20 passe d'abord par un Odoo 20.0 FINAL réel avec Enterprise : il s'installe pour de bon, toute sa batterie de tests est exécutée (avec au moins un test et aucun ignoré) et il n'est publié que si tout est au vert. Installer sans erreur ne suffit pas : la rupture des pièces jointes, par exemple, n'est détectée que par un test qui crée le document (jusqu'au 31 octobre, un test qui l'ouvrait aussi), jamais par un log d'installation propre.

Avec ce critère, nous avons déjà 9 connecteurs publiés sur Odoo 20 (le détail se trouve dans cet article) et le reste du catalogue arrive module par module, au fur et à mesure qu'il passe la batterie complète, pas d'un seul coup.

Questions fréquentes

Peut-on déjà installer Odoo 20 en production ?

Odoo 20.0 FINAL est publié et disponible sur l'App Store de Odoo. Avant de migrer un déploiement avec des connecteurs personnalisés, vérifiez s'ils dépendent de base_vat, base_iban ou odoo.osv, et s'ils écrivent des pièces jointes avec 'datas'.

Pourquoi un connecteur qui s'installe bien peut-il quand même échouer sur Odoo 20 ?

Parce que l'installation vérifie seulement que le manifeste et les vues se chargent. Le changement sur les pièces jointes (champ datas) ne se manifeste pas à l'installation : depuis le 31 octobre 2026, il lève AssertionError à la création de l'enregistrement et, jusque-là, il ne donnait aucune erreur et le document était enregistré vide. Seul un test qui passe par ce code le détecte.

Liens utiles chez FlexigoTech

Nos connecteurs déjà sur Odoo 20La liste à jour, avec un lien vers chaque ficheMigrer vers Odoo 20 : checklistPour les entreprises avec des intégrations activesCatalogue de modulesPrix et versions de chacun

Ce que nous faisons à ce sujet

Intégrations sur mesureCe que ça fait, captures, versions et prix.

Votre connecteur dépend de nous ? Nous vous disons si Odoo 20 le casse

Écrivez-nous avec le nom du module et nous vous disons, d'après le code réel, si l'une de ces quatre ruptures vous concerne. Écrivez à comercial@flexigobe.com ou appelez le +34 616 809 504.

Parler à un ingénieur