Skip to Content

PMIS Products Multi Website

Beta License: LGPL-3 PMISuite/stock-accounting Version: 18.0

Makes a product available on several websites while retaining Odoo's standard single Website field. Website assignments belong to the product template and apply to all its variants.

The same website assignment rules apply to eCommerce Categories (product.public.category).

Features

  • Select additional Websites on the product form.

  • Assign eCommerce categories to multiple websites, including category searches, shop navigation, and category URL access.

  • Use the same website availability for shop searches, publication status, public product access, and cart eligibility.

  • Replace or clear additional website assignments for selected products in one operation.

  • Retain standard product write permissions, company restrictions, and publication controls.

  • Include Slovenian translations for the added fields, help text, and wizard.

Configuration and usage

The only declared dependency is website_sale (eCommerce). Odoo installs its dependencies automatically, including website, mail, and account; these do not need separate declarations in this addon.

Configure the websites in Odoo. The website fields on the product form require membership in website.group_multi_website. Users also need the normal product editing permissions to change assignments; showing the fields does not grant write access.

  1. Open a product in Website > eCommerce > Products > Products.

  2. In the sales information, set Website and/or Websites.

  3. Publish the product using Odoo's standard publication control. Assignment alone does not publish an unpublished product.

Availability follows these rules:

  • When both fields are empty, the product is available on all websites.

  • Website alone restricts it to that website.

  • Websites alone restricts it to the selected websites.

  • When both fields are set, the product is available on their combined set.

Normal shop conditions still apply: the product must be active and saleable, belong to the website's company or have no company, and be published for public visitors. Internal users retain Odoo's ability to preview unpublished products.

Existing single-website assignments

Products with an existing Website value and no additional Websites keep their single-website restriction. Adding Websites does not replace or clear Website. For example, Website = A and Websites = B, C makes the product available on A, B, and C, subject to the normal shop conditions. Clear Website only if A should no longer be included and the additional selection should be the complete set of allowed websites.

Mass assignment

  1. Select products in the product template list.

  2. Choose Action > Mass Update Product Websites.

  3. Select the additional websites and click Update.

The selection replaces the existing Websites assignments; it does not append to them. An empty selection clears additional assignments. The single Website field and publication state remain unchanged. Clearing additional assignments makes a product available everywhere only when Website is also empty. The wizard is available to internal users, but it updates products with the current user's permissions. Users need write access to every selected product, including access under the applicable company rules.

Data model notes

product.template.website_ids stores the additional assignments. product.product.website_ids is writable and related to the template, so updating a variant affects every variant of that template. The wizard supports both models through its action context; its menu action is bound to the product template list.

Publication remains a single shared is_published flag. There is no separate publish/unpublish state per website. The computed website_published flag also checks website availability when a website is present in the context. Without a website context, publication values and searches use the shared flag. Unpublishing therefore affects every assigned website.

Explicit single-website filters retain their literal meaning. When a current website is available from the request or context, Odoo's standard website_id in [False, current_id] domain is extended to include additional assignments. Both database searches and filtered_domain() use this rule, including product snippets and optional-product dialogs. Shop domains also resolve the website when called on an empty website recordset.

Product URL eligibility checks honor both assignment fields. Calls passing an explicit website_id to can_access_from_current_website() retain Odoo's forced website restriction behavior. These routing checks do not replace publication checks or access rules.

Prices, website content, and variant-specific website assignments are outside this addon's scope. Slovenian UI translations are provided in i18n/sl.po; their display depends on the user's Odoo language configuration.

eCommerce Categories

Open Website > eCommerce > eCommerce Categories and set Website and/or Websites on a category. Both fields form a combined set; leaving both empty makes the category available everywhere. Existing single-website assignments keep their restriction. Categories do not have a publication flag.

In the category list, select categories and choose Action > Mass Update Category Websites. The selection replaces additional assignments; an empty selection clears them. The single Website field remains unchanged. Users need Odoo's normal category editing permissions for every selected category.

Assignments are independent for each category and do not propagate to parents, children, or products. Assign parent categories to the same websites as their children to keep the hierarchy navigable. Products retain their own website assignments and publication state.

Credits

Authors

Maintainers

LUXIM MATMOZ

Luxim is an independent R&D and deployment company focused on solving complex problems in the Odoo ecosystem.

Odoo Community Association

Luxim is an active member of OCA (Odoo Community Association).