Przejdź do zawartości

Model strony w Odoo: jak działa konfiguracja witryny

Kompletny przewodnik po modelu strony internetowej w Odoo dla programistów i konsultantów funkcjonalnych
11 marca 2026 przez
Model strony w Odoo: jak działa konfiguracja witryny
Dasolo
| Brak komentarzy na ten moment

Wstęp


W Odoo modele określają strukturę danych zapisywanych w bazie. Każdy element informacji biznesowej — od produktów po wpisy na blogu — ma swoje miejsce w odpowiednim modelu.


Zrozumienie modeli Odoo jest niezbędne zarówno dla programistów, jak i konsultantów funkcjonalnych. To one tworzą szkielet architektury danych: definiują pola, relacje między rekordami oraz logikę biznesową stosowaną podczas zapisu i odczytu.


W tym tekście skupimy się na modelu odpowiadającym za konfigurację strony internetowej. To właśnie on steruje ustawieniami witryny — od domeny i języków po wygląd i integracje zewnętrzne — więc przy pracy z witrynami Odoo często będziesz z nim obcować.

Czym jest model strony w Odoo


Model strony w Odoo przechowuje konfigurację witryny. Zawiera informacje, które decydują o wyglądzie i działaniu serwisu: adres domeny, obsługiwane języki, elementy identyfikacji wizualnej, linki społecznościowe oraz strukturę menu.


Ten model należy do aplikacji Website i jest wykorzystywany przez każdą instalację witryny. W scenariuszach multi-site tworzy się oddzielny rekord dla każdej domeny — każdy rekord może mieć własne ustawienia firmy, języków i szablonów.


Wiele innych modeli odnosi się do modelu strony przez pole website_id. Dzięki temu treści takie jak strony, produkty czy wpisy blogowe można powiązać z konkretną witryną, co ułatwia filtrowanie i separację danych między stronami.

Najważniejsze pola w modelu


Poniżej znajdziesz przegląd kluczowych pól modelu website. Znajomość ich znaczenia przyspieszy konfigurację i debugowanie witryn w Odoo.


1. name

Typ: Char. Pole obowiązkowe przechowujące nazwę witryny. Jest widoczne w panelu administracyjnym i służy jako podstawowa etykieta rozróżniająca strony.


2. sequence

Typ: Integer. Domyślnie 10. Określa kolejność wyświetlania witryn w interfejsie — mniejsze wartości pojawiają się wyżej.


3. domain

Typ: Char. Adres domeny (np. https://www.twojadomena.pl). Odoo automatycznie doda protokół, jeśli go brak. Domena musi być unikalna i służy do routingu oraz SEO.


4. company_id

Typ: Many2one (res.company). Pole obowiązkowe wiążące witrynę z firmą w systemie. W konfiguracjach multi-company witryna pokazuje jedynie dane powiązane z tą firmą.


5. language_ids

Typ: Many2many (res.lang). Lista języków dostępnych na stronie. Umożliwia odwiedzającym przełączanie języków; domyślnie obejmuje wszystkie zainstalowane języki.


6. language_count

Typ: Integer. Pole obliczane. Przechowuje liczbę obsługiwanych języków — przydatne przy prezentacji i filtrowaniu.


7. default_lang_id

Typ: Many2one (res.lang). Pole obowiązkowe określające domyślny język dla nowych odwiedzających. Wartość musi należeć do language_ids.


8. auto_redirect_lang

Typ: Boolean. Domyślnie True. Gdy włączone, użytkownicy są przekierowywani do wersji językowej zgodnej z ustawieniami ich przeglądarki, jeśli jest dostępna.


9. cookies_bar

Typ: Boolean. Jeśli True, na stronie wyświetlany jest pasek zgody na ciasteczka — przydatne przy realizowaniu wymagań RODO. Odoo może automatycznie utworzyć stronę polityki ciasteczek.


10. logo

Typ: Binary. Logo witryny używane w nagłówku i innych miejscach. Jeśli nie ustawiono, wykorzystywane jest domyślne logo Odoo.


11. favicon

Typ: Binary. Ikona wyświetlana na karcie przeglądarki. Odoo skaluje ją do rozmiaru 256x256 px.


12. social_twitter

Typ: Char. URL konta Twitter/X. Domyślnie pobierany z ustawień firmy; wykorzystywany w stopce i przy udostępnianiu treści.


13. social_facebook

Typ: Char. URL konta Facebook. Działa analogicznie do pozostałych pól społecznościowych.


14. social_linkedin

Typ: Char. URL profilu LinkedIn.


15. social_instagram

Typ: Char. URL konta Instagram.


16. social_youtube

Typ: Char. URL kanału YouTube.


17. social_github

Typ: Char. URL profilu GitHub.


18. social_tiktok

Typ: Char. URL konta TikTok.


19. social_default_image

Typ: Binary. Domyślny obraz używany przy udostępnianiu w social mediach. Jeśli ustawiony, używany zamiast logo do tagów Open Graph i kart Twittera.


20. google_analytics_key

Typ: Char. Klucz Google Analytics do śledzenia ruchu. Po konfiguracji Odoo osadza odpowiedni skrypt.


21. google_maps_api_key

Typ: Char. Klucz API Google Maps do modułów lokalizacji i wyświetlania map.


22. user_id

Typ: Many2one (res.users). Pole obowiązkowe wskazujące publicznego użytkownika przypisanego do witryny — używane przy dostępie do portalu i obsłudze anonimowych gości. Domyślnie pobierane z ustawień firmy.


23. cdn_activated

Typ: Boolean. Gdy True, zasoby statyczne mogą być serwowane z CDN, co poprawia wydajność ładowania.


24. cdn_url

Typ: Char. Bazowy adres CDN używany po włączeniu opcjonalnego serwowania zasobów przez CDN.


25. cdn_filters

Typ: Text. Wzorce regex określające adresy URL, które należy przepisać do CDN. Domyślnie obejmuje ścieżki statyczne.


26. menu_id

Typ: Many2one (website.menu). Pole obliczane wskazujące główne menu witryny — korzeń struktury nawigacji.


27. homepage_url

Typ: Char. Ścieżka do strony głównej (np. /kontakt lub /sklep). Powinna zaczynać się od ukośnika.


28. custom_code_head

Typ: Html. Dowolny kod wstrzykiwany w sekcję strony — przydatne do skryptów analitycznych, meta tagów lub zewnętrznych bibliotek.


29. custom_code_footer

Typ: Html. Kod umieszczany w stopce — dobra lokalizacja dla widgetów czatu, skryptów remarketingowych itp.


30. robots_txt

Typ: Html. Treść pliku robots.txt kontrolująca indeksowanie przez roboty wyszukiwarek — istotne dla SEO i ochrony części serwisu przed crawlowaniem.


31. theme_id

Typ: Many2one (ir.module.module). Zainstalowany motyw strony, który determinuje layout i styl całej witryny.


32. auth_signup_uninvited

Typ: Selection. Opcje: b2b (Na zaproszenie) lub b2c (Rejestracja swobodna). Reguluje, czy odwiedzający mogą tworzyć konta bez zaproszenia.


33. create_date

Typ: Datetime. Data utworzenia rekordu — zarządzana automatycznie przez Odoo.


34. write_date

Typ: Datetime. Data ostatniej modyfikacji rekordu — również zarządzana automatycznie.

Jak model strony wpisuje się w procesy biznesowe


1. Multi‑strony i lokalizacja

Firmy prowadzące kilka marek lub działające w różnych regionach zwykle tworzą osobny rekord witryny dla każdego serwisu. Dzięki temu każda strona może mieć własną domenę, języki i treści, a pole website_id na stronach, produktach i wpisach gwarantuje, że zawartość jest przypisana do właściwej witryny.


2. Tożsamość i branding

Logo, favicon oraz linki społecznościowe konfiguruje się per witryna — to marketing często aktualizuje te elementy podczas rebrandingu. Pole social_default_image pomaga zadbać o atrakcyjny wygląd udostępnianych linków w mediach społecznościowych.


3. Języki i SEO

Pola language_ids i default_lang_id decydują, jakie wersje językowe są dostępne. Włączenie auto_redirect_lang poprawia doświadczenie międzynarodowych użytkowników, a poprawna konfiguracja wspiera działania SEO, np. prawidłowe tagi hreflang.


4. Wydajność i CDN

Wraz ze wzrostem ruchu warto rozważyć włączenie cdn_activated i ustawienie cdn_url, żeby odciążyć serwer i przyspieszyć ładowanie zasobów. cdn_filters pozwalają precyzyjnie określić, które ścieżki mają być kierowane przez CDN.


5. Zgodność i analityka

Pasek ciasteczek (cookies_bar) pomaga w spełnieniu wymogów RODO, natomiast google_analytics_key oraz custom_code_head umożliwiają osadzenie narzędzi analitycznych. robots_txt daje kontrolę nad tym, co indeksują roboty wyszukiwarek.

Jak deweloperzy rozbudowują ten model


Deweloperzy rozszerzają model strony, korzystając z kilku sprawdzonych wzorców. Główną techniką jest dziedziczenie modeli w Odoo.


Dziedziczenie modelu

W praktyce stosuje się _inherit = 'website' by dodać pola lub nadpisać metody. Dzięki temu zmiany trafiają do własnego modułu, co ułatwia utrzymanie i aktualizacje systemu.


Dodawanie pól

W rozszerzeniu definiuje się nowe pola odpowiedniego typu: Char, Many2one, Boolean, Integer, Text, Selection. Przy projektowaniu warto przewidzieć zachowanie w scenariuszach multi‑website — czy pole ma być wspólne, czy zależne od witryny.


Rozszerzenia w Pythonie

Możesz nadpisać create, write lub unlink, by dodać logikę biznesową — pamiętaj, by wywołać super(), by nie złamać standardowego przepływu i kompatybilności z innymi modułami. Szczególną ostrożność wymagają operacje ustawiające user_id i company_id przy tworzeniu witryn przez API.


Odoo Studio

Odoo Studio pozwala dodać pola i proste zmiany bez programowania — to szybkie rozwiązanie dla prostych rozszerzeń. Jednak przy złożonej logice lub wymaganiach integracyjnych lepszym wyborem będą dedykowane moduły.

Dobre praktyki


  • W środowisku produkcyjnym ustawiaj domenę dla każdej witryny — to usprawnia routing i wspiera indeksowanie przez wyszukiwarki.
  • Upewnij się, że default_lang_id należy do language_ids — Odoo to weryfikuje przy zmianie.
  • Wszystkie skrypty trzecich stron wstrzykuj lepiej przez custom_code_head lub custom_code_footer, zamiast modyfikować podstawowe szablony — upraszcza to aktualizacje.
  • Przy integracjach API korzystaj z XML‑RPC lub JSON‑RPC; model strony jest eksponowany i należy poprawnie mapować website_id przy synchronizacji treści.
  • Dla własnych pól stosuj prefiksy x_ lub prefiks modułu, żeby uniknąć konfliktów z przyszłymi wersjami Odoo.

Częste błędy


  • Tworzenie zduplikowanych domen. Pole domain ma ograniczenie unikalności — próba dodania tej samej domeny zakończy się błędem.
  • Zapominanie o ustawieniu user_id podczas tworzenia witryn przez API — pole to jest wymagane i brak wartości spowoduje niepowodzenie operacji.
  • Podawanie homepage_url bez wiodącego ukośnika. Odoo waliduje tę wartość i zgłosi błąd, jeśli ścieżka nie zaczyna się od '/'.
  • Włączenie cdn_activated bez poprawnego cdn_url. Skutkiem może być brak ładowania zasobów ze strony i błędy w wyglądzie witryny.
  • Nadpisywanie kluczowych metod bez wywołania super(). Może to złamać działanie innych modułów i utrudnić przyszłe aktualizacje Odoo.

Podsumowanie


Model strony to serce konfiguracji witryny w Odoo — przechowuje domenę, ustawienia językowe, elementy identyfikacji i zachowania. Znajomość jego pól oraz powiązań z innymi modelami pozwala efektywnie konfigurować, rozszerzać i integrować witryny Odoo.


Bez względu na to, czy projektujesz architekturę multi‑site jako konsultant, czy tworzysz moduły jako deweloper, dobre opanowanie modelu strony oszczędzi czasu i zmniejszy ryzyko błędów.

Potrzebujesz pomocy przy wdrożeniu Odoo?


Dasolo wspiera firmy we wdrożeniach, dopasowywaniu i optymalizacji Odoo. Specjalizujemy się w integracjach API oraz rozwoju modułów — mamy doświadczenie z modelami Odoo, w tym z modelem strony.


Jeśli potrzebujesz wsparcia przy wdrożeniu Odoo, konfiguracji wielu witryn lub integracjach — chętnie pomożemy. Umów demo by omówić Twój projekt.

Model strony w Odoo: jak działa konfiguracja witryny
Dasolo 11 marca 2026
Udostępnij ten artykuł
Zaloguj się by zostawić komentarz