Saltar al contenido principal
Los detalles del producto se muestran en inglés. Próximamente traducciones.
Advanced Catalog Visibility for Multi-Website eCommerce — A made-to-order Odoo module that governs which products and categor — 1/1Vista previa ilustrativa

A made-to-order Odoo module that governs which products and categories appear on each of your websites,

with user- and group-based restrictions layered on top.

ECOSIRE builds, installs, and supports it against your exact multi-website setup.

¿Qué es Advanced Catalog Visibility for Multi-Website eCommerce?

A made-to-order Odoo module that governs which products and categories appear on each of your websites, with user- and group-based restrictions layered on top. ECOSIRE builds, installs, and supports it against your exact multi-website setup. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Características clave

Many-to-many `visible_website_ids` relation on `product.template` and `product.public.category`, so one SKU can appear on any subset of your sites without cloning
Stored compute with `@api.depends` resolves effective visibility once in the ORM, keeping `/shop` filtering to a single indexed query instead of per-row Python
`ir.rule` record rules keyed on `website.get_current_website()` and the current user, so hidden products return a clean 404 on direct-slug access — not just an empty grid
User- and group-based restriction via optional links to `res.groups` and partner tags for B2B / dealer-only assortments
Per-website pruning of the public category tree so empty branches never render in navigation, mega-menu, or breadcrumbs
Batch admin actions to publish, hide, or restrict an entire `product.public.category` to a chosen website in one operation
OWL matrix widget in the backend showing the website-by-product / website-by-category visibility grid for fast bulk editing
Consistent enforcement across website search (`_search_get_detail`), product suggestions, sitemap, and JSON-RPC storefront calls — not just the landing grid
`ir.model.access.csv` and a dedicated manager security group scoping who may edit assortment rules
Optional `base.automation` rule so newly created products inherit a default per-site assortment on create
Full read/write over XML-RPC and JSON-RPC so a PIM or middleware can push assortments programmatically
Pricelist- and company-aware design available as scope, so visibility can align with multi-company or B2B pricing boundaries
Sitemap and canonical handling respects per-site visibility, so hidden SKUs are not submitted to search engines from the wrong domain
Built and tested against Odoo 17.0 / 18.0 / 19.0 on both Community and Enterprise, with the version pinned to your instance

Hecho a medida, listo para ti

Sin configuración por tu cuenta: una app funcional creada, instalada y con soporte de ECOSIRE.

  1. 1

    Haces el pedido

    Empieza con un precio único de desarrollo. Definimos el alcance contigo en el arranque.

  2. 2

    Creamos e instalamos

    ECOSIRE la crea, la configura y la instala en tu Odoo.

  3. 3

    En marcha + soporte

    Sales en vivo en aproximadamente una semana laboral, con dos semanas de soporte tras la puesta en marcha. Los defectos en el código que entregamos se corrigen sin coste.

Especificaciones técnicas

Compatibilidad con Odoo
Odoo 17, Odoo 18, Odoo 19
Ediciones
Enterprise y Community
Licencia
La licencia requiere confirmación
Requisito de Python
Python 3.10+
Base de datos
PostgreSQL 12+

Sobre este producto

Running several storefronts from one Odoo database sounds tidy until you try to keep each one showing the right catalog. Out of the box, a product is published or unpublished globally, and the website_id field on product.template only pins a record to a single site rather than letting you curate distinct assortments across many. Teams end up cloning products, toggling is_published by hand, or writing throwaway overrides on the website.published.mixin that break the next time the catalog changes. Add B2B requirements — where a signed-in dealer should see wholesale lines that a public visitor never should — and Odoo's native website eCommerce runs out of road. There is no first-class notion of "this SKU is visible on Site A, hidden on Site B, and restricted to these customer groups everywhere."

We build a dedicated visibility layer that treats per-website assortment and audience restriction as real, queryable data instead of a pile of manual flags. The module adds a many-to-many relation between product.template / product.public.category and website, plus an optional link to res.groups and/or a partner tag for user-based restriction. A stored computed field on the product — for example visible_website_ids, driven by @api.depends on the assortment and category rules — resolves effective visibility so the storefront controller can filter the /shop queryset in a single indexed pass rather than post-filtering in Python. Because the logic lives in the ORM, it applies consistently to the website search, category navigation, product suggestions, and the sitemap, not just the grid the shopper first lands on.

Enforcement is done the Odoo-correct way. We extend the _search_get_detail / website controller path and add ir.rule record rules keyed on the current website.get_current_website() and request.env.user, so a hidden or restricted product cannot be reached even by guessing its slug URL — the record rule denies the read, returning a clean 404 rather than a leaking 403. Category trees are pruned per site so empty branches never render, and ir.model.access.csv covers the new configuration models for the manager group. Admins get a clear management surface: list and form views (XML plus OWL widgets where a matrix helps) showing the website-by-product visibility grid, batch actions to publish or restrict an entire category to a site, and optional base.automation rules so newly created products inherit a default assortment. Everything is read/written over the standard XML-RPC and JSON-RPC API, so a PIM or middleware can drive assortments programmatically.

Because this is built to order, we start from your real database — how many websites, whether you are on Community or Enterprise (this works on both; we note where Enterprise-only website features change the approach), your pricelist and B2B rules, and any existing customizations that touch the shop. We deliver on a staging clone first, run UAT against your actual catalog, and only then schedule the production cutover with a rollback path. Typical delivery is one working week from confirmed scope, targeting Odoo 17.0, 18.0, or 19.0. Pricing starts from $999 (indicative, single-company base scope); additional websites, deeper B2B/pricelist-driven visibility rules, multi-company record-rule design, and PIM/API integration increase the quoted scope.

lo que obtienes

  • Installable module source code for your Odoo version (17.0, 18.0, or 19.0), Community or Enterprise
  • Installation and configuration on your staging environment, then production cutover
  • Technical documentation: data model, computed fields, record rules, and controller extension points
  • End-user guide plus a live training session for your catalog/website administrators
  • UAT on a staging clone against your real catalog, with a documented rollback plan for the production deploy
  • Post-go-live support window for defect fixes and configuration questions
  • Git repository handover with tagged release and commit history
  • Security review notes covering the new `ir.model.access.csv` entries and record rules

¿Para quién es esto?

Multi-brand eCommerce manager

Runs three or four Odoo websites from one database and needs each storefront to show a curated assortment without cloning products or manually toggling publish flags every time the catalog shifts.

B2B / wholesale operations lead

Needs signed-in dealers and wholesale groups to see restricted product lines that public visitors never can, enforced at the record level so a guessed URL cannot leak a restricted SKU.

Odoo administrator / integrator

Owns the Odoo instance and wants visibility logic in the ORM with proper record rules and access control, driveable over XML-RPC/JSON-RPC from a PIM, rather than brittle manual overrides they have to maintain.

Marketplace / franchise operator

Manages many regional or franchise sites and needs per-site catalogs plus a bulk grid to assign categories to sites quickly, with new products inheriting a sane default assortment.

Cómo se compara Advanced Catalog Visibility for Multi-Website eCommerce

CriterioECOSIREConstrucción personalizadaCompetidorNativo de Odoo
Per-website assortmentFirst-class many-to-many product/category-to-website model, curated per sitePossible but you design and maintain the data model yourselfOften a fixed visibility flag with limited multi-site nuance`website_id` pins to one site; global publish only
User / group restrictionBuilt-in `res.groups` and partner-tag restrictions for B2B audiencesBuildable per project, no reusable patternSometimes offered, rarely both site- and user-scoped togetherNo native per-group catalog visibility
Direct-URL security`ir.rule` record rules deny read and return a clean 404Depends on whether the developer adds record rulesFrequently filters the grid but leaks via slug URLUnpublished products can still be probed inconsistently
Fit to your setupScoped to your websites, edition, and B2B rules; UAT on your catalogFully bespoke but slower and costlier to reach parityGeneric; you adapt your process to the appManual flags and cloning to approximate the need
PerformanceStored compute + single indexed shop queryDepends on the developer's approachVaries; some post-filter in PythonFine for one site, awkward across many
API / PIM integrationFull XML-RPC / JSON-RPC read-write, optional auto-assortment ruleWhatever you choose to exposeBackend-UI oriented, limited API surfaceGeneric ORM API, no assortment concept to drive
Support & handoverDocs, training, support window, git repo with tagged releaseTied to the developer who built itVendor ticket queue; source often obfuscatedCommunity/your team only
Version coverageBuilt and tested for your Odoo 17/18/19, Community or EnterpriseWhatever you target and maintainDepends on the vendor's supported versionsBehavior varies by release

Preguntas frecuentes sobre Advanced Catalog Visibility for Multi-Website eCommerce

How long does delivery take?

This is built to order, so typical delivery is one working week from confirmed scope. The timeline depends on how many websites you run, your B2B/pricelist rules, and whether existing customizations touch the shop controller. We confirm the exact schedule in writing after the scoping call, and we always build and UAT on a staging clone before the production cutover.

Does it work on Odoo Community or do I need Enterprise?

It works on both Community and Enterprise for Odoo 17.0, 18.0, and 19.0. The core visibility model, record rules, and controller extensions are Community-compatible. Where an Enterprise-only website feature changes the approach (for example certain website builder or multi-company tools), we note it during scoping and adapt the design to your edition.

How is pricing and scoping decided?

Pricing starts from $999 as an indicative single-company, single-website base scope. Additional websites, deeper B2B/group restrictions, multi-company record-rule design, and PIM/API integration increase the quoted scope. After a short scoping call we send a fixed written quote for your exact requirements — the from-price is a starting point, not the final number.

How do you keep a hidden product from being reached by its direct URL?

Filtering the `/shop` grid alone is not enough — someone could still open a product by guessing its slug. We enforce visibility with `ir.rule` record rules keyed on the current website and user, so a restricted product fails the read and returns a clean 404 rather than leaking through a direct link or the JSON-RPC storefront calls.

What about support and updates after go-live?

Every build includes a post-go-live support window for defect fixes and configuration questions. Because the module targets a specific Odoo major version, we also quote version-upgrade work separately when you move to a newer Odoo release. You receive the full git repository with a tagged release, so your own team or ours can maintain it going forward.

Can our PIM or middleware manage assortments automatically?

Yes. All configuration models are readable and writable over the standard XML-RPC and JSON-RPC API, so a PIM, ETL job, or middleware can assign products and categories to websites and groups programmatically. We can also add an optional `base.automation` rule so newly created products inherit a default per-site assortment on creation.

Will this slow down our storefront?

No — that is exactly why we resolve visibility in a stored computed field and filter the shop queryset in a single indexed pass, rather than loading everything and filtering row-by-row in Python. Enforcement rides on Odoo's own search and record-rule machinery, which is already optimized, so the shop, search, and category navigation stay fast even with large catalogs.

Solicitar presupuesto

Advanced Catalog Visibility for Multi-Website eCommerce

A made-to-order Odoo module that governs which products and categories appear on each of your websites, with user- and group-based restrictions layered on top. ECOSIRE builds, installs, and supports it against your exact multi-website setup.

  • Many-to-many `visible_website_ids` relation on `product.template` and `product.public.category`, so one SKU can appear on any subset of your sites without cloning
  • Stored compute with `@api.depends` resolves effective visibility once in the ORM, keeping `/shop` filtering to a single indexed query instead of per-row Python
  • `ir.rule` record rules keyed on `website.get_current_website()` and the current user, so hidden products return a clean 404 on direct-slug access — not just an empty grid
  • User- and group-based restriction via optional links to `res.groups` and partner tags for B2B / dealer-only assortments

Solicitar presupuesto

Cuéntanos tus necesidades de Advanced Catalog Visibility for Multi-Website eCommerce y te enviaremos precios, opciones de licencia y una propuesta a medida, normalmente en un día hábil.

Sin pago ahora. Esto envía una solicitud de presupuesto a nuestro equipo; te responderemos por correo con precios y próximos pasos.