Introduktion
I Odoo definierar modeller hur data är strukturerad och lagrad i databasen. Varje bit affärsdata du arbetar med finns i en modell.
Att förstå Odoo-modeller är avgörande för både utvecklare och funktionella konsulter. Modellerna är grunden för Odoo:s dataarkitektur. De definierar Odoo-fält, relationer och affärslogik.
Denna artikel fokuserar på webbplatsmodellen. Den driver webbplatskonfigurationen i Odoo. Oavsett om du bygger flerwebbplatsuppsättningar, anpassar varumärket eller integrerar med externa system, kommer du att arbeta med denna modell.
Vad är webbplatsmodellen
Webbplatsmodellen representerar en webbplatskonfiguration i Odoo. Denna modell i Odoo lagrar allt som definierar hur en webbplats ser ut och beter sig: domän, språk, varumärke, sociala länkar och menystruktur.
Den är en del av Webbplatsappen och används av varje Odoo-webbplats. I flerwebbplatskonfigurationer har du flera webbplatsregister. Varje en kan ha sin egen domän, företag, språk och tema.
Andra modeller i Odoo refererar till webbplatsmodellen via fältet website_id. Många Odoo-modeller har ett website_id-fält för att avgränsa innehåll till en specifik webbplats. Så här fungerar Odoo-modellärv och api-modellen i Odoo tillsammans.
Nyckelfält i modellen
Här är de viktigaste Odoo-fälten i webbplatsmodellen. Att förstå dessa kommer att hjälpa dig att arbeta effektivt med webbplatskonfiguration.
1. namn
Typ: Char. Obligatorisk. Detta fält lagrar webbplatsens namn. Det visas i backend-väljaren och i konfigurationsskärmar. Det är den primära identifieraren för webbplatsen.
2. sekvens
Typ: Heltal. Standard 10. Kontrollerar visningsordning när flera webbplatser finns. Lägre värden visas först.
3. domän
Typ: Char. Webbplatsens domän (t.ex. https://www.mydomain.com). Odoo lägger till https om det saknas. Den måste vara unik. Används för routing och SEO.
4. company_id
Typ: Many2one (res.company). Obligatorisk. Kopplar webbplatsen till ett Odoo-företag. I flerföretagskonfigurationer visar varje webbplats endast företagsrelaterade data.
5. language_ids
Typ: Many2many (res.lang). De språk som finns tillgängliga på denna webbplats. Besökare kan växla mellan dem. Standardinställningen är alla installerade språk.
6. language_count
Typ: Heltal. Beräknad. Antalet språk. Användbar för visning och filtrering.
7. default_lang_id
Typ: Many2one (res.lang). Obligatorisk. Standardspråket när besökare först kommer in. Måste finnas i language_ids.
8. auto_redirect_lang
Typ: Boolean. Standard Sant. När det är aktiverat, omdirigeras besökare till sitt webbläsarspråk om det är tillgängligt.
9. cookies_bar
Typ: Boolean. När Sant visas en cookies-bar. Användbar för GDPR-efterlevnad. Odoo kan automatiskt skapa en cookie-policy-sida.
10. logo
Typ: Binär. Webbplatsens logotyp. Visas i headern och på andra ställen. Standardinställningen är Odoo-logotypen om ingen är angiven.
11. favicon
Typ: Binär. Favicon som visas i webbläsarfliken. Odoo ändrar storlek på den till 256x256.
12. social_twitter
Typ: Char. Twitter/X-konto URL. Standardvärden från företaget. Används i sidfoten och social delning.
13. social_facebook
Typ: Char. Facebook-konto URL. Samma mönster som andra sociala fält.
14. social_linkedin
Typ: Char. LinkedIn-konto URL.
15. social_instagram
Typ: Char. Instagram-konto URL.
16. social_youtube
Typ: Char. YouTube-konto URL.
17. social_github
Typ: Char. GitHub-konto URL.
18. social_tiktok
Typ: Char. TikTok-konto URL.
19. social_default_image
Typ: Binary. Standardbild för social delning. Överskrider logotypen när den är inställd. Används för Open Graph och Twitter-kort.
20. google_analytics_key
Typ: Char. Google Analytics nyckel. För spårning. Odoo injicerar skriptet när det är konfigurerat.
21. google_maps_api_key
Typ: Char. Google Maps API nyckel. För kartor och platsfunktioner.
22. user_id
Typ: Many2one (res.users). Obligatorisk. Den offentliga användaren för denna webbplats. Används för portalåtkomst och anonyma besökare. Standardvärden från företaget.
23. cdn_aktiverad
Typ: Boolean. När True, serveras statiska tillgångar från en CDN. Förbättrar prestanda.
24. cdn_url
Typ: Char. CDN bas-URL. Används när cdn_aktiverad är True.
25. cdn_filter
Typ: Text. Regex-mönster för URL:er att skriva om. Standardinställningar för statiska sökvägar.
26. meny_id
Typ: Many2one (website.menu). Beräknad. Huvudmenyn. Pekar på rotmenyobjektet för denna webbplats.
27. startsida_url
Typ: Char. Sökvägen till startsidan (t.ex. /kontakt eller /butik). Måste börja med en snedstreck.
28. anpassad_kod_huvud
Typ: Html. Anpassad kod som injiceras i huvudet. För analys, skript eller meta-taggar.
29. custom_code_footer
Typ: Html. Anpassad kod som injiceras i sidfoten. Användbar för chattwidgetar eller spårning.
30. robots_txt
Typ: Html. Anpassat robots.txt-innehåll. För SEO och crawlerkontroll.
31. theme_id
Typ: Many2one (ir.module.module). Det installerade temat.
32. auth_signup_uninvited
Typ: Val. b2b (På inbjudan) eller b2c (Gratis registrering). Kontrollerar om besökare kan skapa konton utan en inbjudan.
33. create_date
Typ: Datetime. När posten skapades. Hanteras automatiskt av Odoo.
34. write_date
Typ: Datetime. När posten senast ändrades. Också hanteras automatiskt.
Hur denna modell används i affärsarbetsflöden
1. Flera webbplatser och lokalisering
Företag med flera varumärken eller regioner skapar en webbplatspost per webbplats. Varje har sin egen domän, språk och innehåll. fältet website_id på sidor, bloggar och produkter avgränsar data till rätt webbplats.
2. Varumärke och identitet
Logotyp, favicon och sociala länkar konfigureras per webbplats. Marknadsföringsteam uppdaterar dessa vid omprofilering. fältet social_default_image förbättrar hur länkar ser ut när de delas.
3. Språk och SEO
language_ids och default_lang_id kontrollerar vilka språk som är tillgängliga. auto_redirect_lang förbättrar användarupplevelsen för internationella besökare. Korrekt konfiguration hjälper med SEO och hreflang.
4. Prestanda och CDN
När trafiken växer, cdn_activated och cdn_url avlastar statiska tillgångar till ett CDN. cdn_filters definierar vilka URL:er som skrivs om.
5. Efterlevnad och analys
cookies_bar aktiverar cookie-samtyckesbanner. google_analytics_key och custom_code_head injicerar spårning. robots_txt kontrollerar åtkomst för crawler.
Hur utvecklare utökar denna modell
Utvecklare utökar webbplatsmodellen med flera mönster. Odoo-modellarv är den huvudsakliga mekanismen.
Modellarv
Använd _inherit = 'website' för att utöka modellen. Lägg till nya Odoo-fält, åsidosätt metoder eller lägg till begränsningar. Den ärvda modellen i Odoo håller dina ändringar i en separat modul för enkla uppgraderingar.
Lägga till fält
Definiera nya Odoo-fält i din ärvda modell. Använd rätt fälttyp: Char, Many2one, Boolean, Integer, Text, Selection. Tänk på webbplatsberoende fält för logik med flera webbplatser.
Python-tillägg
Åsidosätt create, write eller unlink för att lägga till logik. Använd super() för att anropa den ursprungliga. Var försiktig med user_id och company_id när du skapar webbplatser programmässigt.
Odoo Studio
Odoo Studio låter dig lägga till fält utan kod. Bra för snabba anpassningar. För komplex logik eller API-driven konfiguration är anpassade moduler mer underhållbara.
Bästa praxis
- Ställ in domän för varje webbplats i produktion. Det hjälper till med routing och SEO.
- Håll default_lang_id inom language_ids. Odoo validerar detta vid ändring.
- Använd custom_code_head och custom_code_footer för tredjepartsskript. Undvik att ändra kärntemplat.
- När du bygger API-integrationer, använd XML-RPC eller JSON-RPC API. Webbplatsmodellen är helt exponerad. Karta website_id korrekt när du synkroniserar innehåll.
- För anpassade fält, använd
x_-prefixet eller ett modulprefix för att undvika konflikter med framtida Odoo-versioner.
Vanliga misstag
- Skapa duplicerade domäner. Domänfältet har en unik begränsning.
- Glömma att ställa in user_id när man skapar webbplatser via API. Det är obligatoriskt.
- Ställa in homepage_url utan en ledande snedstreck. Odoo validerar och ger ett felmeddelande.
- Aktivera cdn_activated utan en giltig cdn_url. Tillgångar kan misslyckas med att laddas.
- Överskrida kärnmetoder utan att kalla super(). Detta kan bryta andra moduler eller framtida uppgraderingar.
Slutsats
Webbplatsmodellen är central för webbplatskonfiguration i Odoo. Den lagrar domän, språk, varumärke och beteende. Att förstå dess Odoo-fält och hur andra modeller refererar till den kommer att hjälpa dig att konfigurera, anpassa och integrera Odoo-webbplatser effektivt.
Oavsett om du är en funktionell konsult som kartlägger behov för flera webbplatser eller en utvecklare som bygger anpassade moduler, kommer en solid förståelse av webbplatsmodellen att spara tid och förhindra fel.
Behöver du hjälp med din Odoo-implementering?
Dasolo hjälper företag att implementera, anpassa och optimera Odoo. Vi specialiserar oss på API-integrationer och Odoo-utveckling. Vårt team har djup erfarenhet av Odoo:s dataarkitektur och modeller som webbplats.
Om du behöver hjälp med din Odoo-implementering, inställning av flera webbplatser eller integrationer, är vi här för att hjälpa till. Boka en demo för att diskutera ditt projekt.