Se rendre au contenu

Le modèle res.partner : Comprendre l'architecture des contacts et des partenaires d'Odoo

Un guide complet sur le modèle de contact central d'Odoo pour les développeurs et les consultants fonctionnels.
10 mars 2026 par
Le modèle res.partner : Comprendre l'architecture des contacts et des partenaires d'Odoo
Dasolo
| Aucun commentaire pour l'instant

Introduction


Dans Odoo, les modèles définissent comment les données sont structurées et stockées dans la base de données. Chaque élément de données commerciales avec lequel vous travaillez, des commandes de vente aux factures en passant par les contacts, vit dans un modèle.


Comprendre les modèles Odoo est essentiel tant pour les développeurs que pour les consultants fonctionnels. Les modèles sont la base de l'architecture des données d'Odoo. Ils définissent les champs, les relations et la logique commerciale.

Cet article se concentre sur l'un des modèles les plus importants d'Odoo : res.partner. Que vous construisiez des modules personnalisés, intégriez des systèmes externes ou configuriez des flux de travail, vous travaillerez avec ce modèle.

Qu'est-ce que le modèle res.partner


Le modèle res.partner représente les contacts, clients, fournisseurs et entreprises dans Odoo. C'est l'endroit central où toutes les informations sur les parties sont stockées.


Ce modèle dans Odoo est utilisé dans presque tous les modules. Les ventes, le CRM, la facturation, les achats et le commerce électronique font tous référence à res.partner. Lorsque vous créez un client dans les ventes, un lead dans le CRM ou un fournisseur dans les achats, vous créez ou liez un enregistrement res.partner.


Le modèle est défini dans le module de base. D'autres modules l'étendent par le biais de l'héritage des modèles Odoo. Le CRM ajoute des champs liés aux leads. La comptabilité ajoute des conditions de crédit et de paiement. Chaque module ajoute ce dont il a besoin sans dupliquer la structure de base.

Champs clés dans le modèle


Voici les champs Odoo les plus importants dans le modèle res.partner. Comprendre ceux-ci vous aidera à travailler efficacement avec les contacts et les partenaires.


1. nom

Type : Char. Ce champ stocke le nom de l'enregistrement. Pour une entreprise, c'est le nom de l'entreprise. Pour une personne, c'est le nom complet. Il est affiché dans de nombreuses vues Odoo et est l'identifiant principal du partenaire.


2. date_de_creation

Type : Datetime. Stocke la date et l'heure de la création de l'enregistrement. Géré automatiquement par Odoo. Utile pour les rapports et les audits.


3. date_de_modification

Type : Datetime. Stocke la date et l'heure de la dernière modification. Également géré automatiquement. Aide à suivre quand les données ont été mises à jour pour la dernière fois.


4. email

Type : Char. L'adresse e-mail principale. Utilisée pour les communications, la facturation et l'accès au portail. Odoo valide le format de l'e-mail lorsque cela est possible.


5. téléphone

Type : Char. Le numéro de téléphone principal. Affiché dans les formulaires de contact et utilisé pour les flux de communication.


6. mobile

Type : Char. Numéro de téléphone mobile. Souvent utilisé pour les SMS ou les notifications urgentes lorsqu'il est différent du numéro principal.


7. rue

Type : Char. La première ligne de l'adresse. Partie du bloc d'adresse standard utilisé sur les documents et formulaires.


8. rue2

Type : Char. La deuxième ligne de l'adresse. Utilisé pour les numéros d'appartement, les noms de bâtiments ou des détails d'adresse supplémentaires.


9. ville

Type : Char. La ville ou la commune. Le formatage de l'adresse peut varier selon le pays.


10. code postal

Type : Char. Code postal ou ZIP. Utilisé pour la validation d'adresse et les calculs d'expédition.


11. state_id

Type : Many2one (res.country.state). L'état ou la province. Le domaine est filtré par pays. Tous les pays n'utilisent pas d'états.


12. country_id

Type : Many2one (res.country). Le pays. Détermine le formatage des adresses, les règles fiscales et la localisation.


13. is_company

Type : Boolean. Indique si l'enregistrement est une entreprise ou une personne. Les entreprises peuvent avoir des contacts enfants. Les personnes peuvent être liées à une entreprise via parent_id.


14. parent_id

Type : Many2one (res.partner). Pour les enregistrements de contact, cela lie à l'entreprise associée. Permet la hiérarchie entreprise-contact. Lorsqu'il est défini, l'adresse et d'autres champs peuvent hériter du parent.


15. child_ids

Type : One2many (res.partner). L'inverse de parent_id. Liste tous les contacts appartenant à une entreprise. Utilisé pour naviguer d'une entreprise à ses contacts.


16. company_id

Type : Many2one (res.company). Dans les configurations multi-entreprises, cela indique à quelle entreprise Odoo le partenaire appartient. Affecte la visibilité et l'accès aux enregistrements.


17. TVA

Type : Char. Numéro d'identification fiscale ou numéro de TVA. Validé par le format du pays. Utilisez une barre oblique pour indiquer que le partenaire n'est pas soumis à la taxe. Important pour la facturation et la conformité.


18. rang_client

Type : Entier. Indique le statut du client. Odoo l'incrémente lorsque le partenaire a des ventes. Utilisé pour filtrer et prioriser les clients dans les listes et les rapports.


19. rang_fournisseur

Type : Entier. Indique le statut du fournisseur. Incrémenté lorsque le partenaire a des commandes d'achat ou des factures. Utilisé pour identifier les vendeurs.


20. id_utilisateur

Type : Many2one (res.users). Le vendeur ou l'utilisateur responsable. Utilisé pour le CRM, les équipes de vente et l'attribution d'activités.


21. type

Type : Sélection. Type d'adresse pour les contacts enfants : Contact, Facture, Livraison ou Autre. Détermine quelle adresse est utilisée sur les documents. Seulement pertinent pour les contacts sous une entreprise.


22. ref

Type : Char. Référence interne ou code. Utile pour le mapping avec des systèmes externes et la numérotation personnalisée.


23. site web

Type : Char. URL du site web. Utilisé sur le formulaire de contact et dans les contextes de commerce électronique.


24. commentaire

Type : Html. Notes internes. Visibles par les utilisateurs internes. Souvent utilisées pour des notes de vente ou des instructions spéciales.


25. actif

Type : Boolean. Indicateur de suppression douce. Lorsque False, l'enregistrement est archivé et caché des vues par défaut. Les enregistrements ne sont pas physiquement supprimés.


26. langue

Type : Sélection. Langue préférée. Les e-mails et documents envoyés à ce partenaire peuvent être traduits. Hérité du parent lorsque applicable.


27. image_1920

Type : Binaire. Image ou logo du partenaire. Odoo stocke plusieurs tailles. Utilisé dans les formulaires, rapports et le site web.


28. category_id

Type : Many2many (res.partner.category). Étiquettes ou catégories. Utilisé pour la segmentation, le filtrage et le marketing. Flexible pour la classification personnalisée.

Comment ce modèle est utilisé dans les flux de travail d'entreprise


1. Ventes et CRM

Lorsqu'un vendeur crée un devis, il sélectionne un client dans res.partner. Le même enregistrement de partenaire est utilisé pour le lead, l'opportunité et la commande. Le rang du client et user_id déterminent les rapports et l'attribution.


2. Facturation

Les factures et les factures font référence à un partenaire pour l'adresse de facturation. Le champ TVA est utilisé pour les calculs fiscaux. La limite de crédit et les conditions de paiement sont souvent stockées sur le partenaire.


3. Achats et Fournisseurs

Les bons de commande et les factures fournisseurs sont liés à res.partner. Le rang du fournisseur identifie les fournisseurs actifs. Le champ buyer_id attribue un utilisateur responsable pour la gestion des fournisseurs.


4. E-commerce et Portail

Les visiteurs du site peuvent créer des enregistrements de partenaires lors de leur inscription. Ces enregistrements sont utilisés pour les commandes, les devis et l'accès au portail. Les détails d'adresse et de contact proviennent du partenaire.


5. Multi-entreprise et Consolidation

Dans les configurations multi-entreprises, la même entité légale peut exister sous différents enregistrements de partenaires par entreprise. Le champ company_id et les règles inter-entreprises déterminent comment les données sont partagées.

Comment les développeurs étendent ce modèle


Les développeurs étendent res.partner en utilisant plusieurs modèles. L'héritage de modèle Odoo est le principal mécanisme.


Héritage de Modèle

Utilisez _inherit = 'res.partner' pour étendre le modèle. Ajoutez de nouveaux champs, remplacez des méthodes ou ajoutez des contraintes. Le modèle hérité dans Odoo conserve vos modifications dans un module séparé pour des mises à jour faciles.


Ajout de champs

Définissez de nouveaux champs Odoo dans votre modèle hérité. Utilisez le bon type de champ : Char, Many2one, Boolean, Integer, Text, Selection. Envisagez des champs dépendants de l'entreprise pour le multi-entreprise.


Extensions Python

Remplacez create, write ou unlink pour ajouter de la logique. Utilisez super() pour appeler l'original. Faites attention aux champs calculés et à leurs dépendances.


Odoo Studio

Odoo Studio vous permet d'ajouter des champs sans code. Bon pour des personnalisations rapides. Pour une logique complexe ou des mises à jour, les modules personnalisés sont plus faciles à maintenir.

Meilleures pratiques


  • Utilisez correctement la hiérarchie des contacts d'entreprise. Créez d'abord l'entreprise, puis ajoutez des contacts avec parent_id.
  • Définissez country_id pour un formatage d'adresse approprié et un traitement fiscal.
  • Utilisez commercial_partner_id lorsque vous avez besoin de l'entité de niveau supérieur pour le regroupement (par exemple, pour le crédit ou le reporting).
  • Lors de la création d'intégrations API, utilisez l'API XML-RPC ou JSON-RPC. Le modèle res.partner est entièrement exposé. Mappez les ID externes avec soin.
  • Pour les champs personnalisés, utilisez le préfixe x_ ou un préfixe de module pour éviter les conflits avec les futures versions d'Odoo.

Erreurs courantes


  • Créer des partenaires en double au lieu de rechercher ceux existants. Utilisez email_normalized ou ref pour la déduplication.
  • Confondre parent_id et company_id. parent_id est pour le lien contact-entreprise. company_id est pour Odoo multi-entreprises.
  • Oublier de définir le type sur les contacts enfants. Les adresses de facturation et de livraison ont besoin du type correct pour les documents.
  • Surcharger des méthodes de base sans appeler super(). Cela peut casser d'autres modules ou des mises à jour futures.
  • Ajouter des champs personnalisés requis sans valeurs par défaut. Les enregistrements existants échoueront à la validation lors de la mise à jour.

Conclusion


Le modèle res.partner est central dans Odoo. Il stocke les contacts, les clients et les fournisseurs. Comprendre ses champs et comment les modules l'étendent vous aidera à configurer, personnaliser et intégrer Odoo efficacement.

Que vous soyez un consultant fonctionnel cartographiant des processus d'affaires ou un développeur construisant des modules personnalisés, une bonne compréhension de res.partner vous fera gagner du temps et évitera des erreurs.

Besoin d'aide avec votre mise en œuvre Odoo ?


Dasolo aide les entreprises à mettre en œuvre, personnaliser et optimiser Odoo. Nous sommes spécialisés dans les intégrations API et le développement Odoo. Notre équipe a une grande expérience de l'architecture des données Odoo et de modèles comme res.partner.

Si vous avez besoin d'aide avec votre mise en œuvre Odoo, des modules personnalisés ou des intégrations, nous sommes là pour vous aider. Réservez une démo pour discuter de votre projet.

Le modèle res.partner : Comprendre l'architecture des contacts et des partenaires d'Odoo
Dasolo 10 mars 2026
Partager cet article
Se connecter pour laisser un commentaire.