Passa al contenuto

Il modello res.partner: Guida all’architettura contatti di Odoo

Guida completa al modello centrale dei contatti in Odoo per sviluppatori e consulenti funzionali
10 marzo 2026 di
Il modello res.partner: Guida all’architettura contatti di Odoo
Dasolo
| Ancora nessun commento

Introduzione


In Odoo i modelli definiscono la struttura dei dati e come vengono salvati nel database. Ogni informazione operativa — ordini, fatture, anagrafiche — è rappresentata da un record in un modello specifico.


Conoscere i modelli di Odoo è fondamentale sia per gli sviluppatori sia per i consulenti funzionali. I modelli costituiscono l'ossatura dei dati: stabiliscono campi, relazioni e la logica di business che governa le entità aziendali.

Questo articolo mette sotto la lente uno dei modelli più usati in Odoo: res.partner. Che tu stia creando moduli personalizzati, sincronizzando sistemi esterni o impostando workflow, prima o poi lavorerai con questo modello.

Cos'è il modello res.partner


Il modello res.partner rappresenta le persone e le aziende: clienti, fornitori, contatti e soggetti giuridici. È il punto unico dove vengono raccolte le informazioni anagrafiche e di contatto.


res.partner viene referenziato praticamente da ogni app di Odoo. Sales, CRM, contabilità, acquisti ed e-commerce si affidano a questo modello. Creando un cliente, un lead o un fornitore, stai creando o collegando un record res.partner.


La definizione di base del modello risiede nel modulo base; gli altri moduli lo estendono tramite ereditarietà. CRM aggiunge campi legati alle opportunità, la contabilità estende con condizioni di pagamento e limiti di credito: ogni componente integra ciò che serve senza riscrivere la struttura centrale.

Campi chiave del modello


Di seguito trovi i campi più importanti del modello res.partner. Comprenderli ti aiuterà a gestire con efficacia contatti, clienti e fornitori.


1. name

Tipo: Char. Memorizza il nome del partner: nome azienda o nome e cognome per una persona. È il campo che viene mostrato nelle viste e usato come identificatore principale.


2. create_date

Tipo: Datetime. Registra data e ora di creazione del record. Gestito automaticamente da Odoo, utile per reportistica e audit.


3. write_date

Tipo: Datetime. Indica quando il record è stato modificato l'ultima volta. Anch'esso gestito automaticamente, aiuta a tracciare aggiornamenti.


4. email

Tipo: Char. Indirizzo email principale per comunicazioni, fatturazione e accesso al portale. Odoo effettua una validazione del formato quando possibile.


5. phone

Tipo: Char. Numero di telefono principale, visualizzato nella scheda contatto e utilizzato nei flussi di comunicazione.


6. mobile

Tipo: Char. Numero di cellulare, spesso usato per SMS o notifiche urgenti quando diverso dal telefono fisso.


7. street

Tipo: Char. Prima riga dell'indirizzo, parte del blocco indirizzo standard usato su documenti e form.


8. street2

Tipo: Char. Seconda riga dell'indirizzo per dettagli aggiuntivi come interno, piano o nome del complesso.


9. city

Tipo: Char. Comune o città; la formattazione degli indirizzi può variare a seconda del paese.


10. zip

Tipo: Char. CAP o codice postale, utile per convalide indirizzo e calcoli di spedizione.


11. state_id

Tipo: Many2one (res.country.state). Provincia o stato; il dominio è filtrato in base al paese. Non tutti i paesi utilizzano questa suddivisione.


12. country_id

Tipo: Many2one (res.country). Paese, elemento che influenza formattazione indirizzo, tassazione e localizzazione.


13. is_company

Tipo: Boolean. Indica se il record è un'azienda o una persona. Le aziende possono avere contatti figli; le persone possono essere collegate a un'azienda tramite parent_id.


14. parent_id

Tipo: Many2one (res.partner). Collega un contatto alla società di appartenenza, abilitando la gerarchia azienda–contatti e l'ereditarietà di alcuni campi.


15. child_ids

Tipo: One2many (res.partner). Inverso di parent_id: elenca i contatti legati a un'azienda, utile per navigare dalla società ai singoli riferimenti.


16. company_id

Tipo: Many2one (res.company). In scenari multi-company indica a quale società Odoo appartiene il partner e influisce su visibilità e permessi.


17. vat

Tipo: Char. Partita IVA o codice fiscale. Viene validato in base al formato del paese. Campo critico per la fatturazione e la conformità fiscale.


18. customer_rank

Tipo: Integer. Indica lo stato cliente: Odoo lo incrementa quando ci sono vendite. Utile per filtrare e dare priorità ai clienti.


19. supplier_rank

Tipo: Integer. Indica lo status di fornitore: incrementato quando sono presenti ordini d'acquisto o fatture fornitore.


20. user_id

Tipo: Many2one (res.users). Rappresenta il commerciale o il responsabile assegnato, usato per CRM, team di vendita e assegnazione attività.


21. type

Tipo: Selection. Definisce il tipo di indirizzo per i contatti figli: Contatto, Fatturazione, Spedizione o Altro. Determina quale indirizzo appare sui documenti.


22. ref

Tipo: Char. Riferimento interno o codice partner. Utile per mappature con sistemi esterni e numerazione personalizzata.


23. website

Tipo: Char. URL del sito web, visibile nella scheda e utilizzato in contesti e‑commerce.


24. comment

Tipo: Html. Note interne visibili agli utenti interni; spesso impiegate per istruzioni commerciali o annotazioni operative.


25. active

Tipo: Boolean. Flag di archiviazione: se False il record è nascosto nelle viste predefinite ma non viene cancellato fisicamente.


26. lang

Tipo: Selection. Lingua preferita del partner; documenti e email possono essere inviati nella lingua selezionata, ereditata dal parent quando applicabile.


27. image_1920

Tipo: Binary. Immagine o logo del partner; Odoo gestisce più risoluzioni per uso in moduli, report e sito.


28. category_id

Tipo: Many2many (res.partner.category). Tag o categorie per segmentazione, filtri e marketing; molto flessibile per classificazioni personalizzate.

Come questo modello viene usato nei flussi aziendali


1. Vendite e CRM

Quando un commerciale crea un preventivo sceglie il cliente da res.partner: lo stesso record è usato per lead, opportunità e ordine. customer_rank e user_id guidano report e assegnazioni.


2. Fatturazione

Fatture e note di credito fanno riferimento al partner per l'indirizzo di fatturazione; il campo vat è critico per il calcolo imposte. Condizioni di pagamento e limite di credito si configurano spesso sul partner.


3. Acquisti e fornitori

Ordini d'acquisto e fatture fornitore sono collegati a res.partner: supplier_rank aiuta a identificare i fornitori attivi e buyer_id assegna il responsabile per la gestione fornitori.


4. E‑commerce e portale

I visitatori del sito possono registrarsi creando partner che poi vengono riutilizzati per ordini, preventivi e accesso al portale; indirizzi e dati di contatto provengono dal record partner.


5. Multi‑company e consolidamento

In ambienti multi‑azienda la stessa entità legale può esistere come record diversi per ogni società. company_id e le regole inter‑company stabiliscono cosa viene condiviso o duplicato.

Come gli sviluppatori estendono questo modello


Gli sviluppatori estendono res.partner con diversi approcci, sfruttando principalmente i meccanismi di ereditarietà di Odoo.


Ereditarietà del modello

Si utilizza _inherit = 'res.partner' per estendere il modello: si aggiungono campi, si sovrascrivono metodi o si aggiungono vincoli mantenendo le modifiche in un modulo separato, facilitando gli aggiornamenti.


Aggiunta di campi

Definisci nuovi campi nel modello ereditato scegliendo il tipo corretto: Char, Many2one, Boolean, Integer, Text, Selection. Considera campi dipendenti dalla company in ambienti multi‑company.


Estensioni in Python

Override di create, write o unlink permette di inserire logica custom: usa super() per preservare il comportamento originale e presta attenzione ai campi calcolati e alle loro dipendenze.


Odoo Studio

Odoo Studio consente di aggiungere campi senza scrivere codice: comodo per modifiche rapide, ma per logiche complesse o per mantenibilità a lungo termine è preferibile sviluppare moduli personalizzati.

Buone pratiche


  • Crea prima l'azienda e poi i contatti figli collegandoli con parent_id per rispettare la gerarchia company–contatto.
  • Imposta country_id per ottenere una corretta formattazione degli indirizzi e applicare regole fiscali appropriate.
  • Usa commercial_partner_id quando hai bisogno dell'entità di livello superiore per raggruppamenti, limiti di credito o reportistica consolidata.
  • Per integrazioni API utilizza XML‑RPC o JSON‑RPC: il modello res.partner è esposto e puoi mappare gli ID esterni prestando attenzione ai riferimenti univoci.
  • Per i campi custom adotta il prefisso x_ o un prefisso legato al modulo per evitare collisioni con futuri aggiornamenti di Odoo.

Errori comuni


  • Creare partner duplicati invece di cercare quelli esistenti. Usa email_normalized o ref per deduplicare e prevenire record duplicati.
  • Confondere parent_id con company_id. parent_id lega contatto e società; company_id riguarda l'appartenenza alla società in scenari multi‑company.
  • Dimenticare di impostare type sui contatti figli. Indirizzi di fatturazione e spedizione devono avere il tipo corretto per comparire nei documenti.
  • Sovrascrivere metodi core senza chiamare super(). Questo può rompere altri moduli o complicare upgrade futuri.
  • Aggiungere campi obbligatori senza valori di default. I record esistenti potrebbero fallire la validazione durante un aggiornamento.

Conclusione


Il modello res.partner è il fulcro di Odoo per anagrafiche, clienti e fornitori. Conoscere i suoi campi e i modi in cui viene esteso ti permette di configurare, personalizzare e integrare Odoo in modo efficace.

Che tu sia un consulente funzionale che mappa processi aziendali o uno sviluppatore che crea moduli, una conoscenza solida di res.partner fa risparmiare tempo ed evita errori costosi.

Hai bisogno di aiuto per la tua implementazione Odoo?


Dasolo affianca le aziende nell'implementazione, personalizzazione e ottimizzazione di Odoo. Siamo specializzati in integrazioni API e sviluppo Odoo, con esperienza approfondita sull'architettura dati e modelli come res.partner.

Se cerchi supporto per implementazioni Odoo, moduli su misura o integrazioni, possiamo aiutarti. Prenota una demo per discutere il tuo progetto.

Il modello res.partner: Guida all’architettura contatti di Odoo
Dasolo 10 marzo 2026
Condividi articolo
Accedi per lasciare un commento