Passa al contenuto

Il modello Website: Guida all’architettura di configurazione di Odoo

Guida definitiva al modello Website di Odoo per sviluppatori e consulenti funzionali
11 marzo 2026 di
Il modello Website: Guida all’architettura di configurazione di Odoo
Dasolo
| Ancora nessun commento

Introduzione


In Odoo, un modello descrive la forma dei dati: quali informazioni vengono salvate, come si collegano fra loro e dove finiscono nel database. Ogni elemento gestito dall'azienda — pagine, prodotti, menu — è memorizzato all'interno di un record di un modello.


Per consulenti funzionali e programmatori è fondamentale padroneggiare i modelli Odoo. Sono la spina dorsale dell'architettura dati: definiscono i campi, i vincoli, le relazioni e il comportamento applicativo che poi guidano interfacce, logica di business e integrazioni.


Qui ci concentriamo sul modello Website, quello che governa la configurazione dei siti in Odoo. Se devi creare più siti, personalizzare l'aspetto, gestire lingue o collegare servizi esterni, passerai inevitabilmente da questo modello.

Cos'è il modello Website


Il modello Website rappresenta la configurazione di un sito: contiene tutto ciò che determina l'identità e il funzionamento di un portale — dominio, lingue disponibili, elementi di branding, link social e struttura dei menu.


Fa parte dell'app Website ed è il punto di riferimento di ogni sito creato in Odoo. In scenari multi-sito ogni sito ha il proprio record, con dominio, azienda, lingue e tema indipendenti per consentire personalizzazioni per brand o mercati diversi.


Molti altri modelli fanno riferimento al sito tramite il campo website_id. È così che contenuti come pagine, blog o prodotti vengono associati al sito corretto e gestiti separatamente per ciascuna istanza web.

Campi principali del modello


Di seguito trovi i campi principali del modello Website: conoscere il loro scopo semplifica la configurazione e le estensioni.


1. name

Tipo: Char. Richiesto. Nome del sito, visibile nell'interfaccia di amministrazione e nei pannelli di configurazione. Funziona come identificatore leggibile per gli amministratori.


2. sequence

Tipo: Integer. Default 10. Determina l'ordine di visualizzazione quando sono presenti più siti; valori minori vengono mostrati prima.


3. domain

Tipo: Char. Il dominio del sito (es. https://www.miosito.it). Odoo aggiunge automaticamente il protocollo se mancante. Deve essere univoco ed è usato per instradamento e SEO.


4. company_id

Tipo: Many2one (res.company). Richiesto. Collega il sito a una specifica azienda Odoo; in ambienti multi-company i contenuti visibili sono filtrati in funzione di questa relazione.


5. language_ids

Tipo: Many2many (res.lang). Lingue attivate per il sito. I visitatori possono selezionare tra queste; di default include le lingue installate nel sistema.


6. language_count

Tipo: Integer. Computato. Numero di lingue attive: utile per interfacce e filtri amministrativi.


7. default_lang_id

Tipo: Many2one (res.lang). Richiesto. Lingua predefinita al primo accesso; deve appartenere a language_ids.


8. auto_redirect_lang

Tipo: Boolean. Default True. Se attivo, reindirizza il visitatore alla lingua del browser quando disponibile, migliorando l'esperienza internazionale.


9. cookies_bar

Tipo: Boolean. Se True mostra il banner sui cookie, utile per conformità GDPR; Odoo può generare automaticamente la pagina di policy.


10. logo

Tipo: Binary. Logo del sito, mostrato in header e altri punti; se non impostato, viene usato il logo di default di Odoo.


11. favicon

Tipo: Binary. Icona della scheda del browser; Odoo la ridimensiona a 256x256.


12. social_twitter

Tipo: Char. URL dell'account Twitter/X; per default ereditato dall'azienda, usato in footer e condivisioni.


13. social_facebook

Tipo: Char. URL Facebook; segue lo stesso comportamento degli altri campi social.


14. social_linkedin

Tipo: Char. URL LinkedIn del sito o azienda.


15. social_instagram

Tipo: Char. URL Instagram.


16. social_youtube

Tipo: Char. URL YouTube.


17. social_github

Tipo: Char. URL GitHub.


18. social_tiktok

Tipo: Char. URL TikTok.


19. social_default_image

Tipo: Binary. Immagine usata come anteprima nelle condivisioni social; se impostata prevale sul logo per Open Graph e Twitter cards.


20. google_analytics_key

Tipo: Char. Chiave/ID per Google Analytics; una volta impostata Odoo inserisce il relativo script di tracciamento.


21. google_maps_api_key

Tipo: Char. Chiave API per Google Maps, necessaria per funzionalità geografiche e mappe integrate.


22. user_id

Tipo: Many2one (res.users). Richiesto. Utente pubblico del sito, usato per accessi anonimi e portal; di solito ereditato dall'azienda.


23. cdn_activated

Tipo: Boolean. Se True le risorse statiche possono essere servite da una CDN, migliorando performance e scalabilità.


24. cdn_url

Tipo: Char. URL base della CDN; usato quando cdn_activated è attivo.


25. cdn_filters

Tipo: Text. Espressioni regex per riscrivere gli URL statici; per impostazione predefinita include i percorsi statici principali.


26. menu_id

Tipo: Many2one (website.menu). Computato. Punta all'elemento di menu radice del sito, ovvero alla struttura di navigazione principale.


27. homepage_url

Tipo: Char. Percorso della homepage (es. /contatti o /shop). Deve iniziare con una barra (/).


28. custom_code_head

Tipo: Html. Codice personalizzato inserito nell'head della pagina, utile per meta tag, script o snippet di terze parti.


29. custom_code_footer

Tipo: Html. Codice inserito nel footer; ideale per widget di chat, script di monitoraggio o pixel di marketing.


30. robots_txt

Tipo: Html. Contenuto personalizzato del robots.txt per gestire l'indicizzazione e il comportamento dei crawler.


31. theme_id

Tipo: Many2one (ir.module.module). Tema installato associato al sito.


32. auth_signup_uninvited

Tipo: Selection. Opzioni b2b (solo invito) o b2c (registrazione libera): definisce se gli utenti possono registrarsi senza invito.


33. create_date

Tipo: Datetime. Data di creazione del record, gestita automaticamente da Odoo.


34. write_date

Tipo: Datetime. Data dell'ultima modifica, anch'essa gestita automaticamente.

Come si usa questo modello nei processi aziendali


1. Multi-sito e localizzazione

Aziende che gestiscono più marchi o mercati creano un record Website per ogni sito: ciascuno ha dominio, lingua e contenuti separati. I campi website_id applicati a pagine, prodotti e blog garantiscono che ogni elemento appaia solo sul sito corretto.


2. Branding e identità

Logo, favicon e profili social si impostano a livello di sito per consentire rebranding o campagne specifiche. L'immagine di condivisione predefinita migliora la resa grafica dei link sui social.


3. Lingue e SEO

Gestire language_ids e default_lang_id è cruciale per l'usabilità internazionale; l'opzione di redirect automatico alla lingua del browser migliora l'esperienza utente e aiuta nella corretta indicizzazione con hreflang.


4. Performance e CDN

Con l'aumento del traffico attivare una CDN (cdn_activated + cdn_url) permette di scaricare il server dalle risorse statiche; cdn_filters definisce quali percorsi devono essere riscritti verso la CDN.


5. Conformità e Analytics

Banner dei cookie, chiavi di Analytics e snippet personalizzati consentono di rispettare norme sulla privacy e raccogliere dati utili al marketing; robots_txt controlla l'accesso dei motori di ricerca.

Come gli sviluppatori estendono il modello


Gli sviluppatori estendono il modello Website con meccanismi standard di Odoo, in cima ai quali c'è l'ereditarietà dei modelli.


Ereditarietà del modello

In un modulo Python si usa _inherit = 'website' per aggiungere campi, cambiare comportamenti o introdurre vincoli. L'approccio mantiene le modifiche isolate nel modulo e facilita aggiornamenti futuri.


Aggiunta di campi

Nei moduli ereditati si dichiarano nuovi campi scegliendo il tipo corretto (Char, Many2one, Boolean, Integer, Text, Selection). Per scenari multi-sito valutate campi dipendenti dal sito per evitare conflitti tra istanze.


Estensioni in Python

È comune sovrascrivere create, write o unlink per inserire logica custom: ricordate sempre di chiamare super() per non interrompere il comportamento base. Prestate attenzione a user_id e company_id quando i siti vengono creati tramite API o script automatizzati.


Odoo Studio

Odoo Studio permette di aggiungere campi senza scrivere codice: soluzione rapida per esigenze semplici. Per logiche complesse, integrazioni o gestione tramite API è preferibile creare moduli personalizzati per mantenibilità e controllo versione.

Buone pratiche


  • In produzione impostate correttamente il dominio per ogni sito: semplifica il routing e favorisce la presenza organica sui motori di ricerca.
  • Assicuratevi che default_lang_id sia incluso in language_ids: Odoo effettua questa validazione e bloccherà cambiamenti non coerenti.
  • Per i tag di terze parti inserite gli script in custom_code_head o custom_code_footer invece di modificare i template core, così riducete il rischio di conflitti in aggiornamenti futuri.
  • Per integrazioni API usate XML-RPC o JSON-RPC; il modello Website è esposto e va mappato correttamente con website_id quando si sincronizza contenuto o strutture fra sistemi.
  • Per campi personalizzati seguite il naming convenzionale con prefissi x_ o il prefisso del modulo per evitare collisioni con futuri campi di Odoo.

Errori comuni


  • Creare domini duplicati: il campo domain è unico e il sistema impedisce record con lo stesso valore.
  • Dimenticare user_id nella creazione di un sito via API: è un campo obbligatorio e la sua assenza causa errori.
  • Impostare homepage_url senza la barra iniziale: Odoo valida il formato e segnala l'errore.
  • Attivare cdn_activated senza definire un cdn_url valido: le risorse statiche potrebbero non essere caricate correttamente.
  • Sovrascrivere metodi core senza chiamare super(): rischio di rompere funzionalità altrui o complicare aggiornamenti futuri.

Conclusione


Il modello Website è il fulcro della configurazione dei siti in Odoo: raggruppa dominio, lingue, elementi di branding e impostazioni operative. Conoscere i suoi campi e le relazioni con gli altri modelli facilita configurazione, personalizzazione e integrazione.


Sia che tu mappi esigenze multi-sito come consulente funzionale, sia che tu sviluppi moduli personalizzati, una buona conoscenza del modello Website ti farà risparmiare tempo ed evitare errori comuni.

Hai bisogno di assistenza per la tua implementazione Odoo?


Dasolo affianca le aziende nell'implementazione e ottimizzazione di Odoo: ci occupiamo di sviluppo, integrazioni API e personalizzazioni, con esperienza approfondita sull'architettura dati e modelli come Website.


Se ti serve supporto per implementazione Odoo, configurazione multi-sito o integrazioni, possiamo aiutarti a progettare e realizzare la soluzione più adatta. Prenota una demo per parlare del tuo progetto.

Il modello Website: Guida all’architettura di configurazione di Odoo
Dasolo 11 marzo 2026
Condividi articolo
Accedi per lasciare un commento