Einleitung
In Odoo bilden Modelle die Blaupause für alle gespeicherten Geschäftsdaten. Jede Information — sei es ein Produkt, eine Seite oder eine Einstellung — hat einen Platz in einem Modell und wird dort dauerhaft abgelegt.
Für Entwickler und Berater ist das Verständnis der Modellstruktur unverzichtbar. Modelle bestimmen, welche Felder existieren, wie Datensätze miteinander verknüpft sind und wo Geschäftslogik ausgeführt wird — sie sind das Rückgrat der Odoo‑Datenarchitektur.
Dieser Beitrag erklärt das Website‑Modell. Es steuert die Konfiguration Ihrer Internetauftritte in Odoo. Ob Mehrfach‑Websites, Markenanpassungen oder Schnittstellen zu Drittsystemen — viele Aufgaben drehen sich um dieses Modell.
Was das Website-Modell ist
Das Website‑Modell repräsentiert in Odoo die Konfiguration einer einzelnen Website. Es hält alle Informationen, die Aussehen und Verhalten der Seite bestimmen: Domain, Sprachen, Corporate Design, Social‑Profile und Navigationsstruktur.
Das Modell gehört zur Website‑App und ist die Basis für jede Odoo‑Webseite. Bei Multi‑Website‑Szenarien existiert für jede Seite ein eigener Eintrag — mit individueller Domain, zugehöriger Firma, verfügbaren Sprachen und Theme‑Einstellungen.
Viele andere Odoo‑Modelle verweisen per website_id auf dieses Modell. So wird Inhalt wie Seiten, Blogs oder Produkte automatisch auf die richtige Website eingegrenzt — ein zentraler Mechanismus für Mehrseiten‑Setups.
Wichtige Felder im Modell
Im Folgenden die wesentlichen Felder des Website‑Modells. Ein Blick auf diese Felder hilft Ihnen, Websites korrekt zu konfigurieren und zu erweitern.
1. name
Typ: Char. Pflichtfeld. Enthält den Namen der Website, wie er im Backend angezeigt wird. Der Name ist das zentrale Erkennungsmerkmal für Administratoren und wird häufig in Switchern und Konfigurationsbildschirmen verwendet.
2. sequence
Typ: Integer. Standard 10. Bestimmt die Reihenfolge bei mehreren Websites. Kleinere Werte erscheinen weiter oben in Listen und Auswahlfeldern.
3. domain
Typ: Char. Die Website‑Domain (z. B. https://www.meinedomain.de). Odoo ergänzt https bei Bedarf. Domains müssen eindeutig sein und sind wichtig für Routing und SEO.
4. company_id
Typ: Many2one (res.company). Pflichtfeld. Verknüpft die Website mit einer Firma. In Multi‑Company‑Setups sehen Websites nur firmenrelevante Daten.
5. language_ids
Typ: Many2many (res.lang). Die auf der Website aktiven Sprachen. Besucher können zwischen diesen Sprachen wechseln; standardmäßig sind alle installierten Sprachen verfügbar.
6. language_count
Typ: Integer. Berechnetes Feld. Zeigt die Anzahl der Sprachen an — praktisch für Filter und Anzeigezwecke.
7. default_lang_id
Typ: Many2one (res.lang). Pflichtfeld. Legt die Standard‑Sprache für neue Besucher fest; diese Sprache muss in language_ids enthalten sein.
8. auto_redirect_lang
Typ: Boolean. Standard True. Leitet Besucher automatisch auf die Sprache ihres Browsers weiter, sofern diese unterstützt wird — verbessert die User Experience internationaler Besucher.
9. cookies_bar
Typ: Boolean. Bei True erscheint die Cookie‑Hinweisleiste — relevant für DSGVO‑Konformität. Odoo kann dazu automatisch eine Cookie‑Informationsseite anlegen.
10. logo
Typ: Binary. Das Website‑Logo, sichtbar im Header und an anderen Stellen. Wenn kein eigenes Logo gesetzt ist, greift die Standard‑Odoo‑Darstellung.
11. favicon
Typ: Binary. Das Favicon für den Browser‑Tab. Odoo skaliert das Bild auf relevante Größen (z. B. 256x256).
12. social_twitter
Typ: Char. URL des Twitter/X‑Profils. Wird meist aus den Firmendaten vorbefüllt und in Footer bzw. Social‑Sharing verwendet.
13. social_facebook
Typ: Char. URL des Facebook‑Profils. Gleicher Einsatz wie bei anderen Social‑Feldern.
14. social_linkedin
Typ: Char. LinkedIn‑Profil‑URL.
15. social_instagram
Typ: Char. Instagram‑URL.
16. social_youtube
Typ: Char. YouTube‑Kanal‑URL.
17. social_github
Typ: Char. GitHub‑URL.
18. social_tiktok
Typ: Char. TikTok‑URL.
19. social_default_image
Typ: Binary. Standardbild für Social‑Shares. Überschreibt das Logo, wenn gesetzt — wichtig für Open Graph und Twitter Cards, damit Links ansprechend aussehen.
20. google_analytics_key
Typ: Char. Google‑Analytics‑ID zur Besucher‑Analyse. Odoo fügt das Tracking‑Script ein, wenn der Schlüssel konfiguriert ist.
21. google_maps_api_key
Typ: Char. API‑Key für Google Maps, nötig für Karten‑ und Standortfunktionen.
22. user_id
Typ: Many2one (res.users). Pflichtfeld. Repräsentiert den öffentlichen Nutzer für die Website (z. B. Portal‑Zugriffe). Wird standardmäßig aus den Firmeneinstellungen gezogen.
23. cdn_activated
Typ: Boolean. Bei Aktivierung werden statische Assets über ein CDN ausgeliefert — positiv für Ladezeiten und Skalierbarkeit.
24. cdn_url
Typ: Char. Basis‑URL des CDN. Wird genutzt, wenn cdn_activated auf True steht.
25. cdn_filters
Typ: Text. Regex‑Muster für URL‑Umschreibungen. Standardmäßig werden statische Pfade berücksichtigt; Feinsteuerung ist möglich.
26. menu_id
Typ: Many2one (website.menu). Berechnetes Feld. Zeigt auf das Hauptmenü der Website — das Root‑Element, an dem Navigation aufgebaut wird.
27. homepage_url
Typ: Char. Pfad zur Startseite (z. B. /kontakt oder /shop). Muss mit einem führenden Schrägstrich beginnen.
28. custom_code_head
Typ: Html. Individueller HTML‑/Scriptcode, der in den eingefügt wird — ideal für Meta‑Tags, Tracking oder CDN‑Konfigurationen.
29. custom_code_footer
Typ: Html. HTML‑/Scriptcode im Footer; nützlich für Chat‑Widgets, zusätzliche Tracker oder asynchrone Skripte.
30. robots_txt
Typ: Html. Individueller Inhalt für robots.txt — wichtig für SEO‑Steuerung und Crawling‑Regeln.
31. theme_id
Typ: Many2one (ir.module.module). Verweis auf das installierte Theme der Website.
32. auth_signup_uninvited
Typ: Selection. Optionen: b2b (nur auf Einladung) oder b2c (freie Registrierung). Steuert, ob Besucher ohne Einladung ein Konto anlegen dürfen.
33. create_date
Typ: Datetime. Zeitstempel der Erstellung. Wird automatisch von Odoo gesetzt.
34. write_date
Typ: Datetime. Letzte Änderungszeit. Ebenfalls automatisch verwaltet.
Wie das Modell in Geschäftsprozessen eingesetzt wird
1. Multi‑Website und Lokalisierung
Unternehmen mit mehreren Marken oder Regionen pflegen für jede Präsenz einen eigenen Website‑Eintrag. Domain, Sprache und Inhalte lassen sich so sauber trennen; das website_id‑Feld auf Seiten, Produkten und Blogs sorgt dafür, dass Inhalte nur auf der jeweiligen Site erscheinen.
2. Branding und Identität
Logo, Favicon und Social‑Links werden pro Website verwaltet — das erleichtert Rebranding oder regionsspezifische Auftritte. Das social_default_image verbessert die Darstellung beim Teilen von Links in sozialen Netzwerken.
3. Sprache und SEO
Mit language_ids und default_lang_id legen Sie die verfügbaren Sprachen und die Start‑Sprache fest. auto_redirect_lang sorgt für automatische Weiterleitung basierend auf Browsersprache; zusammen helfen diese Einstellungen bei hreflang‑Konfiguration und internationaler SEO.
4. Performance und CDN
Wächst der Traffic, entlasten cdn_activated und cdn_url Ihren Server, weil statische Dateien vom CDN ausgeliefert werden. Über cdn_filters steuern Sie genau, welche Pfade umgeschrieben werden.
5. Compliance und Analyse
Die cookies_bar regelt den Cookie‑Hinweis. google_analytics_key und custom_code_head ermöglichen Tracking‑Skripte, während robots_txt den Zugriff von Suchmaschinen steuert — zusammen bilden sie Datenschutz‑ und SEO‑Werkzeuge.
Wie Entwickler das Modell erweitern
Entwickler erweitern das Website‑Modell mit bewährten Odoo‑Mechanismen. Kernpunkt ist die Modell‑Vererbung, ergänzt durch neue Felder und Python‑Logik.
Modellvererbung
Erweitern Sie das Modell mit _inherit = 'website'. So fügen Sie Felder hinzu, überschreiben Methoden oder definieren Constraints. Änderungen bleiben in Ihrem Modul gekapselt und sind upgrade‑freundlich.
Felder hinzufügen
Definieren Sie neue Felder im erweiterten Modell mit passenden Feldtypen: Char, Many2one, Boolean, Integer, Text, Selection. Bei mehrinstanzenfähigen Lösungen beachten Sie, ob Felder website‑abhängig sein müssen.
Python‑Erweiterungen
Überschreiben Sie create, write oder unlink, um zusätzliche Logik auszuführen; nutzen Sie super(), um die Standardimplementierung zu erhalten. Achten Sie insbesondere auf die richtige Behandlung von user_id und company_id bei programmatischer Anlage von Websites.
Odoo Studio
Odoo Studio erlaubt das schnelle Hinzufügen von Feldern ohne Code — praktisch für einfache Anpassungen. Bei komplexen Regeln, Integrationen oder automatisierbarer Einrichtung sind eigenständige Module jedoch nachhaltiger.
Empfohlene Vorgehensweisen
- Legen Sie in der Produktion für jede Website eine konkrete Domain fest — das verbessert Routing, SSL‑Handling und SEO.
- Stellen Sie sicher, dass default_lang_id immer in language_ids enthalten ist; Odoo validiert diese Relation bei Änderungen.
- Nutzen Sie custom_code_head und custom_code_footer für Drittanbieter‑Skripte. Vermeiden Sie direkte Änderungen an Kern‑Templates, um Upgrade‑Konflikte zu minimieren.
- Für Schnittstellen verwenden Sie XML‑RPC oder JSON‑RPC; das Website‑Modell ist über die API verfügbar. Achten Sie beim Synchronisieren von Inhalten auf korrekte Zuordnung der website_id.
- Für eigene Felder nutzen Sie ein Präfix wie x_ oder modulbezogene Präfixe, um Namenskonflikte mit zukünftigen Odoo‑Versionen zu vermeiden.
Häufige Fehler
- Mehrfach vergebene Domains. Das domain‑Feld ist unique; doppelte Domains verursachen Fehler und müssen vermieden werden.
- Vergessen, user_id per API zu setzen. Dieses Pflichtfeld führt bei fehlender Zuweisung zu Validierungsfehlern.
- Homepage‑Pfad ohne führenden Schrägstrich angeben. Odoo prüft das Format und liefert ansonsten einen Fehler.
- cdn_activated aktivieren, ohne eine gültige cdn_url zu konfigurieren. Dann können statische Assets nicht geladen werden.
- Kernmethoden überschreiben, ohne super() aufzurufen. Das kann andere Module beeinträchtigen und zukünftige Updates erschweren.
Fazit
Das Website‑Modell ist das Herzstück der Seitenkonfiguration in Odoo. Es verwaltet Domains, Sprachen, Design und Verhaltensweisen. Wer seine Felder und Verknüpfungen kennt, kann Websites gezielt konfigurieren, anpassen und anbinden.
Egal, ob Sie als Berater mehrere Sites modellieren oder als Entwickler Module schreiben: Eine fundierte Kenntnis des Website‑Modells spart Zeit und reduziert Fehlerquellen.
Brauchen Sie Unterstützung bei Ihrer Odoo‑Implementierung?
Dasolo unterstützt Unternehmen bei der Implementierung, Anpassung und Optimierung von Odoo. Wir sind spezialisiert auf API‑Integrationen und maßgeschneiderte Entwicklung und bringen tiefe Erfahrung mit Odoo‑Datenmodellen wie dem Website‑Modell mit.
Wenn Sie Hilfe bei Ihrer Odoo‑Einführung, beim Aufbau mehrerer Websites oder bei Integrationen benötigen, unterstützen wir Sie gern. Demo vereinbaren um Ihr Projekt zu besprechen.