WooCommerce B2B: the complete guide to building a business-to-business store

WooCommerce B2B store graphic

WooCommerce doesn’t support B2B selling out of the box. If you want to run a wholesale or B2B store, you need to solve four things: who gets access, what they pay, what they can see, and how they order.

In this guide, we’ll show you how to solve all four using WooCommerce plugins. After reading, you’ll be able to:

  • Approve or self-select B2B buyers at registration
  • Show different prices to different customer roles, automatically, throughout your site
  • Restrict your catalog so only the right customers see the right products
  • Give B2B buyers a fast, one-page way to order

As a bonus, we’ll also cover team spend approvals, quote requests, minimum order rules, and bulk variation ordering.

Each section includes real-world examples of B2B sites using specific functionality – so you can see exactly how the feautres discussed in this guide are being used.

As a side note on the value of online B2B, U.S. e-commerce sales by merchant wholesalers reached $3,760.2 billion in 2022, up from $2,873.1 billion in 2019 – a clear sign that B2B buyers increasingly expect to order online rather than by phone or email (U.S. Census Bureau).

Can WooCommerce handle B2B on its own?

No, WooCommerce can’t handle B2B natively. Core WooCommerce gives every product a single price, has no way to restrict content by customer role, and applies the same payment and shipping rules to every buyer. To sell to B2B customers, you need a plugin that adds multiple pricing levels, role-based catalog visibility, and role-based checkout rules.

What type of B2B store can you build?

Before you set anything up, it helps to know which kind of store you’re building, because it changes how you configure the plugins below (though not which plugins you need).

  • B2B only: a private, trade-only store where every visitor needs an account to see products or prices
  • B2B and retail from the same store: a public catalog for retail customers, with a gated wholesale layer and pricing for approved B2B buyers
  • B2B with multiple customer tiers: several wholesale roles – Gold, Silver, and Bronze, for example – each with its own pricing and catalog access

All three are achievable with the same toolkit. The difference between them comes down to how you configure user roles and pricing rules, not which plugins you buy.

As an example of a business with both retail and B2B stores, check out RVDE, a Portuguese fashion and personal care brand, sells clothing, beard care, and hair products directly to consumers through its public store, while a separate professional area serves salons, barbershops, hotels, spas, and gyms that want to stock or white-label the same products for their own customers.

Screenshot from homepage of rvde.pt, B2B fashion store

The WooCommerce Wholesale & B2B Plugin Bundle

To create a B2B store in WooCommerce, you need the WooCommerce Wholesale & B2B Plugin Bundle. The bundle combines three separate plugins into a complete B2B toolkit, from $99 a year for a single site. It includes:

Each plugin is also available as a standalone product, so you can buy just the functionality you need rather than the full bundle. We’ll cover each of these in detail below, along with a few extra plugins that complement the bundle for specific B2B needs.

WooCommerce Wholesale Plugin Bundle featured image

WooCommerce Wholesale & B2B Plugin Bundle

Create a wholesale or B2B store in WooCommerce

Find Out More

User approval and registration for B2B buyers

Before you can show different prices or products to different customers, you need a way to tell them apart. That starts with user roles, which you can set up and manage using WooCommerce Members Only.

Creating new user roles

WooCommerce comes with a single ‘Customer’ role. For a B2B store, you’ll want at least one more.

  • Go to Members Only > User Roles
  • Scroll down to the ‘Roles’ field
  • Enter the name of your new role, e.g. “B2B Buyer”, and click ‘Add role’
Setting to add new role in WooCommerce

You now have a separate role you can use to control pricing, catalog access, and checkout rules independently of your retail customers. Repeat this for as many tiers as you need – Gold, Silver, and Bronze wholesale roles, for example.

Registration roles

With Members Only, you can choose to allow users to select their own role at registration. Enable the ‘Roles Field’ option on the registration form, then choose which roles are available to select.

You don’t have to require approval for every role. A store can let some or all roles register and get access immediately, or require manual approval for specific roles only – for example, auto-approving retail sign-ups while every wholesale registration goes to you for review first.

To require approval for a role, check the ‘Needs Approval’ column against that role on the registration settings screen. When a user registers for an approval-required role, you’ll get an email to approve or reject them, and they won’t get access until you do.

Select which user roles require approval at registration

Custom registration fields

B2B registration usually needs more than a name and email address. Members Only’s drag-and-drop form builder lets you add custom fields – text, checkboxes, dropdowns, file uploads – to collect business details like a VAT number, trade references, or a business registration document.

Drag and drop registration form builder for B2B stores

This is essential for stores where specific details of a business will determine whether the business even qualifies for an acount.

As an example, Createl, a Belgian distributor of IP video intercoms and access control equipment, requires new accounts to submit a company name, VAT number, and business address before their registration is reviewed – prices only appear once Createl has approved the account.

Custom registration form on Createl B2B site

Conditional fields

You can also set conditional fields, so a field only appears based on the value of another. For example, show a ‘VAT number’ field only when the customer selects “B2B Buyer” as their role.

Key Access NI, a Northern Irish automotive locksmith and car key supplier, uses conditional logic on the same form: selecting “Trade” as the account role reveals additional fields and identifies the account as needing approval, while a standard “Customer” registration gets immediate access.

Conditional fields on a registration form

Quick tutorial: How to approve admin registrations for WooCommerce B2B sites

Here’s how to require admin approval for a specific role in your B2B store.

  • Step #1: Go to registration settings
    Go to Members Only > Registration to see your list of roles.
  • Step #2: Check ‘Needs Approval’ for your B2B role
    Tick the ‘Needs Approval’ column against the role you want to gate, e.g. “B2B Buyer”.
  • Step #3: Save your changes
    New registrations for that role are now held pending your review instead of getting immediate access.
  • Step #4: Approve or reject new registrations
    You’ll get an email when someone registers for the role. Approve or reject the account from your WordPress dashboard, and the customer gets access as soon as you approve them.

There’s a complete tutorial on how to approve new user registrations in WooCommerce here.

Role-based pricing for B2B and wholesale customers

Once you have roles set up, you can show different prices to different customers using WooCommerce Dynamic Pricing and Discount Rules.

Prices adjust automatically throughout your site. A logged-in wholesale customer sees their correct price on product pages, shop and category pages, and in the cart – from the very first page they land on.

You can apply role-based pricing:

  • Globally, as a storewide discount for a role. You could apply a fixed or percentage discount to all prices for a specific user role from a single point, e.g. B2B Buyers get 10% off all standard prices
  • Per category, so you can create multiple rules for different user roles and/or different product categories. Your B2B customers might get 10% off Category A but 15% off Category B
  • Per product, for precise control over individual items. You can set specific role-based prices per product
Setting for global role-based discount for B2B store

You’re not limited to role-wide pricing either. You can set discount levels for individual customers, by user ID or email, as well as by role – useful if one wholesale account has negotiated terms that differ from the rest of their tier.

Available discount types include simple percentage or fixed discounts, buy-one-get-one offers, and buy-X-get-Y deals, all of which can be scoped to a specific role.

Tax exemption by role

If some of your B2B customers are tax-exempt, you can exclude tax for specific roles under the plugin’s Tax Exempt Roles setting, so eligible customers see tax-free pricing automatically.

Tax exemption setting in WooCommerce

Showing all role prices to everyone

By default, a customer only sees the price for their own role. If you’d rather publish your full pricing structure openly – showing every role’s price to every visitor, logged in or not – you can enable the ‘Display each role prices’ option instead of gating each price behind login.

This is different from catalog restriction – whether a role can see a product at all. A store can restrict which products a role can see while still publishing full cross-role pricing on the products it can see, or vice versa. The two settings work independently.

This kind of role-based structure suits distributors with several tiers of trade customer, not just a single wholesale rate. A toy importer, for example, might set one discount level for independent toy shops and a deeper one for larger retail chains buying the same products in greater volume, with each tier’s pricing applied automatically the moment that customer logs in.

Gounaridis Toy Imports, a Greek toy importer and distributor, uses role-based rules to manage pricing for its different types of retail customers, with each approved account seeing only the wholesale pricing that applies to its role.

Gounaridis bb website x.jpg

Quick tutorial: How to create role-based prices for WooCommerce B2B sites

Here’s how to set up a role-based discount.

  • Step #1: Enable user role pricing
    Go to WooCommerce > Settings > Fees and Discounts > General and enable ‘User Role Pricing’.
  • Step #2: Add a new rule
    Go to WooCommerce > Fees and Discounts and click ‘Add New Rule’
  • Step #3: Choose the role and discount
    Select the customer role the rule applies to, then set a percentage or fixed discount.
  • Step #4: Set the scope and save
    Apply the rule globally, to specific categories, or to specific products, then save. Prices update automatically for that role across your site.

There’s a complete tutorial on role-based prices in WooCommerce here.

Restricting your catalog to B2B buyers

WooCommerce Members Only lets you control which products and categories each customer role can see.

You can hide a product entirely from a role, or keep it visible but hide its price and replace ‘Add to cart’ with a different message, forcing the customer to log in or contact you before they can buy. This is useful if you want retail visitors to browse your wholesale range without seeing trade pricing.

If someone tries to access a restricted product directly – by URL, bypassing your navigation – you can set a custom message or redirect them to a login or registration page.

This catalog-visibility setting is separate from whether you publish role pricing openly – i.e. whether every visitor can see every role’s price, or each role only sees its own. You can restrict which products a role sees while still showing full pricing across roles, restrict nothing but hide all pricing, or any combination – the two settings don’t depend on each other.

This is a common pattern for established wholesalers with a large trade-only catalog. Harrisons Direct, a UK wholesale distributor of sweets, toys, stationery, and household goods trading since 1919, shows every product to every visitor but replaces the price and ‘Add to cart’ button with a ‘Login to view prices’ link until the customer signs in – letting anyone browse the range while keeping trade pricing for approved accounts only.

Log in to view prices button on Harrisons B2B store

How to restrict access to products in B2B

Here’s how to restrict a product or category to a specific role.

  • Step #1: Go to restriction settings
    Go to Members Only > Restrictions.
  • Step #2: Choose the restriction method
    Select ‘User role’ in the ‘Restriction method’ field. You can also decide whether to hide product pages entirely, or keep them visible but just hide the price and add-to-cart button.
  • Step #3: Create a membership plan
    Go to Members Only > Plans and click ‘Create New Plan’. Select the products or categories you want to restrict.
  • Step #4: Set roles and a message
    Choose which roles the plan applies to, then set a custom message or redirect for anyone who tries to view products without permission.

There’s a complete tutorial on restricting access to your products here.

Wholesale order forms

Clicking through individual product pages is slow when you’re ordering dozens of items at once. The WooCommerce Product Table Ultimate plugin replaces that with a single searchable, filterable order form.

This isn’t only useful for repeat orders. A new B2B customer placing their first order benefits just as much from being able to scan your whole catalog, filter by category, and add multiple items in one pass, rather than hunting through individual pages before they’ve even learned their way around your store.

Customers can search, sort, and filter by category, tag, or attribute, then add items to their cart directly from the table using checkboxes or per-row quantity fields. Variable products can display as separate rows per variation, or with inline attribute selectors.

Ningbo Furniture, a UK contract furniture supplier selling chairs, tables, and trolleys to hotels, conference venues, wedding venues, and care homes, runs its entire catalog through a filterable price-list table – filter by category or colour, see the price and stock level for each item, and add a quantity straight from the row – so buyers ordering dozens of chairs for an event can build their order in minutes rather than clicking through each product individually.

Wholesale order form on Ningbo Furniture website

How to create a wholesale order form

Here’s how to add an order form to your site.

  • Step #1: Add the product table
    Go to the page where you want your order form, and add the Product Table Ultimate block, or enter the shortcode [product_table_ultimate] directly.
  • Step #2: Choose your columns
    Go to WooCommerce > Settings > Product Table and enter which columns to show, separated by commas – e.g. sku, thumbnail, name, price, add-to-cart.
  • Step #3: Choose which products to include
    By default the table shows your whole catalog. To scope it to specific categories instead, set the ‘Products Source’ field to ‘Categories’ and select which ones – useful if you want a separate table per product range rather than one table for everything.
  • Step #4: Publish the page
    Publish the page, then link to it from your account area or main navigation so B2B customers can find it easily.

Rather than adding a table to one page, you can also replace your shop and category pages with a table layout entirely, using the ‘Override pages’ setting in WooCommerce > Settings > Product Table.

There’s a complete tutorial on adding a wholesale order form here.

Bulk and tiered pricing for wholesale orders

Role-based pricing controls what a customer pays based on who they are. Bulk and tiered pricing controls what they pay based on how much they buy – and the two combine, so a wholesale role can get bulk discounts on top of their role-based rate.

  • Bulk discounts apply a percentage or fixed discount once a customer buys a certain quantity, e.g. 10% off orders of 10 or more
  • Tiered pricing sets a different fixed price per tier, e.g. $15 each for 10 or more, $12 each for 20 or more

You can display these tiers to the customer directly on the product page using the plugin’s front-end pricing table, so buyers can see exactly what they’d pay at each quantity before they order.

Ruff Ruff Poop Bags, a US supplier of dog waste bags to city parks departments, HOAs, and contractors, displays a quantity pricing table directly on its product pages – a case costs $165.99 at 1-4 cases, dropping in steps to $147.99 a case on pallet orders of 60 or more – so B2B buyers can see their exact cost before adding to cart.

Bulk pricing table on WooCommerce B2B site

Payment and shipping methods for B2B roles

Members Only also lets you restrict or offer specific payment gateways and shipping methods by role. A common B2B setup is offering pay-by-invoice only to approved wholesale accounts, while retail customers pay by card at checkout as normal.

Restricted payment methods in WooCommerce B2B store

You can apply the same logic to shipping methods, offering freight or bulk-delivery options only to roles that need them.

Restricted shipping methods in WooCommerce B2B store

Managing B2B buying teams

For B2B buyers with multiple people ordering under one business account, Members Only’s Teams feature lets you assign a manager to a group of users under a role, along with a maximum order value.

  • Go to Members Only > Settings and enable ‘Teams’
  • Go to Teams > Add New, then set the role, the manager, and an optional maximum order value
  • Optionally override the maximum order value for individual users

If a team member tries to check out with an order that exceeds their limit, they’ll see a ‘Request Authorization’ button instead of being able to complete the purchase. The order is created with an ‘Awaiting Authorization’ status, and the manager gets an email to approve or reject it from their account page. This is a natural fit for procurement teams where junior buyers need sign-off on larger orders. Find out more in our Teams documentation.

Quote requests and other B2B extras

The plugins below aren’t part of the Wholesale & B2B Plugin Bundle, but each solves a specific B2B need.

Request a Quote

Some B2B sales depend on negotiation rather than a fixed price. WooCommerce Request a Quote replaces ‘Add to cart’ with an ‘Add to quote’ button for the products, categories, or roles you choose. You can also hide prices entirely on quotable products, forcing customers to request pricing rather than buy outright. Once you’ve agreed a price, you can convert the quote directly into an order.

Smile Promotions, a UK branded merchandise agency, replaces ‘Add to Cart’ with ‘Add to Quote’ across its entire catalog, since the final price for any item depends on quantity, branding method, and print location – details that only get settled once the customer has requested a quote.

Add to Quote button on B2B website

Minimum and maximum quantity and order

Wholesale orders often need a floor. WooCommerce Minimum Maximum Quantity and Order lets you set minimum or maximum quantities and order values by product, category, or user role – useful for enforcing a minimum order quantity for wholesale roles while leaving retail customers unrestricted.

image0
Half Moon Cards ★★★★★

I have a trade-only store where customers must buy 6, 12, 18 etc of any of the products they choose - in multiples of 6 - and the grand total must be not less than 120. WooCommerce Minimum Maximum Quantity and Order does exactly that - and is easy to set up.

Bulk variations order forms

If your catalog has products with lots of variations – sizes and colors, for example – WooCommerce Better Variations replaces the standard dropdown selectors with a bulk order grid, so B2B buyers can order multiple variations at once from a single table.

Monster Workwear, a UK corporate and workwear supplier, shows every size-and-colour combination for a product as a grid of quantity fields on one page, so a buyer ordering uniforms for a whole team can specify how many of each size and colour they need without opening a separate dropdown for every variation.

Bulk variations form on workwear provider website

Which plugin covers which B2B feature?

With multiple capabilities spread across six plugins, it helps to see them side by side. Use this table to check which plugin you need for a given feature, and whether it’s already included if you buy the Wholesale & B2B Plugin Bundle.

CapabilityPluginIn the Wholesale & B2B Bundle?
User approval and registration for B2B buyersMembers OnlyYes
Role-based pricing for B2B and wholesale customersDynamic Pricing and Discount RulesYes
Restricting your catalog to B2B buyersMembers OnlyYes
Wholesale order formsProduct Table UltimateYes
Bulk and tiered pricing for wholesale ordersDynamic Pricing and Discount RulesYes
Payment and shipping methods for B2B rolesMembers OnlyYes
Managing B2B buying teamsMembers Only (Teams)Yes
Quote requestsRequest a QuoteNo
Minimum/maximum quantity rulesMin Max Quantity and OrderNo
Bulk variation orderingBetter VariationsNo

Many features are included in the bundle out of the box – the other three are worth adding on top only if quote requests, order minimums, or bulk variation ordering are part of how your B2B customers buy.

FAQs

Does WooCommerce support B2B natively?

No. Core WooCommerce has one price per product and no way to restrict content or checkout rules by customer role. You’ll need a dedicated plugin, or a bundle like the Wholesale & B2B Plugin Bundle, to add these features.

Can I hide prices from non-wholesale customers?

Yes. Members Only lets you hide prices from specific roles or from guests entirely, while still showing the product itself if you want retail visitors to browse without seeing trade pricing.

Can I run a B2B and B2C store from the same site?

Yes. Create separate roles for your B2B and B2C customers, then use role-based pricing and catalog restrictions to control what each group sees and pays. Both can shop from the same store without seeing each other’s prices or products.

What’s included in the Wholesale & B2B Plugin Bundle?

Three plugins: Members Only for registration, approval, and catalog restriction; Dynamic Pricing and Discount Rules for role-based and bulk pricing; and Product Table Ultimate for order forms.

Can I require approval for some roles but not others?

Yes. You can set ‘Needs Approval’ independently for each role, so retail customers can register and shop immediately while wholesale registrations go to you for manual review.

Build your WooCommerce B2B store the right way

From approving new B2B buyers to pricing them by role, restricting your catalog, and giving them a fast way to order, WooCommerce can handle every part of a wholesale or B2B setup once you add the right plugins. Whether you’re building a trade-only store, running B2B alongside retail, or serving several customer tiers, the same toolkit adapts to fit.

WooCommerce Wholesale Plugin Bundle featured image

WooCommerce Wholesale & B2B Plugin Bundle

Create a wholesale or B2B store in WooCommerce

Find Out More

The WooCommerce Wholesale & B2B Plugin Bundle is compatible with all themes and page builders, including Astra, Flatsome, and Woodmart, and page builders like Elementor and Divi. If you have any questions, our world-class support team is on hand to help. And it’s backed by a 14-day money-back guarantee, so you can try it risk-free.

Leave a Reply

Your email address will not be published. All fields are required.