Se rendre au contenu

Comment importer des données dans Odoo (CSV, Excel)

Importer des contacts, des produits ou des soldes d'ouverture dans Odoo est l'une des premières étapes d'un projet, et l'une des plus piégeuses. Ce tutoriel explique comment préparer un fichier CSV ou Excel, tester l'importation, gérer les champs liés et éviter les doublons.
Tutoriel OdooNiveau débutantCSV et ExcelMigration de données

En bref

  • Avant : un fichier propre, en CSV UTF-8, avec une colonne id stable.
  • Pendant : toujours cliquer sur le test avant de lancer l'importation.
  • À vérifier : les libellés exacts du menu selon votre version d'Odoo.

Pourquoi bien préparer son fichier avant d'importer ?

L'import de contacts, de produits ou de soldes d'ouverture est l'une des premières tâches d'un projet Odoo, et l'une des plus sujettes aux erreurs : accents abîmés, doublons, colonnes mal associées. La plupart de ces problèmes se règlent avant de cliquer sur Importer, en préparant bien le fichier.

PointStatutDétail
Import CSV et Excel depuis une listeConfirméDisponible dans les applications Odoo à partir des listes de données.
Test avant importConfirméLe bouton de test valide le fichier sans écrire dans la base.
Mise à jour par identifiant externeConfirméUne colonne id permet de mettre à jour au lieu de dupliquer.
Chemin exact du menu d'importÀ vérifierLe libellé et l'emplacement du bouton varient selon la version. Vérifiez dans votre instance.
Limites de taille et de durée d'un import webÀ vérifierNon confirmées ici. Pour de gros fichiers, divisez-les en lots et testez d'abord.

Avant de commencer

Faites vos premiers essais sur une copie de la base de données. Un import annulé à la main est long et risqué.

Étape 1 : comment préparer le fichier ?

  • Une ligne d'en-têtes en première ligne, avec le nom des champs
  • Un enregistrement par ligne, sans lignes vides ni cellules fusionnées
  • Dates au format AAAA-MM-JJ, nombres sans séparateur de milliers
  • Fichier enregistré en CSV UTF-8 pour préserver les accents
  • Une colonne id avec un identifiant unique et stable par ligne

Voici un exemple de fichier de contacts prêt à importer. Les accents et la colonne id sont importants.

contacts.csvcsv
id,name,email,phone,is_company
import_contact_001,Boulangerie Dubé,info@boulangeriedube.example,514 555 0101,1
import_contact_002,Atelier Tremblay,contact@ateliertremblay.example,418 555 0102,1
import_contact_003,Marie Gagnon,marie@ateliertremblay.example,418 555 0103,0

Astuce

Une façon simple d'obtenir les bons en-têtes : exportez quelques enregistrements existants depuis Odoo, puis réutilisez le fichier comme modèle.

Étape 2 : comment lancer l'importation ?

Ouvrez la liste du modèle voulu, par exemple Contacts ou Produits, puis cherchez l'action d'importation d'enregistrements dans les actions de la liste. Le libellé exact peut varier d'une version à l'autre. Chargez ensuite votre fichier.

  • Choisissez le fichier CSV ou Excel
  • Vérifiez le format (séparateur, encodage, format de date) dans les options
  • Contrôlez que chaque colonne est associée au bon champ

Étape 3 : pourquoi cliquer sur Tester avant Importer ?

Le bouton de test lit tout le fichier et signale les erreurs, sans rien écrire dans la base. Lisez chaque message : il indique la ligne et la colonne en cause. Corrigez le fichier, rechargez-le, testez de nouveau, puis seulement après lancez l'import.

Message ou symptômeCause probableCorrection
Accents abîmésFichier non enregistré en UTF-8Réenregistrer en CSV UTF-8 et recharger
Date refuséeFormat de date différentUtiliser AAAA-MM-JJ
Montant refuséSéparateur de milliers ou virgule décimaleÉcrire 1234.56, sans espace
Plusieurs enregistrements trouvésDeux valeurs portent le même nomUtiliser l'identifiant externe de la valeur
Valeur introuvableL'enregistrement lié n'existe pas encoreImporter d'abord les enregistrements liés

Étape 4 : comment gérer les champs liés et les mises à jour ?

Un champ lié (pays, catégorie, vendeur) se remplit avec le nom lisible, tant qu'il est unique. Pour lever toute ambiguïté, ajoutez /id au nom de la colonne et indiquez l'identifiant externe de la valeur.

clients_avec_pays.csvcsv
id,name,email,country_id/id
import_contact_010,Café du Port,bonjour@cafeduport.example,base.ca
import_contact_011,Studio Lavoie,info@studiolavoie.example,base.ca

Pour mettre à jour des enregistrements déjà importés, gardez la même colonne id avec les mêmes valeurs. Odoo met à jour la fiche correspondante au lieu d'en créer une seconde.

Bonne pratique

Choisissez un préfixe stable pour vos identifiants (par exemple import_contact_) et notez-le. C'est ce qui permet de réimporter sans doublons des semaines plus tard.

Dans quel ordre importer plusieurs types de données ?

  • 1. Contacts (clients et fournisseurs)
  • 2. Catégories et unités de mesure
  • 3. Produits
  • 4. Listes de prix et nomenclatures
  • 5. Documents (commandes, factures), en dernier, sur une copie de la base

Chaque étape dépend de la précédente : un produit lié à une catégorie qui n'existe pas encore sera refusé. Si votre migration vient d'un autre logiciel comptable, comme Sage 50 ou QuickBooks, un partenaire Odoo peut préparer et valider les fichiers avec vous.

Un bon import se joue avant le clic : un fichier propre, un identifiant stable et un test.

Foire aux questions sur l'importation de données dans Odoo

Comment importer des contacts ou des produits dans Odoo ?

Ouvrez la liste du modèle voulu (Contacts, Produits), lancez l'importation d'enregistrements depuis les actions de la liste, chargez un fichier CSV ou Excel, associez les colonnes aux champs d'Odoo, cliquez sur Tester l'importation, puis sur Importer une fois le test réussi.

Pourquoi faut-il tester l'importation avant d'importer ?

Le test signale les erreurs de colonnes, de format ou de valeurs sans rien écrire dans la base. Vous corrigez le fichier, puis vous importez, ce qui évite de nettoyer des enregistrements en trop.

Comment éviter les doublons quand on réimporte un fichier ?

Ajoutez une colonne d'identifiant externe (la colonne id) avec une valeur unique et stable pour chaque ligne. Si l'identifiant existe déjà, Odoo met l'enregistrement à jour au lieu d'en créer un nouveau.

Comment importer un champ lié, comme le pays ou la catégorie ?

Mettez le nom lisible dans la colonne si la valeur est unique, ou utilisez la notation avec l'identifiant externe, par exemple pays/id, pour éviter les ambiguïtés quand deux enregistrements portent le même nom.

Mes accents s'affichent mal après l'importation, que faire ?

Enregistrez le fichier au format CSV UTF-8, puis réimportez-le. C'est la cause la plus courante des caractères abîmés quand le fichier vient d'Excel.

Peut-on importer des factures ou des commandes de la même façon ?

Oui, la mécanique est la même, mais il faut importer dans le bon ordre (contacts, puis produits, puis documents) et valider le résultat sur une copie de la base avant la production.

Une migration de données à préparer ?

On nettoie, on prépare et on valide vos fichiers avec vous, avant qu'ils n'entrent dans Odoo.

Parler à un expert Kuantiik

Sources

  1. Odoo, documentation officielle sur l'exportation et l'importation de données, odoo.com : à consulter pour les libellés exacts de votre version
  2. Ecosire, bonnes pratiques d'importation CSV dans Odoo (article tiers, utilisé comme complément)
Une migration de données Odoo en préparation ? Parler à un expert
Une question sur l'importation de vos données ?

On répond sous 24h ouvrées aux questions des entreprises québécoises.

Écrire à Kuantiik

Avant de partir

Demandez une revue de vos fichiers avant l'importation dans Odoo.

Demander mon évaluation

Commencez à écrire ici ...

in Odoo
Tester et migrer un module Odoo personnalisé vers Odoo 20