Introduzione
In Odoo, i modelli definiscono come i dati sono strutturati e memorizzati nel database. Ogni pezzo di dati aziendali con cui lavori vive in un modello.
Comprendere i modelli di Odoo è essenziale sia per gli sviluppatori che per i consulenti funzionali. I modelli sono la base dell'architettura dei dati di Odoo. Definiscono i campi di Odoo, le relazioni e la logica aziendale.
Questo articolo si concentra sul modello del sito web. Alimenta la configurazione del sito in Odoo. Che tu stia costruendo configurazioni multi-sito, personalizzando il branding o integrando con sistemi esterni, lavorerai con questo modello.
Cos'è il modello del sito web
Il modello del sito web rappresenta una configurazione del sito web in Odoo. Questo modello in Odoo memorizza tutto ciò che definisce come appare e si comporta un sito: dominio, lingue, branding, link sociali e struttura del menu.
Fa parte dell'app Website ed è utilizzato da ogni sito web Odoo. In configurazioni multi-sito, hai più record di siti web. Ognuno può avere il proprio dominio, azienda, lingue e tema.
Altri modelli in Odoo fanno riferimento al modello del sito web tramite il campo website_id. Molti modelli Odoo hanno un campo website_id per limitare i contenuti a un sito specifico. Questo è il modo in cui l'ereditarietà dei modelli Odoo e il modello api in Odoo lavorano insieme.
Campi chiave nel modello
Ecco i campi Odoo più importanti nel modello del sito web. Comprendere questi ti aiuterà a lavorare in modo efficace con la configurazione del sito.
1. nome
Tipo: Char. Obbligatorio. Questo campo memorizza il nome del sito web. Viene visualizzato nel selettore del backend e nelle schermate di configurazione. È l'identificatore principale per il sito.
2. sequenza
Tipo: Integer. Predefinito 10. Controlla l'ordine di visualizzazione quando esistono più siti web. I valori più bassi appaiono per primi.
3. dominio
Tipo: Char. Il dominio del sito web (ad es. https://www.mydomain.com). Odoo aggiunge https se mancante. Deve essere unico. Utilizzato per il routing e SEO.
4. company_id
Tipo: Many2one (res.company). Obbligatorio. Collega il sito web a un'azienda Odoo. In configurazioni multi-azienda, ogni sito web mostra solo i dati relativi all'azienda.
5. language_ids
Tipo: Many2many (res.lang). Le lingue disponibili su questo sito web. I visitatori possono passare da una all'altra. Di default, tutte le lingue installate.
6. language_count
Tipo: Intero. Calcolato. Il numero di lingue. Utile per la visualizzazione e il filtraggio.
7. default_lang_id
Tipo: Many2one (res.lang). Obbligatorio. La lingua predefinita quando i visitatori atterrano per la prima volta. Deve essere presente in language_ids.
8. auto_redirect_lang
Tipo: Booleano. Di default Vero. Quando abilitato, i visitatori vengono reindirizzati alla lingua del loro browser se disponibile.
9. cookies_bar
Tipo: Booleano. Quando Vero, viene visualizzata una barra dei cookie. Utile per la conformità al GDPR. Odoo può creare automaticamente una pagina sulla politica dei cookie.
10. logo
Tipo: Binario. Il logo del sito web. Visualizzato nell'intestazione e altrove. Di default, il logo di Odoo se non impostato.
11. favicon
Tipo: Binario. Il favicon mostrato nella scheda del browser. Odoo lo ridimensiona a 256x256.
12. social_twitter
Tipo: Char. URL dell'account Twitter/X. Predefinito dall'azienda. Utilizzato nel footer e nella condivisione sociale.
13. social_facebook
Tipo: Char. URL dell'account Facebook. Stessa logica degli altri campi social.
14. social_linkedin
Tipo: Char. URL dell'account LinkedIn.
15. social_instagram
Tipo: Char. URL dell'account Instagram.
16. social_youtube
Tipo: Char. URL dell'account YouTube.
17. social_github
Tipo: Char. URL dell'account GitHub.
18. social_tiktok
Tipo: Char. URL dell'account TikTok.
19. social_default_image
Tipo: Binary. Immagine predefinita per la condivisione sui social. Sovrascrive il logo quando impostato. Utilizzato per Open Graph e Twitter cards.
20. google_analytics_key
Tipo: Char. Chiave di Google Analytics. Per il tracciamento. Odoo inietta lo script quando configurato.
21. google_maps_api_key
Tipo: Char. Chiave API di Google Maps. Per mappe e funzionalità di localizzazione.
22. user_id
Tipo: Many2one (res.users). Obbligatorio. L'utente pubblico per questo sito web. Utilizzato per l'accesso al portale e per i visitatori anonimi. Predefinito dall'azienda.
23. cdn_activated
Tipo: Booleano. Quando True, le risorse statiche vengono servite da un CDN. Migliora le prestazioni.
24. cdn_url
Tipo: Char. L'URL base del CDN. Utilizzato quando cdn_activated è True.
25. cdn_filters
Tipo: Testo. Modelli Regex per riscrivere gli URL. Per impostazione predefinita, percorsi statici.
26. menu_id
Tipo: Many2one (website.menu). Calcolato. Il menu principale. Punta all'elemento del menu radice per questo sito web.
27. homepage_url
Tipo: Char. Il percorso della homepage (ad es. /contactus o /shop). Deve iniziare con una barra.
28. custom_code_head
Tipo: Html. Codice personalizzato iniettato nell'intestazione. Per analisi, script o meta tag.
29. custom_code_footer
Tipo: Html. Codice personalizzato iniettato nel footer. Utile per widget di chat o tracciamento.
30. robots_txt
Tipo: Html. Contenuto personalizzato di robots.txt. Per SEO e controllo dei crawler.
31. theme_id
Tipo: Many2one (ir.module.module). Il tema installato.
32. auth_signup_uninvited
Tipo: Selezione. b2b (Su invito) o b2c (Registrazione gratuita). Controlla se i visitatori possono creare account senza un invito.
33. create_date
Tipo: Datetime. Quando è stato creato il record. Gestito automaticamente da Odoo.
34. write_date
Tipo: Datetime. Quando è stato modificato l'ultimo record. Anche questo gestito automaticamente.
Come questo modello viene utilizzato nei flussi di lavoro aziendali
1. Multi-Sito e Localizzazione
Le aziende con più marchi o regioni creano un record del sito web per ogni sito. Ognuno ha il proprio dominio, lingue e contenuti. Il campo website_id su pagine, blog e prodotti delimita i dati al sito corretto.
2. Branding e Identità
Logo, favicon e link social sono configurati per ogni sito web. I team di marketing aggiornano questi elementi durante il rebranding. Il campo social_default_image migliora l'aspetto dei link quando vengono condivisi.
3. Lingua e SEO
language_ids e default_lang_id controllano quali lingue sono disponibili. auto_redirect_lang migliora l'esperienza utente per i visitatori internazionali. Una corretta configurazione aiuta con SEO e hreflang.
4. Prestazioni e CDN
Quando il traffico cresce, cdn_activated e cdn_url scaricano le risorse statiche su un CDN. cdn_filters definisce quali URL vengono riscritti.
5. Conformità e Analisi
cookies_bar abilita il banner di consenso ai cookie. google_analytics_key e custom_code_head iniettano il tracciamento. robots_txt controlla l'accesso dei crawler.
Come gli sviluppatori estendono questo modello
Gli sviluppatori estendono il modello del sito web utilizzando diversi schemi. L'ereditarietà del modello Odoo è il meccanismo principale.
Ereditarietà del Modello
Usa _inherit = 'website' per estendere il modello. Aggiungi nuovi campi Odoo, sovrascrivi metodi o aggiungi vincoli. Il modello ereditato in Odoo mantiene le tue modifiche in un modulo separato per facilitare gli aggiornamenti.
Aggiunta di Campi
Definisci nuovi campi Odoo nel tuo modello ereditato. Usa il tipo di campo corretto: Char, Many2one, Boolean, Integer, Text, Selection. Considera i campi dipendenti dal sito web per la logica multi-sito.
Estensioni Python
Sovrascrivi create, write o unlink per aggiungere logica. Usa super() per chiamare l'originale. Fai attenzione a user_id e company_id quando crei siti web programmaticamente.
Odoo Studio
Odoo Studio ti consente di aggiungere campi senza codice. Ottimo per personalizzazioni rapide. Per logica complessa o configurazioni basate su API, i moduli personalizzati sono più manutenibili.
Migliori pratiche
- Imposta il dominio per ogni sito web in produzione. Aiuta nel routing e nella SEO.
- Mantieni default_lang_id all'interno di language_ids. Odoo convalida questo al momento della modifica.
- Usa custom_code_head e custom_code_footer per script di terze parti. Evita di modificare i template core.
- Quando costruisci integrazioni API, usa l'API XML-RPC o JSON-RPC. Il modello del sito web è completamente esposto. Mappa correttamente website_id quando sincronizzi i contenuti.
- Per campi personalizzati, usa il prefisso
x_o un prefisso di modulo per evitare conflitti con le future versioni di Odoo.
Errori comuni
- Creazione di domini duplicati. Il campo dominio ha un vincolo di unicità.
- Dimenticare di impostare user_id quando si creano siti web tramite API. È richiesto.
- Impostare homepage_url senza una barra iniziale. Odoo convalida e genera un errore.
- Abilitare cdn_activated senza un cdn_url valido. I contenuti potrebbero non caricarsi.
- Sovrascrivere metodi core senza chiamare super(). Questo può rompere altri moduli o futuri aggiornamenti.
Conclusione
Il modello del sito web è centrale per la configurazione del sito in Odoo. Memorizza dominio, lingue, branding e comportamento. Comprendere i suoi campi in Odoo e come altri modelli lo riferiscono ti aiuterà a configurare, personalizzare e integrare i siti web Odoo in modo efficace.
Che tu sia un consulente funzionale che mappa le esigenze multi-sito o uno sviluppatore che costruisce moduli personalizzati, una solida comprensione del modello del sito web ti farà risparmiare tempo e prevenire errori.
Hai bisogno di aiuto con la tua implementazione di Odoo?
Dasolo aiuta le aziende a implementare, personalizzare e ottimizzare Odoo. Siamo specializzati in integrazioni API e sviluppo Odoo. Il nostro team ha una profonda esperienza con l'architettura dei dati di Odoo e modelli come il sito web.
Se hai bisogno di aiuto con la tua implementazione di Odoo, configurazione multi-sito o integrazioni, siamo qui per aiutarti. Prenota una demo per discutere del tuo progetto.