Magento 2 B2B Catalogs

Strict Whitelist Product Visibility in Magento 2

A strict Magento 2 product whitelist means an authenticated customer can access only products that belong to the customer's effective assortment. Filtering one category collection is not enough. Search, direct URLs, related products, caches, and existing carts can all reveal or retain a SKU through another path.

What belongs in the allowed set

SoftwareSilo builds the allowed set from active custom catalogs assigned to the customer, catalogs assigned to the customer's group, and products assigned directly to that customer. Store-view relations decide which assignments are effective in the current storefront.

This model makes direct exceptions possible without creating a new group or duplicating an entire catalog.

Category and search results

Category pages can use Magento full-text product collections even when no search term exists. The whitelist therefore needs to enter both category and search collection processing. Search-engine filters use product document IDs, while standard collections filter Magento product entity IDs.

The result should be simple: an unauthorized product does not appear in a category result, normal search, or advanced search for the signed-in customer.

Direct product URLs

A buyer may have an old bookmark, an ERP link, or a copied product URL. Strict access cannot rely on navigation hiding. SoftwareSilo checks the requested product against the allowed set and sends a denied request to the configured no-route destination.

This behavior is for logged-in customer contexts. Guest behavior remains governed by Magento's normal catalog configuration.

Related, upsell, and cross-sell products

Magento can expose products through links from another product page. A strict implementation filters linked-product collections as well. Otherwise a restricted SKU may appear as a related item even though category and search results are clean.

Cache separation

Full-page cache is one of the easiest places to create a data leak. If two customers receive different product sets, the cache context must vary when their assignments differ. SoftwareSilo keeps assignment version values for customers and groups and updates them when relations change.

After changing code, layout, or search configuration, clear the relevant Magento caches and rebuild indexes as required. Assignment changes themselves need deterministic cache variation, not a manual cache flush as a business process.

Existing carts

Access rules can change after a product has entered a cart. SoftwareSilo can refresh affected active carts when assignments are updated. This deserves explicit testing because custom checkout modules, quote workflows, and integrations may also manipulate cart items.

Test matrix

Use at least two customers with different catalogs and one account with no allowed products. Check category pages, search, advanced search, product URLs by ID and SKU, related products, My Products, cart, checkout, browser cache, full-page cache, multiple store views, and configurable-product children.

The rule is only strict when every supported route produces the same access decision.

Related product

Last reviewed: August 9, 2026.

Previous Article Customer, Group, and Store View Catalog Assignments in Magento 2
Next Article SoftwareSilo vs Aheadworks Private Catalogs vs Amasty Customer Group Catalog