- Home
- Apps
- Multichannel & PIM Tools
- Product Visibility: Multi-Website Catalog Control
Illustrative previewA build-to-order Odoo module that gives you precise,
bulk control over which products appear on which of your Odoo websites.
ECOSIRE scopes, builds, installs, and supports it for your exact multi-storefront setup.
What is Product Visibility: Multi-Website Catalog Control?
A build-to-order Odoo module that gives you precise, bulk control over which products appear on which of your Odoo websites. ECOSIRE scopes, builds, installs, and supports it for your exact multi-storefront setup. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- Odoo Compatibility
- Odoo 17, Odoo 18, Odoo 19
- Editions
- Enterprise & Community
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- PostgreSQL 12+
About this Product
If you run more than one storefront on a single Odoo database, product visibility quickly becomes a manual chore. Odoo's native is_published flag plus the per-product website_id field let you tie a product to one website or leave it global, but the moment a regional catalog, a wholesale portal, and a retail brand share the same product master, you hit the wall: there is no bulk "assign these 400 products to these 3 websites" action, no single screen showing which SKU is live where, and no guardrails stopping a merchandiser from exposing a draft or region-restricted item on the wrong domain. Teams end up editing products one at a time, forgetting exclusions, and reconciling spreadsheets against the live sites.
This is a build-to-order module that ECOSIRE designs for your specific website topology — it is not an existing download. Technically, we extend product.template (and product.product where you need variant-level control) with an explicit many-to-many visibility relation to website instead of relying on the single website_id Odoo ships with. A compute method with @api.depends derives an effective per-website published state, so the /shop controller and website search only surface products a given website is actually allowed to show. Visibility is enforced end to end: we override the eCommerce product domain so restricted SKUs never appear in listings, related-product blocks, or direct URL access on a website that lacks visibility.
The operational core is a mass-assignment wizard built as a TransientModel, launched from a server action on the product.template list view. Select any number of products, choose target websites, and add, replace, or remove visibility in one transaction — with a QWeb-rendered change summary you can archive for audit. Access is governed by ir.model.access.csv entries plus record rules so a brand's catalog manager can only touch products and websites they own, and every bulk run is written to the chatter and an optional log model for traceability. Where you sync from a PIM or external channel, we expose the visibility fields cleanly over the XML-RPC/JSON-RPC API so create/write calls set website assignment without post-processing. The module targets Odoo 17.0, 18.0, and 19.0 on Community or Enterprise; note that multi-website itself is an Enterprise-tier website capability, so we confirm your edition during scoping and adapt the approach accordingly.
Delivery is build-to-order. After a short scoping call we confirm your website count, catalog size, variant-vs-template granularity, and any PIM/API sync, then send a fixed quote. Typical delivery is one working week from confirmed scope, including UAT on a staging copy of your database and a rollback plan before we touch production. Pricing starts from $999 (indicative, single-company base scope); additional websites, variant-level control, multi-company record rules, PIM/API integration, and data migration of existing visibility state increase the quoted scope.
What you get
- Installable module source code for your Odoo major version (17.0, 18.0, or 19.0), scoped to your website topology
- Installation and configuration on your environment, including server action and menu wiring
- Technical documentation — data model, record rules, wizard flow, and API field reference
- User guide plus a live training session for your catalog and merchandising team
- Post-go-live support window for defect fixes and configuration questions
- UAT on a staging copy of your database with a documented rollback plan before production cutover
- Git repository handover with full commit history and tagged release
- Optional data migration script to seed website visibility from existing `website_id` / published state
Who this is for
Multi-brand eCommerce manager
Runs several Odoo websites off one product master and needs to assign hundreds of SKUs to the right storefronts in bulk, without editing products one at a time or risking wrong-domain exposure.
Odoo administrator / internal IT
Owns the database and wants a maintainable, upgrade-safe extension with proper access rules and API hooks rather than a fragile pile of manual server actions and studio tweaks.
Regional / wholesale operations lead
Manages a region- or channel-specific catalog and needs guaranteed exclusion of restricted products, plus an audit trail of which items went live where and by whom.
PIM / integration owner
Syncs product data from an external system and needs website visibility to be set reliably through the XML-RPC/JSON-RPC API on create/write, with no manual reconciliation afterward.
How Product Visibility: Multi-Website Catalog Control Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Bulk assignment across websites | Wizard applies add/replace/remove to any number of products in one transaction | Possible but you build and maintain the wizard yourself | Often per-product or limited batch, fixed behavior | No bulk action; edit products one at a time |
| Visibility model | Explicit many-to-many product-to-website relation, computed effective state | Whatever you design, quality varies by developer | Generic model that may not fit your topology | Single `website_id` field; global or one website only |
| Access control | `ir.model.access.csv` plus record rules scoped per brand and website | Only if you implement and test it | Usually broad admin-only access | Standard website manager rights, no per-brand scoping |
| Audit trail | Chatter logging plus QWeb change-summary report per bulk run | Build it or go without | Rarely included | No visibility-change audit |
| API / PIM integration | Visibility fields exposed cleanly over XML-RPC/JSON-RPC | Depends on your build | May not expose fields as you need | Only the single `website_id` field over API |
| Fit to your setup | Built to your exact website topology and edition after scoping | Fully bespoke but you own delivery risk | Generic; you adapt your process to the app | You work within core limits |
| Delivery and support | one working week, staging UAT, rollback plan, support window, git handover | Depends on your team's availability and process | Instant download but self-support or ticket queue | No delivery; internal effort only |
| Cost model | From $999 indicative; fixed quote after scoping | Developer time, typically higher and open-ended | Low fixed license, but may need customization anyway | Included in Odoo, but manual labor cost is ongoing |
Frequently Asked Questions about Product Visibility: Multi-Website Catalog Control
Is this an existing app I can download and install today?
No. This is a build-to-order module. ECOSIRE designs, builds, installs, and supports it for your specific multi-website setup after we scope your requirements — it is a productized service, not an off-the-shelf apps.odoo.com download.
How long does delivery take?
Typical delivery is one working week from confirmed scope. After the scoping call we agree on the website count, catalog size, and any integrations, then build, test on staging, and deploy. Larger catalogs, variant-level control, or PIM sync can extend the timeline, which we state in the quote.
How does pricing and scoping work?
Pricing starts from $999 as an indicative single-company base scope. We run a short scoping call, then send a fixed quote. Additional websites, variant-level visibility, multi-company record rules, API/PIM integration, and migration of existing visibility state increase the quoted scope.
What about support and Odoo updates after go-live?
Every build includes a post-go-live support window for defect fixes and configuration questions, and you receive the full git repository. We can also quote an ongoing maintenance retainer to keep the module compatible when you upgrade to a newer Odoo major version.
Which Odoo versions and editions does it support?
We build for Odoo 17.0, 18.0, or 19.0. Note that running multiple websites is an Enterprise website capability, so we confirm your edition during scoping and tailor the implementation — the visibility model works on Community too if your multi-site need is met a different way.
Will it survive Odoo upgrades?
We build as a proper custom module (`__manifest__.py`, model inheritance, XML/OWL views) rather than Studio hacks, which keeps it upgrade-friendly. Odoo major upgrades can still require a compatibility pass, which we can scope as part of a support retainer.
Can it set visibility from our external system?
Yes. The visibility fields are exposed cleanly over the XML-RPC/JSON-RPC API, so your PIM or channel integration can set website assignment directly in `create`/`write` calls without any manual post-processing.
Related Modules

Product Multiple Barcodes
A build-to-order Odoo module that lets you attach unlimited alternate barcodes to a single product and resolve any of them instantly during scanning, search, POS, and inventory operations. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17/18/19 environment.

Product Public QR
A made-to-order Odoo app that publishes clean, public product information pages and generates matching barcode and QR code labels that link straight to them. ECOSIRE builds, installs, and supports it for your Odoo 17, 18, or 19 database.

Quick Commerce Connector
A build-to-order Odoo connector that exposes dark-store level stock to rapid-delivery platforms, accepts slot and cut-off aware orders, and pushes courier handoff events back to the channel. ECOSIRE scopes, builds, installs and supports it on your Odoo 17, 18 or 19.

QuiqUp Last-Mile Connector for Odoo
Dispatch Odoo orders to QuiqUp for same-day UAE/GCC last-mile delivery with labels, live tracking and proof of delivery.
Product Visibility: Multi-Website Catalog Control
A build-to-order Odoo module that gives you precise, bulk control over which products appear on which of your Odoo websites. ECOSIRE scopes, builds, installs, and supports it for your exact multi-storefront setup.
- Adds a many-to-many `website_ids` visibility relation on `product.template` (and optionally `product.product`) instead of Odoo's single `website_id`
- Compute method with `@api.depends` derives an effective per-website published state that the eCommerce controller honors
- Mass-assignment wizard (`TransientModel`) launched from a server action on the product list view for bulk add/replace/remove across selected products
- Three bulk modes — add visibility, replace visibility, and revoke visibility — applied in a single ORM transaction