Inleiding
In Odoo definiëren modellen hoe gegevens zijn gestructureerd en opgeslagen in de database. Elk stuk bedrijfsgegevens waar u mee werkt, leeft in een model.
Het begrijpen van Odoo-modellen is essentieel voor zowel ontwikkelaars als functionele consultants. Modellen zijn de basis van de Odoo-gegevensarchitectuur. Ze definiëren Odoo-velden, relaties en bedrijfslogica.
Dit artikel richt zich op het website model. Het ondersteunt de siteconfiguratie in Odoo. Of u nu multi-website setups bouwt, branding aanpast of integreert met externe systemen, u zult met dit model werken.
Wat is het website Model
Het website model vertegenwoordigt een websiteconfiguratie in Odoo. Dit model in Odoo slaat alles op wat definieert hoe een site eruitziet en zich gedraagt: domein, talen, branding, sociale links en menustructuur.
Het maakt deel uit van de Website-app en wordt gebruikt door elke Odoo-website. In multi-website configuraties heb je meerdere website records. Elke kan zijn eigen domein, bedrijf, talen en thema hebben.
Andere modellen in Odoo verwijzen naar het website model via het website_id veld. Veel Odoo-modellen hebben een website_id veld om inhoud aan een specifieke site te koppelen. Dit is hoe Odoo modelovererving en het api-model in Odoo samenwerken.
Belangrijke Velden in het Model
Hier zijn de belangrijkste Odoo-velden in het website model. Het begrijpen hiervan zal je helpen om effectief met siteconfiguratie te werken.
1. naam
Type: Char. Vereist. Dit veld slaat de naam van de website op. Het wordt weergegeven in de backend-schakelaar en in configuratieschermen. Het is de primaire identifier voor de site.
2. volgorde
Type: Integer. Standaard 10. Beheert de weergavevolgorde wanneer meerdere websites bestaan. Lagere waarden verschijnen eerst.
3. domein
Type: Char. Het website-domein (bijv. https://www.mydomain.com). Odoo voegt https toe als het ontbreekt. Het moet uniek zijn. Gebruikt voor routering en SEO.
4. company_id
Type: Many2one (res.company). Vereist. Verbindt de website met een Odoo-bedrijf. In multi-bedrijf configuraties toont elke website alleen bedrijf gerelateerde gegevens.
5. taal_ids
Type: Many2many (res.lang). De beschikbare talen op deze website. Bezoekers kunnen tussen hen schakelen. Standaard ingesteld op alle geïnstalleerde talen.
6. taal_aantal
Type: Integer. Berekend. Het aantal talen. Nuttig voor weergave en filtering.
7. standaard_taal_id
Type: Many2one (res.lang). Vereist. De standaardtaal wanneer bezoekers voor het eerst binnenkomen. Moet in taal_ids staan.
8. auto_redirect_taal
Type: Boolean. Standaard Waar. Wanneer ingeschakeld, worden bezoekers omgeleid naar hun browsertaal als deze beschikbaar is.
9. cookies_balk
Type: Boolean. Wanneer Waar, wordt er een cookiesbalk weergegeven. Nuttig voor GDPR-naleving. Odoo kan automatisch een cookiebeleidpagina aanmaken.
10. logo
Type: Binary. Het website-logo. Weergegeven in de header en elders. Standaard ingesteld op het Odoo-logo als niet ingesteld.
11. favicon
Type: Binaire. De favicon die in het browsertabblad wordt weergegeven. Odoo past het aan naar 256x256.
12. social_twitter
Type: Char. Twitter/X account URL. Standaard vanuit het bedrijf. Gebruikt in de footer en voor sociale delen.
13. social_facebook
Type: Char. Facebook account URL. Zelfde patroon als andere sociale velden.
14. social_linkedin
Type: Char. LinkedIn account URL.
15. social_instagram
Type: Char. Instagram account URL.
16. social_youtube
Type: Char. YouTube account URL.
17. social_github
Type: Char. GitHub-account-URL.
18. social_tiktok
Type: Char. TikTok-account-URL.
19. social_default_image
Type: Binary. Standaardafbeelding voor sociale delen. Overschrijft het logo wanneer ingesteld. Gebruikt voor Open Graph en Twitter-kaarten.
20. google_analytics_key
Type: Char. Google Analytics-sleutel. Voor tracking. Odoo injecteert het script wanneer geconfigureerd.
21. google_maps_api_key
Type: Char. Google Maps API-sleutel. Voor kaarten en locatiefuncties.
22. user_id
Type: Many2one (res.users). Vereist. De openbare gebruiker voor deze website. Gebruikt voor portaltoegang en anonieme bezoekers. Standaardinstellingen van het bedrijf.
23. cdn_geactiveerd
Type: Boolean. Wanneer Waar, worden statische assets van een CDN geleverd. Verbetert de prestaties.
24. cdn_url
Type: Char. De basis-URL van de CDN. Wordt gebruikt wanneer cdn_geactiveerd Waar is.
25. cdn_filters
Type: Text. Regex-patronen voor URL's om te herschrijven. Standaard naar statische paden.
26. menu_id
Type: Many2one (website.menu). Berekend. Het hoofdmenu. Verwijst naar het rootmenu-item voor deze website.
27. homepage_url
Type: Char. Het pad naar de homepage (bijv. /contactus of /shop). Moet beginnen met een schuine streep.
28. custom_code_head
Type: Html. Aangepaste code die in de head wordt geïnjecteerd. Voor analytics, scripts of meta-tags.
29. custom_code_footer
Type: Html. Aangepaste code geïnjecteerd in de footer. Nuttig voor chatwidgets of tracking.
30. robots_txt
Type: Html. Aangepaste robots.txt inhoud. Voor SEO en crawler controle.
31. theme_id
Type: Many2one (ir.module.module). Het geïnstalleerde thema.
32. auth_signup_uninvited
Type: Selection. b2b (Op uitnodiging) of b2c (Gratis aanmelding). Beheert of bezoekers accounts kunnen aanmaken zonder uitnodiging.
33. create_date
Type: Datetime. Wanneer het record is aangemaakt. Automatisch beheerd door Odoo.
34. write_date
Type: Datetime. Wanneer het record voor het laatst is gewijzigd. Ook automatisch beheerd.
Hoe Dit Model Wordt Gebruikt in Bedrijfsworkflows
1. Multi-Website en Lokalisatie
Bedrijven met meerdere merken of regio's creëren één website record per site. Elke site heeft zijn eigen domein, talen en inhoud. Het website_id veld op pagina's, blogs en producten beperkt de gegevens tot de juiste site.
2. Branding en Identiteit
Logo, favicon en sociale links worden per website geconfigureerd. Marketingteams werken deze bij bij rebranding. Het social_default_image veld verbetert hoe links eruitzien wanneer ze worden gedeeld.
3. Taal en SEO
language_ids en default_lang_id bepalen welke talen beschikbaar zijn. auto_redirect_lang verbetert de gebruikerservaring voor internationale bezoekers. Juiste configuratie helpt met SEO en hreflang.
4. Prestaties en CDN
Wanneer het verkeer toeneemt, verplaatsen cdn_activated en cdn_url statische middelen naar een CDN. cdn_filters definiëren welke URL's worden herschreven.
5. Naleving en Analytics
cookies_bar activeert de cookie toestemmingsbanner. google_analytics_key en custom_code_head injecteren tracking. robots_txt controleert de toegang voor crawlers.
Hoe Ontwikkelaars Dit Model Uitbreiden
Ontwikkelaars breiden het website model uit met verschillende patronen. Odoo modelovererving is het belangrijkste mechanisme.
Modelovererving
Gebruik _inherit = 'website' om het model uit te breiden. Voeg nieuwe Odoo-velden toe, overschrijf methoden of voeg beperkingen toe. Het erfmodel in Odoo houdt je wijzigingen in een aparte module voor gemakkelijke upgrades.
Velden Toevoegen
Definieer nieuwe Odoo-velden in je geërfde model. Gebruik het juiste veldtype: Char, Many2one, Boolean, Integer, Text, Selection. Overweeg website-afhankelijke velden voor multi-website logica.
Python Uitbreidingen
Overschrijf create, write of unlink om logica toe te voegen. Gebruik super() om de originele aanroep te doen. Wees voorzichtig met user_id en company_id bij het programmatic creëren van websites.
Odoo Studio
Odoo Studio stelt je in staat om velden toe te voegen zonder code. Goed voor snelle aanpassingen. Voor complexe logica of API-gedreven configuratie zijn aangepaste modules beter onderhoudbaar.
Beste Praktijken
- Stel een domein in voor elke website in productie. Dit helpt bij routing en SEO.
- Houd default_lang_id binnen language_ids. Odoo valideert dit bij wijziging.
- Gebruik custom_code_head en custom_code_footer voor scripts van derden. Vermijd het wijzigen van kernsjablonen.
- Bij het bouwen van API-integraties, gebruik de XML-RPC of JSON-RPC API. Het website-model is volledig blootgesteld. Map website_id correct bij het synchroniseren van inhoud.
- Voor aangepaste velden, gebruik de
x_prefix of een moduleprefix om conflicten met toekomstige Odoo-versies te vermijden.
Veelvoorkomende Fouten
- Het creëren van dubbele domeinen. Het domeinveld heeft een unieke beperking.
- Vergeten om user_id in te stellen bij het creëren van websites via de API. Dit is vereist.
- Homepage_url instellen zonder een leidende schuine streep. Odoo valideert en geeft een foutmelding.
- cdn_activated inschakelen zonder een geldige cdn_url. Assets kunnen mogelijk niet laden.
- Kernmethoden overschrijven zonder super() aan te roepen. Dit kan andere modules of toekomstige upgrades breken.
Conclusie
Het website-model is centraal voor siteconfiguratie in Odoo. Het slaat domein, talen, branding en gedrag op. Begrijpen hoe de Odoo-velden zijn en hoe andere modellen ernaar verwijzen, zal je helpen Odoo-websites effectief te configureren, aan te passen en te integreren.
Of je nu een functionele consultant bent die multi-site behoeften in kaart brengt of een ontwikkelaar die aangepaste modules bouwt, een goed begrip van het website-model zal tijd besparen en fouten voorkomen.
Hulp Nodig Bij Uw Odoo Implementatie?
Dasolo helpt bedrijven bij het implementeren, aanpassen en optimaliseren van Odoo. We zijn gespecialiseerd in API-integraties en Odoo-ontwikkeling. Ons team heeft diepgaande ervaring met de Odoo-gegevensarchitectuur en modellen zoals website.
Als je hulp nodig hebt bij je Odoo-implementatie, multi-website setup of integraties, zijn wij hier om te helpen. Boek een demo om je project te bespreken.