How to Create a Private WooCommerce Store:
Password Protected Categories and Hidden Pricing
Many wholesale businesses need to hide prices, restrict catalog sections, and control exactly who can see what. This is not a niche requirement — it is fundamental to running B2B and B2C from the same WooCommerce store without exposing your trade pricing to the public.
Updated 2026
B2B Visibility & Catalog Control

Wholesale pricing is confidential business information. The rates you offer to trade buyers — negotiated over time, tiered by volume and relationship, representing margin decisions specific to each account — are not meant for your retail customers, your competitors, or the general public. Yet by default, WooCommerce displays your prices to every visitor. A retail customer browsing your store sees the same catalog as your biggest wholesale account. A competitor can view your trade pricing in thirty seconds.
The problem compounds when you operate a hybrid store — one that serves both retail customers and wholesale buyers from the same WooCommerce installation. Your retail customers should browse and purchase freely. Your wholesale buyers should see different prices and access products or categories that retail customers cannot. And unregistered visitors should see either your retail catalog or a registration prompt, not your wholesale terms.
This is catalog access control — and it is one of the most operationally important features of a professional WooCommerce wholesale setup. This guide covers how it works, what you need to configure, and how to implement it correctly using B2B Wholesale Solution for WooCommerce by NEXU WP — the WooCommerce plugin that handles retail restrictions, role-based visibility, and private pricing in one system.
Why hiding wholesale prices is a business necessity
The reasons for keeping wholesale pricing private go beyond simple preference. They’re rooted in how wholesale relationships work and what public price visibility does to those relationships.
A retail customer who can see that your trade buyers pay 40% less than the retail price will reasonably expect some explanation or accommodation. If your wholesale pricing is visible to anyone who browses your site, you will receive requests from retail buyers asking for the wholesale rate, complaints about unfair pricing, and pressure to discount retail sales. None of this advances your business and all of it consumes your team’s time.
Your wholesale pricing represents your margin structure and your competitive positioning. A competitor who can see exactly what you charge trade buyers can price just below you without the effort of developing a competitive offer from scratch. Keeping wholesale prices behind a login wall means your pricing intelligence stays with the customers who have earned it.
Trade buyers who have applied for and been approved as wholesale accounts expect the pricing they receive to be exclusive to that relationship. When wholesale prices are publicly visible, the value proposition of being an approved trade account weakens. The pricing feels less like a reward for the relationship and more like a discount anyone could see — which reduces the perceived value of the wholesale program itself.
If you distribute products from other manufacturers or brands, your distribution agreement may explicitly require that wholesale or distributor pricing not be publicly disclosed. Violating this through an unprotected WooCommerce store could expose you to contract liability. Checking your distribution agreements for pricing disclosure requirements should be part of any wholesale store setup.
The three visibility layers in a hybrid WooCommerce B2B and B2C store
A properly configured hybrid store operates with three distinct visibility states — three different experiences depending on who is viewing the store and what access level they carry. Understanding these three layers is the foundation for configuring catalog access control correctly.
Sees: your public retail catalog and retail prices. Does not see: wholesale prices, wholesale-only products, or any B2B pricing. If they reach a product that is restricted to wholesale only, they should see either a “login to view pricing” message or a prompt to apply for a trade account — not the wholesale price itself, and not an error page that reveals the product exists but is inaccessible without explanation.
Sees: the full retail catalog and retail prices. May see information about your wholesale program or a trade account application link. Does not see: wholesale prices, wholesale-only products, or B2B exclusive catalog items. The experience is the same as Layer 1 in terms of pricing visibility — login does not grant wholesale access unless the account has been assigned a wholesale role.
Sees: their role-specific wholesale prices on all products where wholesale pricing is configured, plus any wholesale-exclusive products or catalog sections that are restricted from retail customers. The retail price is replaced by their wholesale price automatically on login. They can see and purchase products that retail customers cannot access at all.
Configuring retail restrictions at the product level
The retail restriction configuration in B2B Wholesale Solution for WooCommerce — the plugin built for private catalog and access-controlled wholesale stores is handled at the product level, within the same product editor interface where you configure wholesale pricing and purchase rules. This keeps all wholesale product configuration in one place and makes it straightforward to review a product’s access settings at a glance.

The retail restriction settings let you define, for each product: whether retail customers can see the product at all, whether they can see the product but not the price (showing a “login for pricing” message instead), whether they can see the product and a retail contact prompt but not purchase it, or whether the product is completely invisible to non-wholesale accounts. Each of these states serves a different strategic purpose, and choosing the right one for each product type is a business decision as much as a technical one.
Best for: Products that are wholesale-exclusive, not sold to the public under any circumstances. Distributor-specific bundles, trade-only product lines, or items with distribution agreements requiring non-public pricing. Retail customers will not see this product in search results, category listings, or direct URL access. Only logged-in wholesale buyers with the appropriate role will see it.
Best for: Products that are available in both retail and wholesale channels, but where you want to drive trade buyers toward account registration before revealing wholesale pricing. The product is discoverable in the catalog and visible in search, but the price shows as “Login for wholesale pricing” or a similar call to action. This approach generates trade account applications while keeping pricing confidential.
Best for: Products where retail customers may have a legitimate interest but the purchase pathway requires a conversation — high-value items, products requiring professional assessment, or items where the minimum order quantity is inappropriate for retail. The product page shows the product information and your contact details, directing retail customers to get in touch rather than dead-ending them.
What retail customers see when they hit a restricted product
The user experience at the point of restriction is often treated as an afterthought, but it has real commercial consequences. A retail customer who hits a blank error page, a “403 Forbidden” message, or an unexplained dead end has had a bad experience that reflects on your brand. A retail customer who hits a well-designed restriction page that explains the product is available to trade accounts and invites them to apply has had an interaction that may generate a new wholesale lead.

The configuration of what retail customers see at a restricted product is separate from the restriction itself. In the plugin’s Retail settings, you can define the contact information, the call-to-action text, and the messaging that appears to non-wholesale visitors on restricted product pages. Treating this as a lead generation touchpoint — rather than purely a blocking mechanism — is the difference between a restriction that costs you nothing and one that generates wholesale inquiries.
A retail customer browsing your site who encounters a wholesale-restricted product already has interest in what you sell. The restriction page is a natural moment to surface your trade account application. A message along the lines of “This product is available to approved trade accounts — apply for a wholesale account here” converts curiosity about a restricted product into a registration inquiry. This is one of the few points in the buyer journey where a restriction can actively generate leads rather than simply excluding people.
How role-based pricing creates hidden wholesale pricing
Retail restrictions handle visibility at the product level. But for products that are available in both retail and wholesale channels — where retail customers can see and buy the product at the retail price, and wholesale buyers see and buy the same product at their role-specific wholesale price — the mechanism is different. This is handled through role-based pricing, which functions as a private pricing layer that is only visible to buyers who carry the appropriate wholesale role.
When a retail customer views a product, they see the regular WooCommerce price. When a logged-in wholesale buyer views the same product, the role-based pricing system substitutes their wholesale rate for the retail price — automatically, without any visible indication that a substitution has occurred. To the wholesale buyer, they simply see their price. The retail customer never has access to that number because they don’t carry the role that triggers the substitution.

This mechanism — role-based pricing as a private pricing layer — is how professional wholesale stores protect their trade pricing on products that are also sold at retail. There is no separate product, no hidden page, no second catalog to maintain. The same product listing serves both customer types, displaying different pricing based on the viewer’s authenticated role. The simplicity of maintaining one product catalog that serves both channels is a significant operational advantage over approaches that require separate product entries or separate store installations for wholesale and retail.

Running B2B and B2C from one WooCommerce store: the complete picture
Many wholesale businesses worry that combining B2B and B2C in a single WooCommerce installation will create confusion, technical conflicts, or an experience that serves neither customer type well. Done correctly, the opposite is true. A single installation with proper role-based access control is less work to maintain than two separate stores, and it means your product catalog, order management, inventory, and reporting are all in one place.
The key is ensuring that the three visibility layers are cleanly separated and that every product has been configured with its access intent explicitly set. Leaving products in an undefined state — neither retail-priced nor wholesale-configured — creates gaps where buyers see something unexpected. A systematic approach to product configuration, working through each item in your catalog and making explicit decisions about retail access, wholesale pricing, and restriction behavior, is the work that makes the hybrid model reliable.

According to research published by Gartner on B2B buying behavior, modern B2B buyers increasingly prefer digital self-service purchasing over traditional sales-assisted channels. This means your wholesale buyers are not just tolerating a WooCommerce store — they actively prefer it to calling or emailing orders, provided the experience meets their professional expectations. A store that gives them role-based private pricing, clean access to wholesale-only products, and fast ordering is the digital channel they want to use.
The retail side of the same store benefits from the same architecture in a different way: retail customers get a clean catalog experience without confusing wholesale-specific products, pricing inconsistencies, or B2B jargon appearing in their shopping journey. The separation that protects your wholesale pricing also improves the retail experience by removing elements that are irrelevant to retail buyers.
That is the value of a properly configured hybrid WooCommerce store: not a compromise between two customer types, but a single system that serves each of them correctly — without cross-contamination of pricing, catalog access, or purchasing experience. The WooCommerce plugin for private wholesale pricing and B2B catalog access control provides the architecture to do this from one installation, without separate stores or manual workarounds.
Access control configuration checklist
Keep your wholesale prices private while serving retail and trade buyers from one store
Role-based private pricing, product-level retail restrictions, and configurable access for every buyer type — all from one WooCommerce plugin that keeps your wholesale pricing confidential and your catalog correctly controlled.

Got this plugin to manage both retail and wholesale on the same site. Had to dig into the settings guide to understand why price updates weren't happening immediately. once I got it configured, it does a good job hiding wholesale pricing from regular customers no more accidental leaks, which was my biggest concern.
Hey, just got this plugin set up for a client's hybrid B2B/B2C store. the guide on the three visibility layers was actually helpful finally made sense of why retail customers were seeing wholesale pricing before. that said, the setup wasn't as plug and play as I expected.
As a senior scientist running a small biotech supply business, I was always stressed about competitors or random browsers seeing our negotiated wholesale rates. This plugin fixed that right away now when our B2B clients log in, the retail prices disappear and their contract rates show up automatically. No more awkward calls explaining why some stranger could see our bulk discounts. Setup took under an hour, and the peace of mind is seriously worth it. finally, a tool that actually treats wholesale pricing like the confidential info it should be