# Importer vos contacts et vos produits depuis un fichier CSV

Source : https://serenite.tech/formation/demarrer/02-importer-donnees/

Leçon gratuite du module « Démarrer : votre terrain d'entraînement » (formation Odoo pas à pas, Alexandre Petit). Rédigé pour Odoo 19 et 20, mis à jour le 2 novembre 2026.

> Dans cette leçon • Trouver la fonction d'import dans Odoo • Faire correspondre les colonnes du fichier aux champs d'Odoo • Comprendre la colonne id (identifiant externe) pour réimporter sans doublons • Tester un import avant de l'exécuter et corriger les erreurs fréquentes

Pour importer des contacts dans Odoo, ouvrez la liste des contacts, cliquez sur l'icône d'engrenage à côté du titre, puis sur **Importer des enregistrements**. Chargez votre fichier CSV ou Excel, vérifiez que chaque colonne correspond au bon champ, cliquez sur Tester, puis sur Importer. Avec une colonne **id**, vous pourrez réimporter le même fichier pour corriger vos données, sans créer de doublons.

Dans cette leçon, vous remplissez votre essai avec les 8 contacts et les 8 produits de l'Atelier des Pertuis. C'est la même méthode que pour reprendre les données d'un ancien logiciel ou d'un tableur : ce que vous apprenez ici vous servira le jour de votre vrai démarrage.

## Que contiennent les fichiers de l'Atelier des Pertuis ?

Téléchargez les deux fichiers : [contacts-atelier-des-pertuis.csv](https://serenite.tech/assets/formation/fichiers/contacts-atelier-des-pertuis.csv) et [produits-atelier-des-pertuis.csv](https://serenite.tech/assets/formation/fichiers/produits-atelier-des-pertuis.csv). Ce sont des fichiers texte : une ligne par enregistrement, des colonnes séparées par des points-virgules, encodés en UTF-8 (pour que les accents passent bien).

| Colonne | Ce qu'elle contient | Exemple |
| --- | --- | --- |
| id | L'identifiant externe : un code unique que vous choisissez | pertuis_gabut |
| name | Le nom du contact | Restaurant Le Gabut |
| is_company | 1 pour une société, 0 pour un particulier | 1 |
| street, zip, city, country_id | L'adresse, le pays écrit en toutes lettres | 12 quai du Gabut, 17000, La Rochelle, France |
| email, phone | Les coordonnées (fictives) | contact@legabut.example |
| customer_rank, supplier_rank | 1 si c'est un client, 1 si c'est un fournisseur : Odoo les propose en premier dans les ventes ou dans les achats | 1 et 0 |

Le fichier des produits suit la même logique : **default_code** (la référence interne, comme TAB-CH-180), **name**, **type** (consu pour un bien, service pour un service), **is_storable** (1 si Odoo doit suivre le stock), **list_price** (prix de vente HT), **standard_price** (coût), **uom_id** (unité : Unités ou Heures), **sale_ok** et **purchase_ok** (peut être vendu, peut être acheté).

> **Bon à savoir :** les en-têtes des fichiers sont les noms techniques des champs d'Odoo. C'est volontaire : Odoo les reconnaît tout seul, vous n'avez presque rien à faire correspondre. Avec vos propres fichiers, les en-têtes seront plutôt « Nom », « Ville »… et Odoo vous proposera la correspondance.

## Où se trouve l'import dans Odoo ?

L'import se lance depuis la liste des enregistrements que vous voulez créer. Pour les contacts, ouvrez l'application **Contacts** ; pour les produits, ouvrez `Ventes › Produits › Produits` (ou le menu Produits de l'Inventaire).

(Illustration : Maquette simplifiée : selon votre version, l'entrée « Importer des enregistrements » se trouve sous l'engrenage à côté du titre ou dans le menu des favoris de la recherche.)

## Comment faire correspondre les colonnes ?

Après avoir chargé le fichier, Odoo affiche l'écran d'import : à gauche les options de lecture du fichier, au centre une ligne par colonne avec le champ Odoo choisi. Vérifiez trois choses.

  
- Les options de lecture

Séparateur : **point-virgule**. Encodage : **UTF-8**. Odoo les devine en général tout seul ; s'il se trompe, l'aperçu est illisible.

  
- La correspondance des colonnes

Chaque colonne du fichier doit pointer vers un champ Odoo. Une colonne sans correspondance est ignorée : choisissez le bon champ dans la liste, ou laissez « Ne pas importer » si elle ne sert à rien.

  
- La colonne id

Elle doit pointer vers **ID externe**. C'est elle qui évitera les doublons.

(Illustration : Maquette simplifiée de l'écran d'import : les libellés des champs et des boutons peuvent varier selon votre version d'Odoo.)

## À quoi sert la colonne id (identifiant externe) ?

L'identifiant externe est une étiquette unique que vous collez sur chaque enregistrement : pertuis_gabut désigne le Restaurant Le Gabut, et lui seul. Lors d'un nouvel import, Odoo regarde cette étiquette :

- si elle existe déjà, Odoo **met à jour** la fiche existante ;

- si elle n'existe pas, Odoo **crée** une nouvelle fiche.

Exemple : le restaurant change de numéro. Vous corrigez le téléphone dans le fichier, vous réimportez, et la fiche est mise à jour. Sans colonne id, Odoo aurait créé un deuxième « Restaurant Le Gabut ». L'identifiant sert aussi à relier les données entre elles : une colonne **parent_id/id** contenant pertuis_gabut rattache une personne, comme Hugo Martin, à la société du restaurant.

Schéma : Fichier CSV → Correspondance → Tester → Importer

## Pourquoi tester avant d'importer ?

Le bouton Tester fait tout le travail de l'import **sans rien enregistrer**. Odoo lit chaque ligne, vérifie les valeurs et affiche les erreurs, ligne par ligne. Tant que le test n'est pas propre, n'importez pas : corrigez le fichier ou la correspondance, puis testez à nouveau.

> **Attention :** un import ne s'annule pas d'un clic. Si vous importez 300 lignes avec une erreur, il faudra les corriger par un nouvel import (grâce à la colonne id) ou les archiver à la main. D'où la règle : on teste toujours.

## Quelles sont les erreurs d'import les plus fréquentes ?

| Ce que vous voyez | La cause | La solution |
| --- | --- | --- |
| Toutes les données dans une seule colonne | Mauvais séparateur | Choisissez « point-virgule » dans les options |
| Des accents illisibles (Ã© au lieu de é) | Mauvais encodage, souvent après un enregistrement par Excel | Choisissez l'encodage du fichier, ou enregistrez-le en « CSV UTF-8 » |
| La colonne is_storable n'a pas de champ | L'application Inventaire n'est pas installée | Activez Inventaire, puis rechargez le fichier |
| Valeur introuvable pour Pays ou Unité | Faute de frappe (« Frnace ») ou libellé différent (« Unité » au lieu de « Unités ») | Corrigez la valeur dans le fichier |
| Prix à 0 ou refusés | Virgule décimale après une modification dans un tableur | Réglez le séparateur décimal sur « virgule » |
| Des fiches en double | Import refait sans colonne id | Gardez toujours la colonne id ; archivez les doublons |

> Le conseil de l'expert Sur un vrai démarrage, je commence toujours par un fichier de deux ou trois lignes. Si le test et l'import sont propres, je lance le fichier complet. Et je garde ce fichier comme référence : c'est lui que je corrige et réimporte, jamais les fiches une par une.

> À retenir • L'import se lance depuis la liste : engrenage à côté du titre, puis Importer des enregistrements. • Vérifiez séparateur, encodage et correspondance de chaque colonne. • La colonne id (identifiant externe) permet de réimporter pour mettre à jour, sans doublons. • Testez toujours avant d'importer : un import ne s'annule pas d'un clic.

Exercice
  

### Remplissez votre essai avec les données de l'Atelier des Pertuis

  

Dans votre essai Odoo (leçon 1), importez les deux fichiers fournis, puis prouvez que la colonne id évite les doublons.

  

| Fichier 1 | contacts-atelier-des-pertuis.csv (8 lignes) |
| --- | --- |
| Fichier 2 | produits-atelier-des-pertuis.csv (8 lignes) |
| Modification | Téléphone du Restaurant Le Gabut : 05 46 00 00 10 |
| Bonus : personnes à rattacher | Hugo Martin (gérant, Restaurant Le Gabut) · Léa Bernard (achats, Hôtel des Minimes) · Inès Robin (Boutique Marée Haute) · Paul Girard (Camping Les Salines) |

  
    
- Importez les contacts

Depuis l'application Contacts. Testez, puis importez.

    
- Importez les produits

Vérifiez d'abord que l'application Inventaire est activée. Testez, puis importez.

    
- Vérifiez

Combien de contacts de l'Atelier et combien de produits voyez-vous ? Retrouvez la planche de chêne.

    
- Réimportez

Changez le téléphone du Restaurant Le Gabut dans le fichier, réimportez, et vérifiez qu'il n'y a toujours qu'un seul restaurant.

    
- Bonus

Créez un petit fichier qui rattache les quatre personnes à leur société, grâce à une colonne parent_id/id.

## Questions fréquentes

### Peut-on importer un fichier Excel dans Odoo ?

Oui. Odoo accepte les fichiers CSV et les classeurs Excel ou LibreOffice. Le CSV reste le plus prévisible : pensez à l'enregistrer en UTF-8 pour garder les accents.

### Comment annuler un import dans Odoo ?

Il n'y a pas de bouton pour annuler un import. On corrige en réimportant le fichier avec la colonne id, ou on archive les fiches créées par erreur. D'où l'intérêt de toujours cliquer sur Tester avant Importer.

### Comment importer mes contacts depuis Gmail ou Outlook ?

Exportez d'abord vos contacts au format CSV depuis votre messagerie, puis importez ce fichier dans l'application Contacts. Odoo vous propose de faire correspondre chaque colonne (nom, email, téléphone) au bon champ.
