Leçon 2 · 35 min · Accès libre
Importer vos contacts et vos produits depuis un fichier CSV
- 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 et 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).
| Nom | Ville | Pays |
|---|---|---|
| Atelier des Pertuis (essai) | — | France |
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.
| Colonne du fichier | Champ Odoo | Exemple |
|---|---|---|
| id | ID externe | pertuis_gabut |
| name | Nom | Restaurant Le Gabut |
| is_company | Est une société | 1 |
| country_id | Pays | France |
| customer_rank | Rang client | 1 |
À 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.
Fichier CSVavec une colonne id
Correspondancecolonnes et champs
Testerrien n'est écrit
Importercréation ou mise à jour
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 |
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.
- 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.
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.
Voir le corrigé
Résultat attendu : 8 contacts de l'Atelier (5 clients et 3 fournisseurs), 8 produits, et toujours un seul Restaurant Le Gabut après la réimportation, avec le nouveau numéro.
- Contacts
Ouvrez Contacts, passez en vue liste si besoin, cliquez sur l'engrenage à côté du titre puis sur Importer des enregistrements. Chargez contacts-atelier-des-pertuis.csv. Vérifiez le séparateur (point-virgule) et l'encodage (UTF-8) : l'aperçu doit montrer des noms bien accentués comme « Hôtel des Minimes ». Toutes les colonnes sont reconnues. Cliquez sur Tester : aucun message d'erreur. Cliquez sur Importer.
- Produits
Ouvrez Ventes › Produits › Produits, puis même démarche avec produits-atelier-des-pertuis.csv. Si la colonne is_storable n'a pas de champ, c'est qu'Inventaire n'est pas activé : activez-le, revenez et rechargez le fichier.
- Vérification
Dans Contacts, vous voyez les 8 fiches de l'Atelier, plus votre société et votre propre fiche d'utilisateur, créées avec la base. Côté produits, la liste des Ventes n'en montre que 7 : elle est filtrée par défaut sur les produits qui peuvent être vendus, et la planche de chêne PLA-CH-25 ne se vend pas (sale_ok = 0). Retirez le filtre dans la barre de recherche : les 8 produits apparaissent.
- Réimportation
Ouvrez le fichier des contacts dans un éditeur de texte (ou un tableur, en l'enregistrant ensuite en CSV UTF-8 avec des points-virgules), remplacez 05 46 00 00 01 par 05 46 00 00 10 sur la ligne pertuis_gabut, puis réimportez. Comme l'identifiant pertuis_gabut existe déjà, Odoo met la fiche à jour au lieu d'en créer une deuxième.
- Bonus
Créez un fichier personnes-atelier-des-pertuis.csv avec ces lignes, puis importez-le depuis Contacts :
id name parent_id/id function pertuis_gabut_hugo Hugo Martin pertuis_gabut Gérant pertuis_minimes_lea Léa Bernard pertuis_minimes Achats pertuis_maree_ines Inès Robin pertuis_maree pertuis_salines_paul Paul Girard pertuis_salines La colonne parent_id/id correspond au champ Société liée, désigné par son identifiant externe ; function correspond au poste occupé. Ouvrez la fiche du Restaurant Le Gabut : Hugo Martin apparaît dans l'onglet des contacts et adresses, et il reprend l'adresse du restaurant.
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.