Magento 2 Extension Custom Catalog / Private Catalog

Magento 2 custom catalog extension for customer-specific assortments, product whitelists, customer and group assignments, store-view scope, and optional API integration.

SoftwareSilo Custom Catalog gives Magento 2 stores a practical way to manage customer-specific product assortments. Instead of duplicating products or storefronts, administrators create named catalogs and assign the right products and buyers.

Built for Magento Open Source B2B projects: The module suits wholesalers, manufacturers, distributors, dealer portals, spare-parts shops, and mixed B2B/B2C stores where signed-in customers should see a defined assortment.

Create reusable catalogs: A custom catalog is a named, active product set. The same catalog can be assigned to several customers or customer groups, which keeps common assortments in one place.

Assign catalogs to individual customers or groups: Use direct customer assignment for key accounts and negotiated assortments. Use customer groups for dealer levels, wholesale segments, regions, or other shared access models. Both paths can contribute products for the same customer.

Add exceptions without creating another catalog: Individual products can be assigned directly to one customer. This is useful for a special spare part, replacement item, restricted brand, or account-specific SKU that does not belong in a shared catalog.

Control assignments by store view: Customer, group, and direct product relations support store-view scope. A global assignment applies across store views unless a store-specific assignment exists for the same context.

Choose the access model that matches the business rule: Strict whitelist mode limits logged-in customers to assigned products. Override hidden if assigned keeps the normal Magento catalog and makes explicitly assigned products accessible even when Magento would otherwise hide them.

Strict mode covers the places buyers actually use: Allowed-product filtering applies to category results, catalog search, advanced search, product pages, and linked product collections. A denied direct product request follows the configured no-route destination.

Give buyers a useful My Products page: Logged-in customers can open a dedicated account page. The merchant chooses whether it shows every allowed product, only products from assigned catalogs, or only products assigned directly to the customer.

Keep daily catalog work manageable: Administrators can create, edit, copy, activate, deactivate, and delete catalogs. Searchable assignment grids handle products, customers, and groups. New-catalog assignments remain staged until the catalog is saved.

Protect cached storefront responses: Assignment versions are part of the customer context used for cache variation. Changes to catalog relations update those versions so one customer's assortment is not reused for another.

Review active carts after access changes: An optional setting refreshes affected customer carts when assignments change. This helps remove products that lost their direct or catalog-based access during administration or integration work.

The SOAP/REST interface is a separate add-on: It supports integration with ERP, CRM, PIM, or middleware for customer-product assignments and bulk jobs. Choose stable customer and product identifiers before automating updates.

Sublogin support is a separate product combination: With SoftwareSilo Sublogin and its Custom Catalog integration, company users can receive their own products or catalogs. Intersection, union, Sublogin-only, and Custom-Catalog-only rules define how the parent account and sublogin sets are combined.

Custom Catalog controls product access, not contract prices: The base module does not create customer-specific prices. It also does not hide CMS pages or remove category nodes. Combine it with pricing or content-permission modules only when those are separate requirements.

Test the real buying paths before launch: Check direct and group assignments, store views, search, category pages, product URLs, related products, My Products, caches, active carts, configurable products, API updates, and any Sublogin merge rule with representative customer accounts.

Build catalogs and add products

Create catalogs as curated assortments and manage the product list per catalog.

Assign catalogs to customers and groups

Assign one or more catalogs to customers or customer groups. Optionally scope by store view.

Strict whitelist or override hidden products

Choose between assigned-only access or overriding hidden products if assigned.

Search and categories respect access

Category pages and search results are filtered to allowed products for the current customer context.

Dedicated product page

Customers get a dedicated product page that shows only the products assigned to their catalog access.

Bulk customer-product assignments

Create or update many customer-product assignments in one admin workflow. Ideal for larger catalogs and recurring assortment updates.

Cache-safe customer-specific access

Full page cache varies by access context to avoid leaking products between customers.

  • Current Version1.0.4
  • Compatible with Magento 2.4.6 - 2.4.9
  • Compatible with PHP 8.1 - 8.5

If your environment differs from the listed requirements, we can check compatibility in advance. Please contact us via our contact form.

custom-catalog

Version 1.0.4 - 2026-08-04

Changed
  • Replaced the module information block with the shared Extension Manager extension
Fixed
  • Fixed custom catalog assignment editing so selections remain staged until save and catalog data plus all assignments commit atomically
  • Fixed customer and customer-group storefront cache variation after assigned products are deleted

Version 1.0.3 - 2026-06-16

Added
  • Added SSO compatibility by lazy-loading customer sessions in frontend catalog visibility services

Version 1.0.2 - 2026-05-08

Added
  • Added buffered admin assignment staging for products, customers, and customer groups while creating new custom catalogs
Fixed
  • Fixed admin custom catalog listing fulltext search
  • Fixed admin grid load customer emails from customer entity instead of customer grid table
  • Restricted mutating customer and customer-group assignment controllers to the save ACL resource
  • Fixed customer-product unassign actions to delete through the repository so assignment versions and cart refresh hooks run
  • Fixed the custom catalog edit delete button to submit POST data to the POST-only delete controller

Version 1.0.1 - 2026-03-09

Added
  • Added a configurable `My Products` display mode with support for showing all allowed products, custom catalog products only, or direct product assignments only
  • Added `Copy` and `Delete` mass actions to the custom catalog admin grid
Fixed
  • Excluded the `NOT LOGGED IN` customer group from admin assignment workflows and rejected guest-group assignments on the customer-group controller path
  • Fixed cart refresh wiring so `refresh_cart_on_items_update` is respected consistently across direct customer-product changes and catalog assignment updates

Version 1.0.0 - 2026-02-16

Added
  • Initial release
Module-Specific Questions
What is a Magento 2 custom catalog extension?

It controls which products a logged-in customer can access. SoftwareSilo groups products into named catalogs, assigns them to customers or customer groups, and also supports direct product assignments for individual accounts.

Who is SoftwareSilo Custom Catalog best for?

It fits Magento Open Source B2B stores that sell different assortments to wholesalers, dealers, distributors, key accounts, service partners, or regional customer groups.

What is included in the base license?

The base license includes named catalogs, product assignment, customer and group assignment, direct customer-product assignment, store-view scope, two access modes, My Products, search and category filtering, catalog copying, cache variation, and optional cart refresh.

Can I create more than one custom catalog?

Yes. You can create multiple active or inactive catalogs and give each one its own product set. A catalog can be reused across several customers and groups.

Can I assign a catalog to one customer?

Yes. Direct customer assignment is suitable for a key account or any buyer with a negotiated assortment.

Can I assign a catalog to a customer group?

Yes. Group assignment applies the catalog to customers in a selected Magento customer group, such as wholesale, dealer, or service-partner accounts.

Can one customer receive products from several catalogs?

Yes. Products from effective customer and customer-group catalog assignments are combined. Directly assigned customer products can contribute additional items.

Can I assign a single product without creating a catalog?

Yes. Direct customer-product assignment adds an account-specific exception without creating another shared catalog.

Are assignments store-view specific?

They can be. Customer, group, and direct product relations use store IDs. A global relation acts as a fallback when no store-specific relation exists for that context.

What is strict whitelist mode?

For logged-in customers, strict whitelist mode allows only products assigned through effective catalogs or direct product relations. Other products are filtered from supported listings and denied on direct product views.

What does Override hidden if assigned mean?

Magento keeps its normal catalog behavior, but an explicitly assigned product can be opened even when its standard catalog visibility would normally prevent that customer from viewing it.

Does strict mode filter category pages?

Yes. Product collections on category pages are limited to allowed product IDs. The module filters products, but it does not remove the category node itself.

Does strict mode filter Magento search?

Yes. The extension applies the allowed product set to catalog search and advanced search collections, including search-engine document filtering.

What happens when a customer opens a forbidden product URL?

In strict mode, a denied direct product request is redirected to the configured no-route destination, normally the Magento 404 route.

Are related and linked products filtered?

Yes. In strict mode, linked product collections are limited to allowed product IDs so a restricted item is not exposed through a related-product relationship.

Does the module restrict guest visitors?

Strict whitelist filtering is applied to authenticated customer contexts. Guest catalog behavior remains under Magento's normal catalog and visibility configuration.

What is the My Products page?

It is a customer-account page that lists products available through the configured assignments. The account links appear when the module is active and the resulting list is not empty.

Can I control what appears in My Products?

Yes. The page can show all allowed products, only products from assigned custom catalogs, or only products assigned directly to the customer.

Does Custom Catalog set customer-specific prices?

No. The module controls product access and assortment. Use a pricing extension when the same customers also need contract prices or price lists.

Does it hide categories or CMS pages?

No. It filters products from categories and search but does not manage category-node visibility or CMS-page permissions. Aheadworks and Amasty cover some of those broader content rules.

Can administrators copy a catalog?

Yes. Catalog copy and mass-copy actions help create a similar assortment without selecting every product again. Review customer and group assignments on the copied record before using it.

What happens to active carts when assignments change?

When cart refresh is enabled, assignment changes can remove affected products from active customer carts. Test this behavior with the store's checkout and integration processes.

How does the module prevent cache leakage between customers?

Customer and group assignment versions are included in the storefront context used for cache variation. Assignment updates bump the relevant version.

What does the SOAP/REST API add-on provide?

The separate API add-on exposes customer-product assignment operations for ERP, CRM, PIM, or middleware integrations, including bulk processing.

Can an integration use external customer and product identifiers?

The configuration can select customer and product attribute codes for API resolution instead of Magento entity IDs. The chosen attributes must contain stable, unique values in the integration design.

Does it work with SoftwareSilo Sublogin?

Yes, through the separate Sublogin Custom Catalog integration. It can apply catalogs and products to company users and respects Sublogin access permissions.

How are parent-account and sublogin products combined?

The integration supports intersection, union, Sublogin-only, and Custom-Catalog-only modes. Intersection is the restrictive default and returns only products present in both effective sets.

Is this an alternative to Adobe Commerce Shared Catalogs?

It is an option for Magento Open Source projects focused on product assortment. Adobe Shared Catalogs also include company assignment and custom pricing, so the two scopes are not identical.

How does it differ from Aheadworks and Amasty?

SoftwareSilo focuses on product sets, customer and group assignment, direct product exceptions, store-view scope, and Sublogin integration. Aheadworks and Amasty also cover broader price, category, CMS, button, or rule features depending on the product.

Is Firebear a direct Custom Catalog competitor?

Not for the same base requirement. Firebear Improved Import and Export automates Adobe Commerce B2B entities such as Shared Catalogs. It is primarily a data-integration solution rather than a Magento Open Source product-access module.

General Questions
How many Magento installations is the license valid for?

The license is valid for one Magento installation, including multi-website operation. In addition, the module may be installed on any number of development or staging servers. You can find further details in our license terms.

Is installation included in the price?

Installation and configuration are not included in the price. On request, we can support you with a smooth integration into your system.

What payment methods are available?

You can pay by credit card (Stripe) or bank transfer (prepayment). For credit card payments, the order is processed immediately and the access credentials are provided directly in a separate follow-up email.

What does the order process look like?

After credit card payment, you immediately receive access credentials to obtain the module via Composer. For bank transfer, access is granted once the invoice is paid.

I need a custom modification of the module. Is that possible?

Custom requests are no problem. We tailor our Magento 2 modules to your project and maintain a dedicated internal version so we always know exactly what runs on your system for support.

Can I install a demo version locally?

On each module detail page, you can request your own demo instance and test the module intensively for 7 days. However, we do not provide a local demo version.

Is the source code encrypted?

No, the source code of our modules is not encrypted. If you need a customization, feel free to send us a request. We will get back to you promptly with a non-binding quote.

What is the update policy and support?

You can add a support package to your order. It includes assistance as well as updates and upgrades related to the module. No continuous subscription is required.

I already have a license. How can I perform an update?

You can complete the license update here. If you have an active support package, you receive updates automatically via Composer. If your support package has expired, you can renew your license here or in your account.

I have another question — how can I contact you?

You can reach us anytime via eMail.

Custom Catalog / Private Catalog

×

Ideal for these industries & use cases

Contract assortments

Hide most of the catalog and only expose products that are part of a contract or account agreement.

Customer-specific products

Assign individual products to specific customers without creating many customer groups.

Catalogs by customer group

Maintain standard assortments for groups like wholesalers, retailers or partners.

Sales-curated assortments

Let sales teams build catalogs for key accounts and keep them consistent across store views.

ERP and PIM synchronization

Automate customer-product assignments using the REST API for daily sync jobs.

My Products page

Provide a dedicated page for customers to browse only what they are allowed to order.

Try it without risk

Request a personal demo instance and evaluate the module directly in backend and frontend under real conditions — without local installation.

For developers

Practical Magento 2 guides, technical developer documentation, and API references (REST, SOAP, GraphQL) for installation, configuration, and troubleshooting.

Go to Knowledge Base