Module Odoo App Store

Export JSON pour Odoo

Odoo sait exporter en XLSX et en CSV. Deux formats faits pour être lus par un tableur, et mal adaptés dès qu'un programme doit reprendre les données : ni structure imbriquée, ni typage, ni distinction entre un libellé affiché et la valeur qu'il représente. Ce module ajoute le JSON à la liste des formats d'export, au même endroit que les autres, avec les mêmes modèles d'export réutilisables.

Auteur : Mangono
Catégorie : Extra Tools
Prix : gratuit
Voir sur l'App Store Odoo Nous contacter

Problème résolu

Sortir des données d'Odoo pour les donner à un autre système passe le plus souvent par un fichier. XLSX et CSV font l'affaire quand un humain relit le résultat ; ils deviennent encombrants quand c'est un programme qui le consomme. Il faut alors deviner les types, retrouver les relations aplaties en colonnes, et se méfier des libellés traduits qui changent avec la langue de l'utilisateur.

Le JSON supprime ces frictions : la structure est conservée, les types aussi, et le fichier se lit tel quel par à peu près tous les langages. Le module l'ajoute sans rien déplacer des habitudes existantes.

Comment cela s'utilise

Depuis n'importe quelle vue liste, on sélectionne des enregistrements, puis Action › Exporter. La fenêtre d'export habituelle propose désormais le format JSON à côté de XLSX et CSV. On choisit ses champs, on enregistre le modèle d'export si l'on compte le réutiliser, et le fichier est téléchargé.

Rien de nouveau à apprendre, donc : c'est l'écran d'export d'Odoo, avec un format de plus.

Le détail qui compte : les champs de sélection

Un champ de sélection Odoo a deux visages. Ce que l'utilisateur voit, « Bon de commande », et la valeur stockée, sale. Un export classique ne rend que le premier, qui dépend de la langue de session : le programme qui relit le fichier compare alors des libellés traduits, et se trompe le jour où quelqu'un exporte en anglais.

Pour chaque champ de sélection exporté, le module ajoute automatiquement une entrée tech_<nom_du_champ> contenant la clé technique. Exporter state produit donc à la fois le libellé lisible et tech_state: "draft". Le fichier reste compréhensible par un humain tout en étant exploitable sans ambiguïté par une machine.

L'ajout n'écrase jamais un champ existant : si le modèle possède déjà un tech_state, le sien est conservé.

À quoi cela sert, en pratique

  • Alimenter un générateur de documents. C'est l'usage d'origine : le module Carbone.io, que nous développons également, attend ses données en JSON.
  • Transmettre un jeu de données à un prestataire sans lui ouvrir un accès à la base, ni écrire un service pour l'occasion.
  • Préparer une reprise ou une migration, en extrayant un périmètre précis dans un format qu'un script relit sans conversion.
  • Constituer des jeux d'essai à partir de données réelles, pour une recette ou un développement.

Installation

Installation standard depuis Paramètres › Applications, en mode développeur. Le module ne demande aucune configuration : le format apparaît dans la fenêtre d'export dès l'activation.

  • Dépendances : base et web, tous deux natifs.
  • Odoo Community, version 19. Une version 18 existe également.
  • Publié et maintenu par Mangono sur la place de marché d'Odoo.