website: fields, relations and API
The website model ("Website") is a persistent model declared by the Base module, then extended by 19 other modules. It exposes 107 fields, 101 of them declared directly on the model; 34 fields from other models point to it. Below you will find every field with its technical name, type, label and relations, followed by an Odoo 20 JSON-2 API call.
Model identity
- Technical name
website- Label
- Website
- Type
- Persistent (models.Model)
- SQL table
website- Origin module
- Base (
base) - Extended by
- website, website_profile, website_slides, website_event, website_event_track, website_sale, website_address_autocomplete, website_blog, website_crm, website_livechat, website_partnership, website_crm_partner_assign, website_customer, website_event_exhibitor, website_forum, website_hr_recruitment, website_sale_stock, website_sale_collect, website_sale_mass_mailing
- Default order (_order)
sequence, id- Inherits from (mixins)
- website.structured_data.mixin
Model fields
101 own fields, 0 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.
107 of 107 fields shown
| Technical name | Label | Type | Details |
|---|---|---|---|
| account_on_checkout | Customer Accounts | selection | Values: added by eCommerce ( |
| align_category_content | Align Category Content Align the category content on the shop page. Corresponds to the 'Center Content' editor option. | boolean | added by eCommerce ( |
| app_icon | Website App Icon This field holds the image used as mobile app icon on the website (PNG format). | image | read-onlycomputed, stored added by Advanced Events ( |
| auth_signup_uninvited | Customer Account | selection | Values: added by Website ( |
| auto_redirect_lang | Autoredirect Language Should users be redirected to their browser's language | boolean | added by Website ( |
| block_third_party_domains | Block 3rd-party domains Block 3rd-party domains that may track users (YouTube, Google Maps, etc.). | boolean | added by Website ( |
| blocked_third_party_domains | List of blocked 3rd-party domains | text | computed added by Website ( |
| cart_abandoned_delay | Abandoned Delay | float | added by eCommerce ( |
| cart_recovery_mail_template_id | Cart Recovery Email | many2one | added by eCommerce ( |
| cdn_activated | Content Delivery Network (CDN) | boolean | added by Website ( |
| cdn_filters | CDN Filters URL matching those filters will be rewritten using the CDN Base URL | text | added by Website ( |
| cdn_url | CDN Base URL | char | added by Website ( |
| channel_id | Website Live Chat Channel | many2one | added by Website Live Chat ( |
| company_id | Company | many2one | required |
| configurator_done | Configurator Done True if configurator has been completed or ignored | boolean | added by Website ( |
| confirmation_email_template_id | Confirmation Email Template | many2one | added by eCommerce ( |
| contact_us_link_url | Link URL | char | translatable added by eCommerce ( |
| cookie_policy_id | Cookie Policy Page Page used as the Cookie Policy link in the cookies bar. | many2one | added by Website ( |
| cookies_bar | Cookies Bar Display a customizable cookies bar on your website. | boolean | added by Website ( |
| crm_default_team_id | Default Sales Teams Default Sales Team for new leads created through the Contact Us form. | many2one→ crm.team | added by Contact Form ( |
| crm_default_user_id | Default Salesperson Default salesperson for new leads created through the Contact Us form. | many2one | added by Contact Form ( |
| currency_id | Default Currency | many2one | computed added by eCommerce ( |
| custom_blocked_third_party_domains | User list of blocked 3rd-party domains | text | added by Website ( |
| custom_code_footer | Custom end of <body> code | html | added by Website ( |
| custom_code_head | Custom <head> code | html | added by Website ( |
| default_lang_id | Default Language | many2one→ res.lang | required added by Website ( |
| domain | Website Domain E.g. https://www.mydomain.com | char | |
| domain_punycode | Punycode Domain | char | read-onlycomputed, stored |
| ecommerce_access | Ecommerce Access | selection | required Values: added by eCommerce ( |
| events_app_name | Events App Name This fields holds the Event's Progressive Web App name. | char | computed, stored added by Advanced Events ( |
| extra_step_category_ids | Extra Step Categories If set, the extra step is only shown when the cart contains products from these eCommerce categories. | many2many | added by eCommerce ( |
| favicon | Website Favicon This field holds the image used to display a favicon on the website. | binary | added by Website ( |
| forum_count | Forum Count | integer | read-only added by Forum ( |
| google_analytics_key | Google Analytics Key | char | added by Website ( |
| google_maps_api_key | Google Maps API Key | char | added by Website ( |
| google_places_api_key | Google Places API Key | char | added by Website Address Autocomplete ( |
| google_search_console | Google Search Console Google key, or Enable to access first reply | char | added by Website ( |
| has_social_default_image | Has Social Default Image | boolean | computed, stored added by Website ( |
| header_search_limit | Header Search Suggestions Number of autocomplete suggestions of the header search bar, 0 to disable them. | integer | added by Website ( |
| header_search_order_by | Header Search Sort Order in which the header search bar sorts its results. | char | required added by Website ( |
| header_search_type | Header Search Scope Type of records the header search bar searches within. | char | required added by Website ( |
| homepage_url | Homepage Url E.g. /contactus or /shop | char | added by Website ( |
| in_store_dm_id | In-store Delivery Method | many2one | computed added by Click & Collect ( |
| journal_id | Default Website Journal | many2one | added by eCommerce ( |
| karma_profile_min | Minimal karma to see other user's profile | integer | added by Website profile ( |
| language_count | Number of languages | integer | computed added by Website ( |
| language_ids | Languages | many2many→ res.lang | required added by Website ( |
| llms_txt | LLMs.txt | text | added by Website ( |
| logo | Website Logo Display this logo on the website. | binary | added by Website ( |
| menu_id | Main Menu | many2one | computed added by Website ( |
| name | Website Name | char | required |
| newsletter_id | Newsletter List | many2one | added by Checkout Newsletter ( |
| partner_id | Public Partner | many2one | related: added by Website ( |
| plausible_shared_key | Plausible Shared Key | char | added by Website ( |
| plausible_site | Plausible Site | char | added by Website ( |
| prevent_sale | Hide Add To Cart | boolean | added by eCommerce ( |
| prevent_sale_for | Prevent Sale For | selection | Values: added by eCommerce ( |
| prevent_sale_for_categories | Categories | many2many | added by eCommerce ( |
| pricelist_id | Pricelist | many2one | computed added by eCommerce ( |
| pricelist_ids | Price list available for this Ecommerce/Website | one2many | computed added by eCommerce ( |
| product_page_cols_order | Product Page main columns order | selection | Values: added by eCommerce ( |
| product_page_container | Product Page Container | selection | Values: added by eCommerce ( |
| product_page_grid_columns | Product Page Grid Columns | integer | added by eCommerce ( |
| product_page_image_layout | Product Page Image Layout | selection | required Values: added by eCommerce ( |
| product_page_image_ratio | Product Page Image Ratio | selection | required Values: added by eCommerce ( |
| product_page_image_ratio_mobile | Product Page Image Ratio Mobile | selection | required Values: added by eCommerce ( |
| product_page_image_roundness | Product Page Image Roundness | selection | required Values: added by eCommerce ( |
| product_page_image_spacing | Product Page Image Spacing | selection | required Values: added by eCommerce ( |
| product_page_image_width | Product Page Image Width | selection | required Values: added by eCommerce ( |
| rating_email_delay | Days After Order to Send Rating Email | integer | added by eCommerce ( |
| rating_email_template_id | Rating Email Template | many2one | added by eCommerce ( |
| restricted_uom_ids | Restrict Packagings | many2many→ uom.uom | added by eCommerce ( |
| robots_txt | Robots.txt | html | added by Website ( |
| salesperson_id | Salesperson | many2one | added by eCommerce ( |
| salesteam_id | Sales Team | many2one→ crm.team | added by eCommerce ( |
| send_abandoned_cart_email_activation_time | Time when the 'Send abandoned cart' feature was activated for emails followup. | datetime | computed, stored added by eCommerce ( |
| send_abandoned_cart_followup | Send Follow-up | boolean | added by eCommerce ( |
| send_order_rating_emails | Request ratings | boolean | added by eCommerce ( |
| sequence | Sequence | integer | |
| shop_default_sort | Shop Default Sort | selection | required Values: added by eCommerce ( |
| shop_extra_field_ids | E-Commerce Extra Fields | one2many | inverse: added by eCommerce ( |
| shop_gap | Grid-gap on the shop | char | added by eCommerce ( |
| shop_opt_products_design_classes | Shop Design Class CSS class for shop products design | char | added by eCommerce ( |
| shop_page_container | Shop Page Container | selection | Values: added by eCommerce ( |
| shop_ppg | Number of products in the grid on the shop | integer | added by eCommerce ( |
| shop_ppr | Number of grid columns on the shop | integer | added by eCommerce ( |
| show_category_description | Show Category Description Display the category description on the shop page. Corresponds to the 'Show Description' editor option. | boolean | added by eCommerce ( |
| show_category_title | Show Category Title Display the category title on the shop page. Corresponds to the 'Show Title' editor option. | boolean | added by eCommerce ( |
| show_line_subtotals_tax_selection | Display Product Prices | selection | requiredcomputed, stored Values: added by eCommerce ( |
| show_product_reference_price | Product Reference Price | boolean | added by eCommerce ( |
| social_default_image | Default Social Share Image If set, replaces the website logo as the default social share image. | binary | added by Website ( |
| specific_user_account | Specific User Account If True, new accounts will be associated to the current website | boolean | added by Website ( |
| tax_display | Tax Display | selection | computed Values: added by eCommerce ( |
| theme_id | Theme Installed theme | many2one | added by Website ( |
| user_id | Public User | many2one | required |
| warehouse_id | Warehouse | many2one | added by Product Availability ( |
| website_slide_google_app_key | Google Doc Key | char | added by eLearning ( |
| wishlist_gap | Wishlist Grid Gap Gap between products on the wishlist page | char | added by eCommerce ( |
| wishlist_grid_columns | Wishlist Grid Columns Number of columns to display on the wishlist page | integer | added by eCommerce ( |
| wishlist_mobile_columns | Wishlist Mobile Columns Number of columns to display on mobile for the wishlist page (1 or 2) | integer | added by eCommerce ( |
| wishlist_opt_products_design_classes | Wishlist Page Design Class CSS class for wishlist page design | char | added by eCommerce ( |
| create_date | Created on | datetime | read-onlyautomatic |
| create_uid | Created by | many2one | read-onlyautomatic |
| display_name | Display Name | char | read-onlycomputedautomatic |
| id | ID | integer | read-onlyautomatic |
| write_date | Last Updated on | datetime | read-onlyautomatic |
| write_uid | Last Updated by | many2one | read-onlyautomatic |
Relations
Models linked from this model
- account.journal: journal_id
- crm.team: crm_default_team_id, salesteam_id
- delivery.carrier: in_store_dm_id
- im_livechat.channel: channel_id
- ir.module.module: theme_id
- mail.template: cart_recovery_mail_template_id, confirmation_email_template_id, rating_email_template_id
- mailing.list: newsletter_id
- product.pricelist: pricelist_id, pricelist_ids
- product.public.category: extra_step_category_ids, prevent_sale_for_categories
- res.company: company_id
- res.currency: currency_id
- res.lang: default_lang_id, language_ids
- res.partner: partner_id
- res.users: crm_default_user_id, salesperson_id, user_id
- stock.warehouse: warehouse_id
- uom.uom: restricted_uom_ids
- website.menu: menu_id
- website.page: cookie_policy_id
- website.sale.extra.field: shop_extra_field_ids
Fields of other models pointing here
- account.move: website_id
- base.language.install: website_ids
- blog.post: website_id
- coupon.share: program_website_id, website_id
- crm.reveal.rule: website_id
- forum.post: website_id
- ir.asset: website_id
- ir.attachment: website_id
- ir.ui.view: website_id
- loyalty.rule: website_id
- payment.provider: website_id
- product.feed: website_id
- product.pricelist: website_id
- product.stock.notification: website_id
- product.wishlist: website_id
- res.company: website_id
- res.config.settings: website_id
- res.users: website_id
- sale.order: assigned_website_id, website_id
- sale.report: website_id
- slide.channel.partner: channel_website_id
- stock.picking: website_id
- website.checkout.step: website_id
- website.controller.page: website_id
- website.menu: website_id
- website.multi.mixin: website_id
- website.page: website_id
- website.page.properties.base: website_id
- website.rewrite: website_id
- website.sale.extra.field: website_id
- website.snippet.filter: website_id
- website.visitor: website_id
Reading this model through the API
Odoo 20 JSON-2 API call reading the first five records with real fields of the model. Replace the instance, database and API key with your own.
curl -X POST "https://your-instance.odoo.com/json/2/website/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: your-db" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["name","company_id","default_lang_id","ecommerce_access","header_search_order_by"],"limit":5}'import requests
BASE_URL = "https://your-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "your-db"}
res = requests.post(
f"{BASE_URL}/website/search_read",
headers=headers,
json={"domain": [], "fields": ["name","company_id","default_lang_id","ecommerce_access","header_search_order_by"], "limit": 5},
)
res.raise_for_status()
print(res.json())- External API access requires Odoo's Custom plan.
- XML-RPC and JSON-RPC will be removed in Odoo 22 (fall 2028): use JSON-2.
- The access rights and record rules of the key's user apply.
Cite this tool
Writing a tutorial, internal documentation or a forum answer? Copy this link to send your readers to the up-to-date reference.
<a href="https://aidoo.ai/en/outils/explorateur-modeles-odoo/website">website (Odoo 20.0)</a>Sources
Data verified on September 25, 2026 · Odoo 20.0 Community
Have an Odoo project, or want to put your ERP to work with AI? Let's talk
Implementation, custom module development, connecting Claude or ChatGPT to your data: tell us about your context and we will reply within 24 business hours.