WooCommerce wholesale store: your step by step guide

Would you like to run a WooCommerce wholesale store where you offer different prices to wholesale and retail customers? This article sets out exactly how to create a wholesale store using the WooCommerce Wholesale Plugin Bundle.

Creating a WooCommerce wholesale store

We’ll look at some different options for how to create your WooCommerce wholesale store, from a very simple method to more complex functionality. In brief, these include:

  1. A simple method of providing bulk discounts to wholesale customers – this is a great option if you don’t need your customers to register with you
  2. Protected categories / wholesale area – this works if you want to keep some or all of your store hidden from the general public
  3. A full-scale wholesale site with multiple membership and pricing tiers – this option allows you to offer different prices to different user roles

There’s a fully working demo site for option 3 that you can view and even log in to, so that you can see exactly how each feature will look in real life.

We’re going to build up our store step by step, looking at each feature in turn.

Each option will feed into the next and you’ll be able to pick and choose which approach to take for your own store.

Why you should consider a WooCommerce wholesale store

This is an easy question to answer. In 2017, according to Statista, global ecommerce B2B sales were around $7.6 trillion.

That’s approximately three times B2C sales.

Related Tutorial
You might also want to take a look at this tutorial on how to build a B2B store in WooCommerce.

WooCommerce B2B

Our WooCommerce wholesale store features

Let’s look at the main features of our WooCommerce wholesale store. We’re going to create a demo store that sells sports accessories to both retail and wholesale.

Demo site

You can pick and choose which of these features you’d like to incorporate into your own wholesale store:

  • Create multiple pricing levels for retail and wholesale customers
  • Multi-tiered role-based pricing – give some customers bigger discounts
  • Apply discounts as a percentage or fixed value
  • Offer all customers the same products, but with different prices, or keep your wholesale and retails products separate
  • Easily apply discounts with a single rule for all products
  • Override global discounts by category or product, if required
  • Make products and categories ‘Wholesale only’ or ‘Retail only’
  • Show / hide content
  • Approve users when they register
  • Choose whether to exempt certain customer types from tax

WooCommerce wholesale plugins

To achieve these features, we’ll need a couple of WooCommerce extensions: the WooCommerce Members Only plugin and the WooCommerce Fees and Discounts plugin.

For the simplest option, you’ll only need one of the WooCommerce Members Only plugin or the WooCommerce Fees and Discount plugin. For the more complex options, you’ll need both. Luckily, you can buy them together in a single bundle – the WooCommerce Wholesale Plugin Bundle.

Together, they make the ultimate WooCommerce wholesale plugin. Let’s look at them individually to see how they’ll help us.

WooCommerce Members Only features

The WooCommerce Members Only plugin allows you to:

  • Protect products, posts and categories by user role or password
  • Create user roles

In this article, we’re using the Members Only plugin purely from the point of view of a wholesale store. However, you can use this plugin to create an entire WooCommerce membership site.

WooCommerce Fees and Discounts features

The Fees and Discounts plugin allows you to:

  • Create discount pricing rules by quantity
  • Set different prices by user roles

Option one: bulk discounts for wholesale customers

The absolute simplest way to create a WooCommerce wholesale store is just to offer customers a bulk discount when they purchase above a certain quantity of product.

With this method, you don’t need to create different user roles. A wholesale customer is just a customer who orders above a certain quantity.

In this ultra-simple version of a wholesale store, we’ll create some pricing rules that will apply discounts to our products when the customer buys in bulk. Our retail customers, who purchase in smaller quantities, won’t receive the discounts.

You can achieve this just with the WooCommerce Fees and Discounts plugin.

How to create bulk discounts for wholesale customers

We’ll just take a look at how to use Fees and Discounts to create simple bulk pricing rules.

We’re going to use this method throughout this article, even for the more complex options.

To create a simple discount rule:

  1. Go to WooCommerce > Settings > Fees and Discounts
  2. Click the ‘Dynamic Pricing’ link in the submenu
  3. Choose ‘Bulk Pricing’ in the ‘Offer type’ field
  4. Create as many pricing tiers as you like. In the example below, we’ve created a 20% discount if the user purchases between 101 and 500 items; and a 30% discount if the user chooses more than 500 items
Simple WooCommerce wholesale bulk pricing rules

Display bulk pricing

We can display our different price levels in a nice table that displays on the product page. This gives our customers a clear view of how many products they need to qualify for different discounts.

Note that the price is also displayed in a range – in the example above, $35 – $50. This clearly shows the customer that discounts are available.

If you’d like to display the price range in a slightly different format, e.g. ‘From $35’, please see this support article.

Read this article to find out more about WooCommerce bulk discounts.

Or, if you just want to hide products, read this article on hidden products in WooCommerce.

Option two: a private wholesale area

With this method, we’re taking a different approach. We’ll build a wholesale store which has a separate area for our wholesale customers.

Because wholesale products will be hidden from retail customers, we don’t need the Fees and Discounts plugin to set pricing rules. Instead, we’ll just use the Members Only plugin to help us create a private wholesale area in our store.

This method is fine if your retail and wholesale products are different, or you only have a few products. Otherwise, it can difficult to manage so you might want to consider option three, which combines wholesale user roles with pricing rules.

Even so, it’s still worth reading this section as it introduces the Members Only plugin and covers some of the techniques we’ll use when creating our completed WooCommerce wholesale store.

Using Members Only to create a protected wholesale area

In this version of a wholesale store, we’re going to assign all our wholesale products to a certain category then hide this category from any user who does not have the correct permissions.

We’re going to use the WordPress concept of user roles to achieve this. If you’d like to know how to use passwords to protect content instead, take a look at this post.

This method involves five steps:

  1. Creating user roles for retail and wholesale customers
  2. Creating products categories for wholesale products
  3. Assigning products to the wholesale category
  4. Assigning user roles to our customers
  5. Protecting the wholesale category using Members Only

How to create user roles for wholesale and retail customers

We’re going to differentiate between our wholesale and retailer customers by giving them different user roles.

User roles are the method that WordPress uses to decide what users can do on a site. Different user roles have different permissions (properly called capabilities).

We’ll use user roles just to identify our wholesale customers.

To create a new user role in WooCommerce Members Only:

  1. Go to WooCommerce > Settings > Members Only > User roles
  2. Select the ‘Customer’ user role
  3. Enter a name for your new role, e.g. ‘Wholesale customer’
  4. Hit ‘Duplicate role’
Create WooCommerce wholesale customer user role with Members Only plugin

You can repeat this process to create a ‘Retail customer’ user role as well.

Create a wholesale product category in WooCommerce

Now we’re just going to create a product category that only our wholesale customers will be allowed to access.

To create a new product category:

  1. Go to Products > Categories
  2. Enter the name of your category, e.g. ‘Wholesale’
  3. Click ‘Add new category’
Create wholesale product category in WooCommerce

Assign our wholesale products

Now you just need to go through your wholesale products and assign them to the new category. You can do this quickly using WooCommerce’s bulk editing:

  1. Go to Products
  2. Check all the products you want to assign to the wholesale category
  3. Click ‘Edit’ then ‘Apply’
  4. Select the category
  5. Click ‘Update’
Bulk adding products to WooCommerce wholesale category

Assigning roles to customers

Now you need to ensure that you’ve assigned the correct role to your wholesale customers. Again, you do this in bulk:

  1. Go to Users
  2. Select multiple wholesale customers by selecting the checkbox next to their name
  3. From the ‘Change role to’ dropdown, select ‘Wholesale customer’
  4. Click the ‘Change’ button

All the selected users will now be assigned the ‘Wholesale customer’ user role.

You should read this article if you’d like to know how to automatically assign a user role when a customer makes a purchase.

Protecting the wholesale category using the WooCommerce Members Only plugin

We’ve got everything in place now to allow us to protect our wholesale category:

  1. Go to WooCommerce > Settings > Members Only
  2. Choose ‘User Role’ from the ‘Restriction Method’ field
  3. Select ‘Specified Categories’ from the ‘Restricted Content’ field
  4. Select the ‘Wholesale’ category in the ‘Restricted Categories’ field
  5. Choose the ‘Wholesale customer’ user role in the ‘Permitted User Roles’ field
  6. Click ‘Save changes’
WooCommerce protected wholesale category

Users who don’t have the ‘Wholesale customer’ user role will now not be able to access any products in the ‘Wholesale’ category.

Hiding the wholesale category

Note that with the current settings above, any non-wholesale customer will still be able to see the wholesale products in the shop. They just won’t be able to access them.

You may prefer to keep it this way. Letting retail customers see wholesale prices might encourage users to start buying more.

However, if you prefer to keep the wholesale category completed hidden from non-wholesale customers, you just need to check the ‘Hide in archives’ option in the Members Only settings.

WooCommerce hidden wholesale section

With this option selected, non-wholesale customers will not be aware of any wholesale products or categories on the site.

Extending the private wholesale area

So far, we’ve looked at hiding a single category of product from retail customers.

We could extend this type of wholesale store by creating multiple categories, each restricted to a certain customer type. Then we could offer different customer types different products and/or different prices.

You could opt to hide your entire store, not just one or more categories.

And you could take it even further by offering customer specific products.

Pros and cons of the private wholesale area

The advantage of a private wholesale area is that it’s quick and easy to set up. If you don’t have many products and/or if you’re offering different products to your wholesale customers, then it could work well for you.

The disadvantages are that:

  • It could be quite time-consuming to manage, particularly if you have a lot of products
  • There’s no scope for multiple pricing tiers

Also, if you’re selling the same products to wholesale and retail customers, you can’t really use this private category method to hide wholesale products – because you also want retail customers to access them. You just want to be able to charge different prices.

So how do we do this? It’s time to make our two plugins start working together.

Option three: multi-tiered wholesale store

Let’s put together what we’ve learned from our first two methods to create a wholesale store that has different pricing levels for different customers and which is easier to manage than a protected wholesale area.

In this method, we’re offering the same products to everyone, with the WooCommerce wholesale prices set according to user role.

Multi-tiered sounds complex but really all we mean by a ‘multi-tiered’ wholesale store is that:

  • We might have different wholesale customer roles, so some of our customers will have a better price than others, and they’ll all be different from retail customers
  • There might be several discount tiers based on quantity
  • We can combine user role pricing and bulk pricing discounts

You can take a look at the demo to see how our wholesale store works in real life.

Our multi-tiered wholesale store’s features

In our scenario, we’re selling fitness equipment and fashion. We’ve got three types of customer:

  • Standard customer – anyone can purchase items from our site at our retail prices
  • Wholesale customer – wholesale customers will need to log in to their account to see their preferential wholesale prices
  • Elite customer – we’ve decided that some customers deserve even more preferential pricing

Furthermore, we’ll look at:

  • Applying bulk discounts to all customers in addition to any wholesale discounts they’re entitled to
  • Hiding prices from users who aren’t logged in
  • Displaying an alternative message to non-logged-in users
  • Approving or rejecting new user registrations

We haven’t got any hidden products or areas – all users can see the same products. They’ll just see different pricing depending on their role.

Before you start, make sure you have both Members Only and Fees and Discounts activated on your site.

Related Tutorial
There’s a dedicated tutorial on WooCommerce wholesale prices here

WooCommerce wholesale prices

How to create our wholesale user roles

So, as with our second option, we’re going to create a new user role for wholesale customers. In this case, we’re creating a user role for ‘Wholesale’ and one for ‘Elite’.

  1. Go to WooCommerce > Settings > Members Only > User roles
  2. Select the ‘Customer’ user role
  3. Enter a name for your new role, e.g. ‘Wholesale’
  4. Hit ‘Duplicate role’
  5. Repeat for ‘Elite’ customer role
Create WooCommerce wholesale customer user role with Members Only plugin

How to create rules for WooCommerce wholesale prices

With our new user roles set up, it’s a really simple task to set some rules for WooCommerce wholesale prices:

  1. Go to WooCommerce > Settings > Fees and Discounts
  2. Ensure ‘Enable User Role Pricing’ is checked
  3. Click ‘User Role Pricing’ in the sub menu
  4. Each user role is listed – you can set percentage or fixed discounts
WooCommerce user role pricing

In our example, you can see that we’re offering our wholesale customers a 20% discount and our elite customers a generous 30%.

There’s more information about WooCommerce user role pricing here.

Setting bulk discounts

As well as offering WooCommerce wholesale prices depending on user role, we’ll offer bulk discount pricing. This means that wholesale customer could benefit from two discounts – an automatic discount for their user role, and a second discount based on the quantity of product they buy.

To create bulk discounts:

  1. Go to WooCommerce > Settings > Fees and Discounts > Dynamic Pricing
  2. Choose ‘Add Rule’ and select ‘Bulk Pricing’ in ‘Offer type’
  3. Add as many tiers as you need for your pricing rules
Simple WooCommerce wholesale bulk pricing rules

Display discount pricing table

With bulk pricing enabled, you can choose to display a pricing table that shows the product price for each tier. Just select ‘Before Add to Cart Button’ from the ‘Pricing table’ setting.

WooCommerce discount pricing table

This is our WooCommerce wholesale store set up and ready to go. Let’s just look at some optional features we can add.

How to prevent non-logged in users from purchasing WooCommerce products

In our demo store, we’re happy to let anyone view our products. But maybe we don’t want to let everyone purchase products; we want to prevents users from making a purchase until they log in.

We can do this really easily with Members Only. To prevent users who aren’t logged in from purchasing products:

  1. Go to WooCommerce > Settings > Members Only
  2. Choose ‘Log In Status’ from ‘Restriction Method’
WooCommerce prevent users from purchasing products

Now users will still see the products in the shop and other archive pages but they won’t be able to add any to their cart.

How to add a message telling users to log in

We can tweak this by adding a message to users telling them to log in. On the settings page, add some text to the ‘Add To Cart Text’ field, e.g. ‘Please log in to purchase this item’.

WooCommerce log-in message

How to approve new customers in WooCommerce

You might want to approve (or reject) new users when they register on your site. You can do this easily with Members Only.

To approve new customers after registration in WooCommerce:

  1. Go to the Members Only settings page
  2. Check the ‘Enable User Approval’ field
WooCommerce user approval

With this option enabled, you’ll get an email every time a new customer registers. You’ll then need to either approve or reject the registration.

WooCommerce approve or reject user registrations

How to allow the user to choose their role when registering in WooCommerce

You might wish to allow the customer to choose their user role when they register on your site. You can do this by including an extra field in the registration form where the user can select the role they’re registering for.

WooCommerce wholesale user registration form

To add a role selection field to the WooCommerce registration form:

  • Go to WooCommerce > Settings > Members Only > Registration
  • Select ‘Enable Roles Field’
  • Choose which roles to include in the role selection field by checking the role in the ‘Include’ column
  • If you want to be able to approve some roles but allow others to be registered immediately, check the role in the ‘Needs approval’ column
Add role selection field to WooCommerce registration form

How to exempt some customers from tax

You might want to exempt your wholesale customers from any sales tax. You can do this easily:

  • Go to WooCommerce > Settings > Fees and Discounts > Tax
  • Enter the user roles that should be exempt from tax into the ‘Tax Exempt Roles’ field
  • Hit ‘Save changes’

Now, any user with a tax exempt role will not be charged tax.

WooCommerce tax exempt roles setting

Related Tutorial
Here’s a complete tutorial on how to exempt user roles from tax in WooCommerce

WooCommerce tax exempt user role

Bonus: Display your products in a table

When you’re running a wholesale store, you probably want to give your customers the option to purchase in bulk through an order form. The WooCommerce Product Table Ultimate plugin gives you that option.

WooCommerce Product Table Ultimate

List products in quick and easy order forms

Find Out More

Note that Product Table Ultimate is not included as part of the Wholesale Bundle Plugin.

Listing your products in a table allows your customers to select multiple products, choose their quantities, and add to cart all with one click.

WooCommerce wholesale product table

You can see this page in action here.

For more information on setting up a product table, take a look at this tutorial on how to display your products in a grid.

Related Tutorial
You can also take a look at this article on wholesale order forms

WooCommerce wholesale order form

Bonus #2: Setting minimum and maximum quantities and/or order amounts

Many wholesale stores need to ensure that customers order quantities and/or amounts within specific limits. For instance, you might want to make sure that customers order a minimum number of items in order to protect tight profit margins.

You can do this easily using the WooCommerce Minimum Maximum Quantity and Order plugin.

WooCommerce Minimum Maximum Quantity and Order

Maximise your store’s revenue by setting rules on quantity and values

Find Out More

There’s a tutorial here on setting minimum and maximum quantities for your WooCommerce store.

Defining different shipping methods for wholesale customers

Finally, you might want to enable different shipping methods for your wholesale customers. For instance, you might want to offer free shipping or local pickup just for your wholesale users.

If so, take a look at this article on WooCommerce role-based shipping methods. It walks through using the Members Only plugin to enable or restrict shipping methods based on user role.

WooCommerce wholesale tutorial – a recap

Okay, in this tutorial we’ve looked at how you can use the Fees and Discount plugin and/or the Members Only plugin to create different types of WooCommerce wholesale store.

We’ve looked at:

  • Setting differential wholesale prices in WooCommerce
  • Creating bulk pricing rules
  • Protecting or hiding some or all of your products from certain users
  • Creating multiple discount levels and user roles
  • How to set up user approvals for new registrations

Remember you can choose to purchase Fees and Discounts and Members Only separately, or pick them up together for a discount in the WooCommerce Wholesale Plugin Bundle:

WooCommerce Product Table Ultimate

List products in quick and easy order forms

Find Out More

Two comments

  1. Thank you for the info, are these plugins for lifetime usage? also, will they be updated? Do you give support when the plugins create errors?

Leave a Reply

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