Introduksjon
I Odoo definerer modeller hvordan data er strukturert og lagret i databasen. Hver bit av forretningsdata du arbeider med lever i en modell.
Å forstå Odoo-modeller er essensielt for både utviklere og funksjonelle konsulenter. Modeller er grunnlaget for Odoo-databasearkitekturen. De definerer Odoo-felt, relasjoner og forretningslogikk.
Denne artikkelen fokuserer på nettstedmodellen. Den driver nettstedkonfigurasjonen i Odoo. Enten du bygger flernettstedoppsett, tilpasser merkevarebygging eller integrerer med eksterne systemer, vil du jobbe med denne modellen.
Hva er nettstedmodellen
Nettsidemodellen representerer en nettsidekonfigurasjon i Odoo. Denne modellen i Odoo lagrer alt som definerer hvordan et nettsted ser ut og oppfører seg: domene, språk, merkevare, sosiale lenker og menystruktur.
Den er en del av Website-appen og brukes av hver Odoo-nettside. I multi-nettsideoppsett har du flere nettsidereferanser. Hver av dem kan ha sitt eget domene, selskap, språk og tema.
Andre modeller i Odoo refererer til nettsidemodellen via feltet website_id. Mange Odoo-modeller har et website_id-felt for å avgrense innhold til et spesifikt nettsted. Dette er hvordan Odoo-modellarv og api-modellen i Odoo fungerer sammen.
Nøkkelområder i modellen
Her er de viktigste Odoo-feltene i nettsidemodellen. Å forstå disse vil hjelpe deg å jobbe effektivt med nettstedkonfigurasjon.
1. navn
Type: Char. Påkrevd. Dette feltet lagrer nettsidens navn. Det vises i backend-bryteren og i konfigurasjonsskjermene. Det er den primære identifikatoren for nettstedet.
2. sekvens
Type: Integer. Standard 10. Kontrollerer visningsrekkefølge når flere nettsteder eksisterer. Lavere verdier vises først.
3. domene
Type: Char. Nettstedets domene (f.eks. https://www.mydomain.com). Odoo legger til https hvis det mangler. Det må være unikt. Brukes til ruting og SEO.
4. company_id
Type: Many2one (res.company). Påkrevd. Knytter nettstedet til et Odoo-selskap. I multi-selskapoppsett viser hvert nettsted kun selskapsrelaterte data.
5. language_ids
Type: Many2many (res.lang). Språkene som er tilgjengelige på dette nettstedet. Besøkende kan bytte mellom dem. Standard er alle installerte språk.
6. language_count
Type: Integer. Beregnet. Antall språk. Nyttig for visning og filtrering.
7. default_lang_id
Type: Many2one (res.lang). Påkrevd. Standardspråket når besøkende først lander. Må være i language_ids.
8. auto_redirect_lang
Type: Boolean. Standard True. Når aktivert, blir besøkende omdirigert til sitt nettleserspråk hvis det er tilgjengelig.
9. cookies_bar
Type: Boolean. Når True, vises en informasjonslinje om informasjonskapsler. Nyttig for GDPR-overholdelse. Odoo kan automatisk opprette en side for informasjonskapselpolicy.
10. logo
Type: Binary. Nettstedets logo. Vist i headeren og andre steder. Standard er Odoo-logoen hvis den ikke er satt.
11. favicon
Type: Binær. Favicon vist i nettleserfanen. Odoo endrer størrelsen til 256x256.
12. social_twitter
Type: Char. Twitter/X-konto URL. Standard fra selskapet. Brukes i bunntekst og sosial deling.
13. social_facebook
Type: Char. Facebook-konto URL. Samme mønster som andre sosiale felt.
14. social_linkedin
Type: Char. LinkedIn-konto URL.
15. social_instagram
Type: Char. Instagram-konto URL.
16. social_youtube
Type: Char. YouTube-konto URL.
17. social_github
Type: Char. URL til GitHub-konto.
18. social_tiktok
Type: Char. URL til TikTok-konto.
19. social_default_image
Type: Binary. Standardbilde for sosial deling. Overstyrer logoet når det er satt. Brukes for Open Graph og Twitter-kort.
20. google_analytics_key
Type: Char. Google Analytics-nøkkel. For sporing. Odoo injiserer skriptet når det er konfigurert.
21. google_maps_api_key
Type: Char. Google Maps API-nøkkel. For kart og lokasjonsfunksjoner.
22. user_id
Type: Many2one (res.users). Påkrevd. Den offentlige brukeren for dette nettstedet. Brukes for portaltilgang og anonyme besøkende. Standardverdi fra selskapet.
23. cdn_aktivert
Type: Boolean. Når True, serveres statiske ressurser fra en CDN. Forbedrer ytelsen.
24. cdn_url
Type: Char. CDN-basert URL. Brukes når cdn_aktivert er True.
25. cdn_filtre
Type: Text. Regex-mønstre for URL-er som skal omskrives. Standard til statiske stier.
26. meny_id
Type: Many2one (website.menu). Beregnet. Hovedmenyen. Pekes til rotmenyelementet for dette nettstedet.
27. hjemmeside_url
Type: Char. Hjemmesidebane (f.eks. /kontakt eller /butikk). Må starte med en skråstrek.
28. egendefinert_kode_hode
Type: Html. Egendefinert kode injisert i hodet. For analyse, skript eller metatagger.
29. custom_code_footer
Type: Html. Egendefinert kode injisert i bunnteksten. Nyttig for chatte-widgeter eller sporing.
30. robots_txt
Type: Html. Egendefinert robots.txt-innhold. For SEO og kontroll av nettlesere.
31. theme_id
Type: Many2one (ir.module.module). Det installerte temaet.
32. auth_signup_uninvited
Type: Selection. b2b (På invitasjon) eller b2c (Gratis registrering). Kontrollerer om besøkende kan opprette kontoer uten invitasjon.
33. create_date
Type: Datetime. Når posten ble opprettet. Administreres automatisk av Odoo.
34. write_date
Type: Datetime. Når posten sist ble endret. Også administrert automatisk.
Hvordan denne modellen brukes i forretningsarbeidsflyter
1. Multi-nettsted og lokalisering
Selskaper med flere merker eller regioner oppretter én nettstedsoppføring per nettsted. Hvert har sitt eget domene, språk og innhold. Feltet website_id på sider, blogger og produkter avgrenser data til riktig nettsted.
2. Merkevare og identitet
Logo, favicon og sosiale lenker er konfigurert per nettsted. Markedsføringsteam oppdaterer disse ved rebranding. Feltet social_default_image forbedrer hvordan lenker ser ut når de deles.
3. Språk og SEO
language_ids og default_lang_id kontrollerer hvilke språk som er tilgjengelige. auto_redirect_lang forbedrer brukeropplevelsen for internasjonale besøkende. Riktig konfigurasjon hjelper med SEO og hreflang.
4. Ytelse og CDN
Når trafikken vokser, avlaster cdn_activated og cdn_url statiske ressurser til en CDN. cdn_filters definerer hvilke URL-er som blir omskrevet.
5. Overholdelse og analyse
cookies_bar aktiverer banneret for informert samtykke til informasjonskapsler. google_analytics_key og custom_code_head injiserer sporing. robots_txt kontrollerer tilgang for nettlesere.
Hvordan utviklere utvider denne modellen
Utviklere utvider nettstedsmodellen ved å bruke flere mønstre. Odoo-modellarv er hovedmekanismen.
Modellarv
Bruk _inherit = 'website' for å utvide modellen. Legg til nye Odoo-felt, overskriv metoder, eller legg til begrensninger. Den arvede modellen i Odoo holder endringene dine i en egen modul for enkle oppgraderinger.
Legge til felt
Definer nye Odoo-felt i den arvede modellen. Bruk riktig felttype: Char, Many2one, Boolean, Integer, Text, Selection. Vurder nettsideavhengige felt for multi-nettside logikk.
Python-utvidelser
Overskriv create, write, eller unlink for å legge til logikk. Bruk super() for å kalle den originale. Vær forsiktig med user_id og company_id når du oppretter nettsteder programmatisk.
Odoo Studio
Odoo Studio lar deg legge til felt uten kode. Bra for raske tilpasninger. For kompleks logikk eller API-drevet konfigurasjon, er tilpassede moduler mer vedlikeholdbare.
Beste praksis
- Sett domene for hver nettside i produksjon. Det hjelper med ruting og SEO.
- Hold default_lang_id innen language_ids. Odoo validerer dette ved endring.
- Bruk custom_code_head og custom_code_footer for tredjeparts skript. Unngå å endre kjerne maler.
- Når du bygger API-integrasjoner, bruk XML-RPC eller JSON-RPC API. Nettsidemodellen er fullt eksponert. Kartlegg website_id riktig når du synkroniserer innhold.
- For tilpassede felt, bruk
x_prefikset eller et modulprefiks for å unngå konflikter med fremtidige Odoo-versjoner.
Vanlige feil
- Opprette duplikate domener. Domene-feltet har en unik begrensning.
- Glemme å sette user_id når man oppretter nettsteder via API. Det er påkrevd.
- Sette homepage_url uten en ledende skråstrek. Odoo validerer og gir en feil.
- Aktivere cdn_activated uten en gyldig cdn_url. Eiendeler kan feile å laste.
- Overstyre kjerne metoder uten å kalle super(). Dette kan bryte andre moduler eller fremtidige oppgraderinger.
Konklusjon
Nettstedmodellen er sentral for nettstedkonfigurasjon i Odoo. Den lagrer domene, språk, merkevare og atferd. Å forstå dens Odoo-felt og hvordan andre modeller refererer til den vil hjelpe deg med å konfigurere, tilpasse og integrere Odoo-nettsteder effektivt.
Enten du er en funksjonell konsulent som kartlegger behovene til flere nettsteder eller en utvikler som bygger tilpassede moduler, vil en solid forståelse av nettstedmodellen spare tid og forhindre feil.
Trenger du hjelp med din Odoo-implementering?
Dasolo hjelper selskaper med å implementere, tilpasse og optimalisere Odoo. Vi spesialiserer oss på API-integrasjoner og Odoo-utvikling. Vårt team har dyp erfaring med Odoo-datastrukturen og modeller som nettsted.
Hvis du trenger hjelp med din Odoo-implementering, oppsett av flere nettsteder eller integrasjoner, er vi her for å hjelpe. Bestill en demo for å diskutere prosjektet ditt.