Une adresse saisie à la main contient une faute une fois sur dix : une ville mal orthographiée, un code postal inversé, un département absent. Chacune de ces fautes coûte un courrier retourné ou une livraison retardée.
Dix-sept modules communautaires fiabilisent l'adresse — depuis le référentiel officiel des codes postaux jusqu'aux horaires auxquels il est pertinent d'appeler un contact.
Résumé
Quatre modules construisent le référentiel géographique : un modèle de codes postaux reliés aux villes, états et pays, son import depuis Geonames, les régions statistiques européennes NUTS avec leur import, et les noms d'états rendus traduisibles.
Cinq fiabilisent la saisie : l'état obligatoire pour les pays qui en ont, une troisième ligne d'adresse, la recherche par rue et par ville, un alias de recherche pour les entreprises connues sous un autre nom, et une méthode technique de découpage d'une adresse en composants.
Huit enfin complètent le contact : la langue déduite du pays, le fuseau horaire rendu visible, des adresses par défaut figées pour la livraison et la facturation, une politique d'expédition par contact, les boutons de carte et d'itinéraire, un champ fax, un second numéro de téléphone, et les créneaux d'appel d'un contact.
L'essentiel
- Un référentiel de codes postaux qui complète automatiquement ville, état et pays.
- L'import Geonames : les villes et codes postaux d'un pays entier, en une opération.
- Les régions européennes NUTS, avec leur import — utile pour les statistiques et les aides.
- L'état rendu obligatoire pour les pays qui en ont.
- Une troisième ligne d'adresse, nécessaire dans plusieurs pays.
- La recherche par rue et par ville dans la liste des contacts.
- Le fuseau horaire visible sur la fiche — il existe mais reste masqué.
- Des boutons carte et itinéraire vers le service cartographique de votre choix.
Ce que ces modules ajoutent à l'instance
| Famille | Modules | Nombre |
|---|---|---|
| Référentiel géographique | base_location, base_location_geonames_import, base_location_nuts, base_country_state_translatable | 4 |
| Fiabilité de la saisie | partner_country_state_required, partner_address_street3, partner_street_city_search, partner_search_alias, partner_address_split | 5 |
| Contact et préférences | partner_country_lang, partner_tz, partner_contact_address_default, partner_shipping_policy | 4 |
| Communication | partner_external_map, partner_fax, partner_phone_secondary, partner_phonecall_schedule | 4 |
Les menus ajoutés sont groupés dans Contacts ▸ Configuration ▸ Localisation : codes postaux, villes, import Geonames, éléments NUTS et leur import. S'y ajoutent les sites de carte dans les paramètres techniques.
Un référentiel plutôt qu'une saisie libre
Odoo laisse saisir la ville et le code postal en texte libre. Sur dix mille contacts, cela produit « Paris », « PARIS », « paris 15 » et « Paris Cedex 15 » — quatre villes pour la même, et aucune analyse géographique possible.
base_locationintroduit un référentiel de codes postaux reliant code postal, ville, état et pays. La saisie d'un code complète automatiquement le reste.base_location_geonames_importimporte en masse villes et codes postaux depuis Geonames, la base géographique publique, pays par pays.base_country_state_translatablerend le nom des états traduisible — ce qu'Odoo ne prévoit pas.base_location_nutsajoute les régions statistiques européennes NUTS, sur quatre niveaux hiérarchiques, avec leur import.
Le second est ce qui rend le premier utilisable : constituer un référentiel de codes postaux à la main est un travail de plusieurs semaines par pays. L'import le fait en une opération.
Les régions NUTS servent deux usages précis : les statistiques européennes et les dossiers de subvention, qui raisonnent dans cette nomenclature et non en départements.
Pour la France, les départements et régions sont traités par des modules dédiés, décrits dans identité française.
Fiabiliser la saisie et la recherche
| Module | Ce qu'il apporte |
|---|---|
partner_country_state_required | L'état obligatoire pour tout pays qui en possède et pour lequel l'option est activée |
partner_address_street3 | Une troisième ligne d'adresse, nécessaire dans plusieurs pays |
partner_street_city_search | La recherche par rue et par ville dans la liste des contacts |
partner_search_alias | Un alias : retrouver une entreprise sous son autre nom, son nom commercial ou son ancien nom |
partner_address_split | Une méthode technique de découpage d'une adresse en composants — brique pour d'autres modules |
L'alias de recherche résout un agacement quotidien : une entreprise rachetée, une enseigne différente de la raison sociale, une marque plus connue que le groupe. Le commercial cherche le nom qu'il connaît et ne trouve rien.
La recherche par rue et par ville paraît élémentaire, et elle ne figure pas dans la vue de recherche standard. Un livreur qui appelle depuis une adresse ne peut donc pas être aidé — sauf à connaître le nom du client.
Les préférences d'un contact
partner_country_langpermet de définir une langue par pays : la langue d'un contact est alors déduite du pays saisi. Sur une base internationale, cela évite d'envoyer des documents en français à un client allemand.partner_tzrend visible le fuseau horaire du contact — champ présent nativement dans le modèle mais non affiché sur le formulaire.partner_contact_address_defaultpermet de figer une adresse de livraison, une adresse de facturation et un contact par défaut, à la place du calcul automatique d'Odoo.partner_shipping_policydéfinit une politique d'expédition par contact — tout d'un coup ou au fur et à mesure — au lieu de la choisir sur chaque commande.
Le troisième est le plus utile dans les groupes : Odoo déduit l'adresse de facturation selon une logique hiérarchique, qui se trompe dès que l'organisation du client ne correspond pas à l'arborescence saisie. Figer les adresses supprime la discussion.
Le fuseau horaire, lui, est exploité par les modules de créneaux de livraison décrits dans réceptions et lots automatiques.
Joindre un contact : cartes, numéros, créneaux
| Module | Ce qu'il ajoute |
|---|---|
partner_external_map | Deux boutons : carte de l'adresse et itinéraire depuis votre adresse, vers le service cartographique configuré |
partner_phone_secondary | Un second numéro de téléphone — ligne directe, standard, astreinte |
partner_fax | Un champ fax, encore utilisé par certaines administrations et professions |
partner_phonecall_schedule | Les créneaux horaires auxquels il est pertinent d'appeler ce contact |
Le premier est précieux pour les métiers d'intervention : ouvrir l'itinéraire depuis la fiche client évite la recopie d'adresse dans une application de navigation — recopie où se glissent les fautes.
Les créneaux d'appel méritent mieux que leur apparence anecdotique : appeler un restaurateur à midi, un artisan à 7 h ou un cabinet médical en consultation est le meilleur moyen de ne jamais le joindre. L'information existe dans la tête du commercial ; la mettre sur la fiche la rend partageable.
Le fax, enfin, n'est pas une plaisanterie : certaines administrations, certains laboratoires et plusieurs professions réglementées l'utilisent encore comme canal officiel.
Limites connues
- L'import Geonames crée beaucoup de données : un pays complet représente des dizaines de milliers d'enregistrements. À importer pays par pays, selon les besoins.
- Le référentiel de codes postaux doit être tenu à jour : les communes fusionnent, les codes évoluent.
- Rendre l'état obligatoire bloque les saisies rapides : à activer pays par pays.
- Les régions NUTS ont une version datée : l'import correspond à un millésime de la nomenclature.
- Figer les adresses par défaut annule la logique d'Odoo : c'est le but, et cela surprend si on ne l'attend pas.
partner_address_splitest une brique technique : sans effet visible seul.
Identité technique
Les dix-sept modules viennent du dépôt OCA partner-contact, branche 18.0, tous en licence AGPL-3. base_location s'appuie sur le module d'adresse étendue d'Odoo, partner_phonecall_schedule sur les calendriers de ressources, et partner_shipping_policy sur sale_stock.
Les familles voisines : doublons et qualité des contacts, identité des personnes et identité, adresses et contacts.
Questions fréquentes
Comment éviter les villes mal orthographiées dans les adresses ?
base_location crée un référentiel de codes postaux reliés aux villes, états et pays : la saisie d'un code complète le reste. Et base_location_geonames_import l'alimente en masse depuis la base publique Geonames, pays par pays — constituer ce référentiel à la main représenterait des semaines.
Qu'est-ce que la nomenclature NUTS ?
Les régions statistiques européennes, sur quatre niveaux hiérarchiques. base_location_nuts les ajoute aux contacts avec leur import. Elles servent aux statistiques européennes et aux dossiers de subvention, qui raisonnent dans cette nomenclature plutôt qu'en départements.
Peut-on chercher un contact par sa rue ou sa ville ?
Pas dans la vue de recherche standard. partner_street_city_search l'ajoute — ce qui permet enfin d'aider un livreur qui appelle depuis une adresse sans connaître le nom du client. partner_search_alias complète en permettant de retrouver une entreprise sous un autre nom : enseigne, marque, ancien nom.
Le fuseau horaire d'un contact existe-t-il dans Odoo ?
Oui, dans le modèle — mais il n'est pas affiché sur le formulaire. partner_tz le rend visible. Il est exploité notamment par les modules de créneaux de livraison, qui comparent l'heure prévue aux préférences du client.
Comment savoir quand appeler un client ?
partner_phonecall_schedule enregistre les créneaux horaires auxquels il est pertinent d'appeler un contact, à partir des calendriers de ressources d'Odoo. Appeler un restaurateur à midi ou un artisan à 7 h est le meilleur moyen de ne jamais le joindre — et cette information vit d'ordinaire dans la tête d'un seul commercial.
Se faire accompagner
L'adresse est la donnée la plus utilisée et la moins contrôlée d'un ERP. Elle sert à livrer, à facturer, à router une facture électronique et à analyser un territoire — et elle est saisie en texte libre par vingt personnes différentes.
Nous posons donc le référentiel avant les contrôles : importer les codes postaux des pays où vous travaillez, puis activer les obligations de saisie. L'inverse produit des blocages sur une base que personne ne peut corriger. Voir les prestations d'Atalios Consulting ou demander un rappel.
Pour aller plus loin
- Doublons de contacts : détecter, fusionner, interdire
- Identité des personnes : noms, civilités et rôles
- Identité française : SIRET, régions, départements
En résumé
Un référentiel de codes postaux importé depuis Geonames plutôt qu'une saisie libre, les régions européennes pour les statistiques et les subventions, la recherche par rue et par ville, et les informations qui permettent de joindre quelqu'un — second numéro, créneaux d'appel, itinéraire. Parlons de la qualité de vos adresses.