Build a WooCommerce Wholesale Order Form with User Role Based Pricing & More
In this article, I’m going to tell you how to combine different WordPress to create the perfect WooCommerce wholesale order form.
If you run a WooCommerce wholesale or role-based store, your customers need to see the correct prices for their wholesale status or user role. Wholesale customers also benefit from a tabular view of all the products available to them.
The WooCommerce Product Table plugin creates a table view of your products. It’s ideal when combined with a Wholesale or Role Based Pricing or WooCommerce protection plugin. You can use product tables whether you have a full e-commerce store with online ordering, or catalog mode with ordering disabled.
First, I’ll tell you more about why WooCommerce Product Table is perfect for creating wholesale order forms. Then, I’ll talk you through a range of catalog mode, role based pricing and WooCommerce protection plugins. These will let you hide your wholesale area from public view and ensure that trade users see the correct pricing for them.
What is WooCommerce Product Table?
WooCommerce Product Table will take all the products from your WooCommerce store and display them in a tabular format. It’s the perfect format for a WooCommerce wholesale order form plugin. You can choose to which columns are displayed in the order form. You can even add filters based on categories, tags, variations etc. The knowledge base will help you experiment with all the available options.
If your WooCommerce store is in catalog mode then you might want to hide the “Add to Cart” button instead of using it as a wholesale order form. This can easily be achieved by removing the field add to cart field from the product table, or by installing a WooCommerce catalog mode plugin (see below).
What’s great is that customers can select multiple products from the wholesale order form and click “Add Selected to cart“. This is a handy feature for wholesale customers, most of whom will be making a bulk purchase and want to buy quickly.
How can I hide my WooCommerce wholesale order form from public view?
There are a few ways to protect your WooCommerce wholesale order form. Choose a plugin based on your specific needs:
- Do you need a completely private wholesale store, with no public products? If so, then you need WooCommerce Private Store. This handy plugin makes all your WooCommerce content (shop page, products, categories, etc.) private and hidden. Jump to setup instructions.
- Do you want to sell products to the public AND wholesale customers? If so, then you have a choice:
- WooCommerce Protected Categories – This easy-to-use plugin lets you create 1 or more hidden wholesale categories, separate from the public areas of your store. You will add separate products to the public and wholesale areas, each with their own pricing. Jump to setup instructions.
- WooCommerce Catalog Mode, Wholesale & Role Based Pricing – This plugin uses a different approach to hiding your wholesale area. You have the same products for public and wholesale users, but each customer is charged a different price based on their user role. Jump to setup instructions.
Create a private wholesale store with WooCommerce Private Store
WooCommerce Private Store is perfect if you’re creating a completely private wholesale store, and don’t need to sell to the public at all.
It’s incredibly easy to set up and hides everything relating to WooCommerce including the main shop page, product pages, categories, customer account page, cart and checkout. Your main public pages (home, about, contact, etc.) remain visible to everyone.
This wholesale protection plugin offers 2 ways for trade users to access your hidden store. They can either enter a simple password to enter the wholesale store, or they can log into their user account on your website. You can choose which of these options to use.
How to set it up
- Get the plugin and install it in the usual way.
- Go to WooCommerce -> Settings -> Private Store. Enter your license key and use the settings to choose how your private store will work.
- Hit ‘Save’ and hey presto, you have made your entire WooCommerce store private!
- To create a wholesale order form for your private wholesale store, you’ll also need to get WooCommerce Product Table, set it up using the instructions in this tutorial, and add it to the template file in your theme. Once you’ve done this, the WooCommerce wholesale order form layout will be used throughout your private store.
Create hidden wholesale areas with WooCommerce Protected Categories
The WooCommerce Protected Categories plugin is perfect if you want to create separate public and private areas of your store, each with its own products and pricing. It’s also useful if you don’t want to create a separate user account for each customer, or edit WordPress user roles.
How to set it up
- Buy the plugin and install it.
- Go to WooCommerce -> Settings -> Products > Protected categories. Enter your license key and select how your protected categories will work.
- Create a wholesale login form by adding the shortcode
[category_login]anywhere on your site.
- Head to Products > Categories, create your wholesale category and either password protect it or restrict it to specific users or roles. If you need sub-categories too, just add them as children of the main wholesale category and leave them set to ‘Public’. They’ll automatically inherit the same type of protection as the parent category.
- Finally, you need to create a wholesale order form. To do this, get WooCommerce Product Table, set it up using the instructions in this tutorial, and add it to the template file in your theme.
Please note that step 5 will add the order form layout throughout your store. If you want to use product tables in your wholesale categories but not your public store, then you’ll need to write some custom code to change the layout depending on the category. This is a developer-level task. If you don’t know how to do it then I recommend posting a job on Codeable to find a suitable WordPress expert.
What is the WooCommerce Catalog mode, Wholesale & Role Based Pricing plugin?
As the name suggests, the Catalog mode of the plugin transforms your WooCommerce store into a catalog of all your products, hiding the “Add to Cart” functionality. You can choose to either completely turn your store into a catalog, or just disable online ordering for selected user roles (e.g. guests).
The most prominent feature of this plugin is that it offers discounts/markups based on WordPress user roles. This is an ideal way to sell products at reduced rates to wholesale customers. Your WooCommerce wholesale order form will display the correct prices for each user role.
How to combine these plugins to create a WooCommerce wholesale order form
The documentation for each plugin contains full instructions on installation and basic setup, so I will move directly to configuring the plugins. Together, they form a WooCommerce wholesale suite of plugins ideal for selling to the trade. They work either as an order form or in catalog mode.
First, set up WooCommerce Product Table
To start with WooCommerce Product Table, install the plugin and create 1 or more product tables. These will form the basis of your WooCommerce wholesale order form. Choose options such as the columns to be displayed; the filters to be added; image size, etc. The role-based pricing plugin works with the standard and lazy load versions of WooCommerce Product Table, so you can use either of these.
Next, set up the Catalog mode, Wholesale and Role Based Pricing plugin
Now, it’s time to set up the Catalog mode, Wholesale and Role Based Pricing plugin. Go to WooCommerce > Pricing and Discounts in the WordPress admin. I’ll tell you how to achieve several different scenarios to change the pricing and other features of your WooCommerce wholesale order form.
Wholesale role based pricing
First, we’ll consider a scenario where you would like to offer role based pricing. Let’s say you want to offer different prices to the “Administrators” and “Unregistered Users”. You can equally do this by using the User Role Editor plugin to create a dedicated Wholesale user level, and setting separate wholesale prices for that role.
For instance, let’s add a markup of 100% for administrators and 1000% for unregistered users:
You can see the different prices in your WooCommerce wholesale order form. This is how the product list looks for the logged in administrator:
And for unregistered guest users:
As you can see, different prices appear for each user role.
Maybe you don’t want to use the wholesale order form layout for your retail customers. If not, you can add the product table to a separate page while continuing to direct retail customers to the main WooCommerce shop and category pages. Guests and retail customers will still see the correct pricing for their role, while wholesale customers will see the wholesale prices on the order form page.
Hide prices from guest users
Now, let’s consider another scenario where you want to hide the price for unregistered guest users only. To do that, go to the “Unregistered User” tab in the “Pricing and Discounts” plugin settings and enable “Hide Price”:
Now, the price is hidden from unregistered users. Instead of appearing as a WooCommerce wholesale order form, the add to cart button has changed to a ‘Read more’ button because guests can’t place an orderL:
Change the Add to Cart button text for guest users
Next, let’s consider another scenario where you would like to replace the text in the “Add to Cart” button for unregistered users:
This change is also reflected in the product table:
Tip: If you want to change the add to cart button text globally, check out the WooCommerce Customizer plugin.
Add a suffix after product prices in the wholesale order form
In some of the above screenshots, you might have noticed the suffix “Sea” at the end of the product price. This suffix was added through the “Tax Option” tab of the Catalog mode plugin:
Convert your WooCommerce wholesale order form to catalog mode
The “One click Catalog mode” option also works nicely with WooCommerce Product Table:
On enabling the Catalog mode option, prices and Add to Cart buttons are hidden for all your products. Instead of functioning as a WooCommerce wholesale order form, customers will see a read-only product list or catalog.
Are there any features of the plugins that don’t work together?
Though this wholesale suite of WooCommerce plugins are highly compatible and work very well together, there are some limitations. Next, I’ll tell you about the limitations and suggest workaround for some of them.
- When you hide the Add to Cart button from the Pricing and Discounts tab, the button will be hidden from the main WooCommerce Shop page as well as the single product page. However, the button will still appear in the product table. The workaround for this is to remove the add to cart column from the product table.
- When you replace the Add to Cart button with a custom URL, this URL won’t be used in the Product Table. Thus, the customer would still be able to purchase the product. Even in this case we would suggest you to remove the Add to Cart column and replace it with a custom field column. Use this to manually add a button linking to any URL.
- None of the products can be hidden from the product table. If you hide specific products based on user roles, then these products will be hidden only from the shop page. They will still be visible in the product table.
Let us know in the comments how you use the WooCommerce wholesale ordering plugins in this tutorial. Do you use them for a WooCommerce wholesale order form or in catalog mode? I’d love to hear from you.