Need to create a WooCommerce wholesale store?
Wholesale stores have some unique considerations that require going a bit further than the default WooCommerce configuration. For example, you’ll probably want a way to hide your wholesale prices from guests or retail customers, and you’ll also want a way to create a more bulk order-friendly purchase process, like this bulk order form:
To wit, I’ll show you how to create a WooCommerce wholesale store where:
- Your wholesale products are private. You can either make everything private, or offer public retail prices and only keep your wholesale prices hidden.
- You have a WooCommerce bulk order form like the example I showed you above.
Ready to get started? Here’s how to create a WooCommerce wholesale store…
Step 1: Install and Configure WooCommerce – Basic Housekeeping
To get started, you’ll need to install and configure the WooCommerce plugin to get the basics out of the way. I won’t cover this in too much detail, but it’s important that you have the basics up and running before you move on to the next steps.
Once you install and activate the WooCommerce plugin, it will give you a setup wizard to configure basics like shipping options and payment methods. This help article explains the options.
From there, we’ll assume that you’ve added your products, as well. We show you how the basic WooCommerce plugin works in this guide.
Step 2: Make Wholesale Products Private (Three Approaches)
Now, let’s dig into the nitty-gritty of the wholesale functionality at your store…
First, there’s a good chance you might not want to publicly share your wholesale prices with every single website visitor. In that case, you’ll want to make some or all of your store private.
The exact approach here depends on your needs:
- If you’re 100% wholesale, you might just want to make your entire store private.
- If you sell both retail and wholesale, you’ll probably want your retail products/prices to be public, but your wholesale products/prices to be private.
For that second scenario, there are two ways you could go about it:
- Create separate products/categories for wholesale customers. While this involves duplicating your products (one copy for retail, one copy for wholesale), the benefit is that you can let people browse the wholesale products just by providing them with a password (that is, they don’t need to register for a user account)
- Use the same set of products but display a different price based on a user’s role. This eliminates the need to duplicate products, but means that you’ll need to create a separate WordPress account for each wholesale customer.
I’ll cover all three approaches below…
Approach 1: Make Your Entire Store Private
If you want to make 100% of your WooCommerce wholesale store private, you can use the WooCommerce Private Store plugin from Barn2.
This plugin lets you hide your entire store behind a password. Once a user enters the password, it will unlock everything.
The nice thing about the plugin is that you can create separate passwords, which lets you create different passwords for different types of customers:
To learn more about how to set this up, check out our complete guide on how to create a private WooCommerce store.
Approach 2: Make Certain Wholesale Categories Private
This approach is helpful if you want to sell to both retail and wholesale customers. Essentially, you’ll create:
- One set of products for retail customers that are publicly available
- Another copy of products for wholesale customers in a separate category and hidden behind a password
The upside of this approach is that wholesale customers can unlock the products with just a password (no account required). You’ll also be able to provide unique product descriptions for wholesale customers.
However, the downside is that you’ll need to duplicate any products that you sell to both retail and wholesale customers. That is, you’ll actually have two duplicate products with different prices.
To set this up, you’ll create a new Wholesale product category at your store. You can also add sub-categories for organization – those will also be made private.
Then, you can use the Duplicate Post plugin to quickly duplicate any relevant products and add them to that category. That way, all you need to do is edit the price.
Once you’ve created a separate set of products with wholesale pricing in the Wholesale category, you can use the WooCommerce Protected Categories plugin to make the category private:
To set up this functionality, you can follow our complete guide on how to create a private WooCommerce category.
In addition to having wholesale customers unlock the private category with a password, you can also automatically unlock it based on a registered user’s role.
However, if you’re already having your wholesale customers register an account, you might want to go with the third approach. Speaking of…
Approach 3: Display Different Prices Based on a User’s Role
Finally, if you’re ok with forcing wholesale customers to register for a WordPress account, you can also show a different price for each product based on a user’s role.
This way, you won’t have to duplicate products. Instead, you’ll use the same set of products…just with different retail and wholesale prices.
To set this up, you’ll first need to use the free User Role Editor plugin to create a new “Wholesale Customer” user role – make sure to copy the existing Customer role so that your wholesale customers have the necessary permissions to shop at your store:
Then, you can use the free WC Role Based Price plugin to add different prices based on a person’s user role.
Once you’ve installed and activated the plugin, go to WooCommerce → Role Based Price Settings. There, add your Wholesale Customer role to the Allowed User Roles box and configure the other settings (for example, you can choose whether or not to offer sale prices to wholesale customers):
Then, when you edit a product, you’ll be able to add a separate price using the new WC Role Based Price Editor box:
Normal customers will see the price you enter in the regular Product data box, while logged-in customers with the “Wholesale Customer” user role will see the price you enter in the WC Role Based Price Editor box.
If you want to take things even further, you can also use the Role-Based Payment / Shipping Methods plugin to offer different payment methods and shipping choices to shoppers with the “Wholesale Customer” user role.
Step 3: Create Your WooCommerce Wholesale Order Form
The default WooCommerce shop and archive pages are great for “regular” shopping, but they don’t always make the best option for a WooCommerce wholesale store.
For example, while wholesale customers might enjoy looking at the individual product pages for product details, they’ll probably want an easier way to order in bulk.
To allow that, you can create a WooCommerce order form for your products like this:
This doesn’t have to completely replace the regular WooCommerce shop functionality, either – you can simply offer your wholesale order form as another option, if you prefer.
- You can make this order form private, just like the rest of your store.
- This form will work with role-based pricing. That is, the price in the form will be accurate based on a user’s role.
So no matter which one of the three approaches you chose above, you’ll be able to create a WooCommerce wholesale order form.
How to Create Your Wholesale Order Form
To create your WooCommerce wholesale order form, you can use the WooCommerce Product Table plugin from Barn2.
Once you install and activate the plugin, you can configure its settings by going to WooCommerce → Settings → Products → Product tables:
I recommend perusing all of the settings, but the most important things to consider are:
- Columns – this lets you control what information displays on your wholesale order form.
- Add to cart button – I recommend displaying a checkbox in addition to the add to cart button, as this helps with bulk orders.
- Quantities – this is another important setting that lets people purchase more than one item at a time via a quantity box.
You can also consider adding filters and search boxes, as well as pagination and lazy loading if you have a lot of products.
Once you finish configuring the plugin, you can add your WooCommerce wholesale order form to a page by using the
By default, the shortcode will display all of your products. But you can also add modifiers to show specific products based on:
- Product ID
- Custom field or taxonomy
If you’d like to see a more in-depth guide, check out our full tutorial on how to create a WooCommerce wholesale order form.
Finally, if you want to make your WooCommerce wholesale order page private, you can use WordPress’ built-in page privacy settings to do so:
Add Product Quick View Functionality to Your Wholesale Order Form (Optional)
Another neat way to enhance your wholesale order form is by adding quick view functionality. This way, instead of needing to click through to the single product page, shoppers can open a detailed quick view popup for each product without needing to leave the order form page.
To do this, you can use the WooCommerce Quick View Pro plugin from Barn2. This plugin is from the same developer as the WooCommerce Product Table plugin, so the two integrate together perfectly.
Create Your WooCommerce Wholesale Store Today!
And that wraps up our guide on how to create your very own WooCommerce wholesale store.
Remember, you can break the process down into three steps:
- Set up the WooCommerce basics and add your products.
- Choose how to restrict access to wholesale products, either by making your entire store private with WooCommerce Private Store, only making specific wholesale categories private with WooCommerce Protected Categories, or displaying different prices based a user’s role with WC Role Based Price.
- Use WooCommerce Product Table to create a WooCommerce wholesale order form to make it easier for shoppers to purchase in bulk. You can either replace the default WooCommerce shop functionality completely, or offer it as an alternative order method.
Do you have any questions about how to create a wholesale WooCommerce store? Ask away in the comments!