How to create a robust WooCommerce wholesale system

Since 2004, my small jewelry business has gone through several ecommerce setups for handling retail and wholesale orders. I recently wanted to upgrade from a simple coupon code system to a dedicated and robust wholesale account system that seamlessly integrated with our existing WooCommerce setup. I was hoping to find a WordPress plugin that addressed all of my requirements, but after hours of searching and testing I discovered the best solution for my needs required a custom combo of four different plugins and a bit of custom code.

Wholesale user roles

The first and fundamental step when creating a dedicated wholesale system is to have custom WordPress user roles. While there are several plugins that can create these for you, all you really need is to temporarily add a bit of code to your theme’s functions.php file. I set up two wholesale user roles, Wholesale and Wholesale VIP to create separate order minimums and discounts (you can set up more or less depending on your needs).

The first parameter in the below code is the role name wholesale and the second is the display name for role Wholesale Customer. Once you have added and saved the code to the file, just reload your website and the changes will be applied.

Wholesale pricing system

Since I already had over 100 products (most with variations), a per product wholesale pricing system was out of the question. I needed to implement a global wholesale percentage discount that was based on the regular product price, and not on sale pricing. I also wanted to implement a minimum order total for wholesale orders and wanted a customer’s first order minimum to be higher in order to weed out wholesale customers who were trying to order for personal use. I had already purchased Booster Plus for WooCommerce for many of it’s great add-ons, so it was a no-brainer to take advantage of two other features: global discounts based on user role and minimum order totals based on user role.

Registering and managing wholesale customers

In the past, we had customers submit a contact form to request wholesale pricing, and we would give them a wholesale coupon code with a discount. In my new setup, I still wanted to manually approve wholesale accounts but I wanted the rest of the process to be automated and seamless. I opted for using Ultimate Member as it’s basic version was free and had all the functionality I was looking for: a dedicated form for wholesale registrations, a store locator directory (registration form info can be passed onto client’s listing page), and the ability to link the registration form to custom user role.

Ultimate Member – The registration form used to register wholesale customers.

I was also already using AutomateWoo, so this was another no-brainer to use it to manage and automate wholesale accounts. I set up multiple triggers to send emails after a wholesale account approval and also set up triggers to change the user role from Wholesale to Wholesale VIP after the customer completes their first order.

AutomateWoo – This workflow sends an email after a new wholesale account is approved.

AutomateWoo – This workflow upgrades wholesale customers to VIPs after their first order.

Removing taxes and coupons

There were a couple of other features that were necessary to further streamline the new wholesale system. Primarily, I needed a way to prevent taxes being applied to wholesale customers during checkout. I also wanted to prevent wholesale customers using coupons. Both of these features can be easily added adding these two filters to your functions.php file:

Boosting your wholesale marketing

The downside to preventing wholesale customers from using coupons is that it takes away a powerful marketing option. A workaround would be to temporarily increase the wholesale global discount amount or lower the wholesale order minimum amount. The big upside to my setup is that having custom wholesale user roles combined with AutomateWoo’s trigger functions means you can do some very powerful marketing to your wholesale customers.

So for less than $120, you can easily set up a feature-rich and seamless WooCommerce wholesale account system. If you set your wholesale registrations to auto-approve, this whole process can be completely automated with no additional work on your end. Not only will this setup give you an awesome wholesale system, it will provide all of the powerful marketing and automation features of AutomateWoo as well as the additional features of Booster Plus for WooCommerce.

With this strong foundation now in place, I have plans to implement an influencer and affiliate program for my WooCommerce store which I will detail in a future post.

Plugins used:

About the author

Timothy Burgin started hand coding websites in 1997 and has continued to dabble with HTML, CSS and PHP over the years. He currently manages several WordPress sites where he handles all of the photography, design and coding and much of the writing.