Build a WooCommerce Wholesale Order Form with User Role Based Pricing & More

WooCommerce order form plugin demo

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.

WooCommerce Product Table

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.

WooCommerce order form cart widget

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.

Get WooCommerce Product Table

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:

Create a private wholesale store with WooCommerce Private Store

WooCommerce Private Store PluginWooCommerce 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.

Get WooCommerce Private Store

How to set it up

  1. Get the plugin and install it in the usual way.
  2. Go to WooCommerce -> Settings -> Private Store. Enter your license key and use the settings to choose how your private store will work.
  3. Hit ‘Save’ and hey presto, you have made your entire WooCommerce store private!
  4. 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 Password Protected Categories

WooCommerce wholesale login pluginThe WooCommerce Password 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.

Get WooCommerce Password Protected Categories

How to set it up

  1. Buy the plugin and install it.
  2. Go to WooCommerce -> Settings -> Products > Protected categories. Enter your license key and select how your protected categories will work.
  3. Create a wholesale login form by adding the shortcode [category_login] anywhere on your site.
  4. Head to Products > Categories, create your wholesale category and password protect it. 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 be protected with the same password(s) as the parent category.
  5. 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?

WooCommerce wholesale role based pricing pluginAs 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.

WooCommerce Catalog Mode, Wholesale & Role Based Pricing

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.

Once you have set up the WooCommerce order form plugin , view the product list view in the front end:

Person using WooCommerce Product Table on iPad

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:

WooCommerce wholesale role based pricing plugin

WooCommerce price for user role plugin

You can see the different prices in your WooCommerce wholesale order form. This is how the product list looks for the logged in administrator:
WooCommerce discount for logged in administrator

And for unregistered guest users:

WooCommerce different price for guest user

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”:
Hide WooCommerce price from guest users
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:
WooCommerce hide price from logged out users

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:
WooCommerce change add to cart text for guest users
This change is also reflected in the product table:
WooCommerce change add to cart text

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:
WooCommerce add suffiix after price

Convert your WooCommerce wholesale order form to catalog mode

The “One click Catalog mode” option also works nicely with WooCommerce Product Table:

WooCommerce catalog mode
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.

  1. 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.
  2. 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.
  3. 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.