Wholesale pricing and ordering system for Woocommerce
Requires WooCommerce version 6.8 or higher and PHP 7 or higher
Integrates with the WooCommerce User Role Pricing plugin.
Save even more with the Wholesale Ordering and User Role extensions bundle (includes User Role Pricing and User Role Minimums)!
Check the bundle page for special bundle upgrade pricing information if you already own the Wholesale Pricing plugin.
Originally developed for my wife’s web site ( http://paychiguh.com ), this extension for Woocommerce allows you to set up separate wholesale prices for each product & variation in your Woocommerce shop.
With this extension for Woocommerce, you can create Wholesale Customer user accounts that allow those users to see and order at wholesale prices. Easily filter orders in the admin dashboard by Wholesale or Retail orders. Many features and configuration options. See the list of features below, and the screen shots to get a better idea of what you can do with this plugin.
- New in Version 5 – You can now select which payment gateways and shipping methods will be shown to Wholesale Customers and Retail Customers. There are two new settings sections within the Wholesale tab in WooCommerce settings where you can use checkboxes to select which methods are available to each type of customer. The default is “All”
- New in Version 4 – This version focuses on code optimizing and utilizing caching and new database table to speed up the display of pages, especially if they contain many variable products with lots of variations. New Product Update functions as well to quickly adjust wholesale and list prices on multiple products. Please see the reworked documentation page for all the details.
- Orders with the custom “Wholesale Pending” status can be edited on the WooCommerce Orders page
- Compatibility with WooCommerce 4+
- You can create separate (optional) custom shop messages for retail/guest and wholesale customers
- Wholesale Customers can pay for their order on the My Orders page when you have payment disabled at checkout for Wholesale Customers and are using the Wholesale Pending order status
- When showing retail prices in the wholesale price prefix or suffix, you can now set it to only show the regular price (as opposed to showing the sale price when the product is on sale for retail customers).
- Full compatibility with WPML/WCML, including multi-currency support
- Full compatibility with Aelia Currency Switcher
- Full compatibility using the combination of WPML for multilingual and Aelia Currency Switcher to handle multi-currency functions
- Compatibility with PolyLang, including translations of custom admin defined text strings
- See the newly updated docs pages, including new pages for WPML/WCML integration, Aelia Integrations, and User Role Pricing integration.
- “Hide Wholesale Only products” option in general setting section. You can un-check this option if you want to show all products to all customers. Un-checking the box will show Wholesale Only products to non-wholesale customers, but they won’t see the prices and they won’t be able to add the products to their cart.
- “Wholesale Only Price text” option allows you to define the short text that will appear in place of the price for Wholesale Only products when viewed by non-wholesale customers (if the above option is un-checked).
- Can optionally restrict content for Wholesale Only products and define the HTML that will show in place of the content on single product pages. This is for when you are hiding wholesale only products from retail customers, just in case they stumble across a link to the single product page, in which case you can define what they will see instead of the normal product content.
- “Wholesale Only error text” in the Messages and Text settings section now allows you define, or remove, the error message text shown to non-wholesale customers of the individual product page for Wholesale Only products.
- Compatibility with the WooCommerce Product Addons plugin. Works for both wholesale and retail customers.
- Can optionally allow wholesale customers to backorder products.
- Option to not show stock status and inventory to wholesale customers.
- Modified the way that wholesale vs retail customer and prices are set on the admin edit order page for manually creating or editing orders.
- Can optionally make wholesale only variations inactive for retail customers. If you have a variable product with some variations that are wholesale only, and others that are not, and if there is more than one attribute for the variations (meaning more than one select box before they can add to cart), and you enable this feature, then the specific combination of attributes for wholesale only variations will not be able to be selected by retail customers or guests. Some themes/browsers may also gray out those specific selections (depending on the combinations required to get a wholesale only variation). Leaving this disabled (default) will allow them to select the wholesale only variation, in which case they get the wholesale only variation message the same way the plugin has functioned up to now (and there will be no price or add-to-cart button).
- There is a separate Wholesale Shipping Tax Class in the plugin settings (Taxes section) to allow you to specify which tax class should be applied to shipping for wholesale customers. This setting will apply to public side orders as well as when you manually create orders from the admin orders page.
- Modified the way wholesale info is displayed and saved for variations of a variable product to be compatible with the upcoming 2.4 version of WooCommerce (still in beta) which now saves variations via AJAX. These new modifications to my plugin are still compatible with current versions of WooCommerce.
- Products that should be hidden from wholesale or retail customers (depending on your settings) will also be hidden within the Woocommerce widgets as well, or from any non-loop (shop type page) product display that uses a WordPress query to retrieve products.
- “Wholesale Only Categories” and “Retail Only Categories” can be defined on Wholesale Orderings settings page. You can select multiple product categories for each option to only show those categories to the respective customer type. Works to hide categories from the other customer type in the main shop loop (when showing categories) as well as the categories widget.
- When manually editing or creating orders from the admin dashboard, prices for any added products will now be based on the role of the selected customer. A Customer Type display will refresh via AJAX when you select a different customer. The Order type will also update based on the user role. Changing the order type independently does not affect pricing (based on user role only), and you will see a message if there is a mismatch.
- Check box options for both the wholesale prefix and suffix text to not show the prefix or suffix is there is no retail price for a product. This is useful if you are using the tags to show retail price in either the prefix or suffix, but don’t want the retail price to show for wholesale only products. Then you can leave the retail price blank or set to zero, and not see “FREE” for retail price.
- “Wholesale Only” check box for Grouped products so that the parent grouped product can be hidden from retail customers, in addition to whatever products belong to that group.
- Optionally hide ALL prices and add-to-cart/buy buttons unless a user is logged in. This can be helpful if you don’t want your wholesale customers to see retail prices (which they could before if they weren’t logged in). However, it also means that guests can’t see prices or order anything until after they create an account and log in. You can also define the text that appears in place of the price, as well as define the link to your login page (most of the time, you will probably want to go to the Woocommerce My Account page).
- Allow FREE products for wholesale customers
- Define your own minimum order error message shown to wholesale customers on the cart and checkout pages if the minimum order amount has not been reached yet.
- Separate wholesale price prefix and suffix text fields on the Wholesale settings page give you a completely different prefix/suffix for use with Wholesale price displays on the shop and product pages (retail has its own suffix on the WooCommerce Tax settings page). Tags have been added to both the Wholesale Prefix and Suffix field to allow you to show the retail or list price, as well as a line-break tag so you can put retail and wholesale prices on separate lines (WooCommerce strips all html out when those settings are save, so I added tags to allow line-breaks, which is replaced at output time).
- A body class is added to all WooCommerce pages to show if the logged in customer is wholesale or retail, allowing you to target any other elements on the page and style them different based on if the body class contains “wholesale” or “retail”.
- Classes have been added to the prefix and suffix text to allow targeting and styling.
- Independent tax settings for wholesale customers. Choose if wholesale prices are entered including or excluding taxes, and how prices are displayed on shop and cart pages (including or excluding tax), and create a separate tax class for wholesale customers. Wholesale Tax class and status can also be set at the product level.
- Create “wholesale only” products that will be hidden from the public and regular customers. There is a check box next to the wholesale price fields for each product or variation. Checking that box will make the product only visible to logged in users who have the “Wholesale Customer” role.
- Define wholesale prices for each product and variation
- Wholesale prices can be edited with quick edit (simple products), Bulk Edit, as well as within the regular product edit pages
- For variable products, each variation has its own wholesale price (same as with regular and sale prices)
- Adds Wholesale Customer role, which is the same as the Woocommerce Customer role, but with the capability to view and order at wholesale prices
- Purchase Order field added to checkout page for wholesale customers only (not a required field).
- Purchase Order column added to My Account page and View Order page for wholesale customers only
- Choose whether or not wholesale customers need to pay at checkout.
- Set text for button on checkout page for wholesale customers, such as “Send Order”
- Choose whether or not wholesale customers are taxable –
- Create and select a separate tax class for Wholesale customers, if desired.
- Choose whether or not wholesale customers can use coupon codes
- Choose whether or not to calculate shipping for wholesale orders
- Choose whether or not wholesale orders automatically decrease stock/inventory
- Optionally create a separate Wholesale Terms & Conditions page. If you set the page for this in the wholesale settings page, there will be the standard Woocommerce terms and conditions agreement checkbox, but the link will open the wholesale terms & conditions page you specified if it’s a wholesale customer.
- Several optional and customizable messages can be displayed to wholesale customers. One for the main shop page, one for the cart page, and one for the checkout page. Messages can be displayed in the Woocommerce message box style, or you can choose customizable message boxes that can be closed, and where you can specify colors and custom CSS styling.
- Prefix text can be added to prices displayed to wholesale customers, such as “Wholesale Price”
- Products without any wholesale price can either be hidden from wholesale customers, or you can optionally define simple text to show in place of the price, as well as a more detail message when a product or variation has no wholesale price
- Wholesale prices are shown below the regular/sale prices on the admin product list page, making it easy to see any products you haven’t entered any wholesale price yet, or just for a quick check
- Purchase Order column added to admin orders list page and edit page, and the Purchase Order field has been added to fields searched when you type in a search term on the orders page (quickly find an order by PO #)
- Admin orders list page can be filtered by Retail or Wholesale order types
- Adds a Wholesale Customer List report to the Customers tab of the WooCommerce Reports page, with action buttons to edit that user or view all orders from that user.
As of April 2017, with the release of WooCommerce 3, and the updates in the Dynamic Pricing plugin, it appears that Dynamic Pricing version 3.0+ is now working correctly with wholesale prices (tested with Wholesale Ordering version 3.0.0)!
NOTE: Wholesale pricing does NOT currently work with the Product Bundles extension, but you can still use the extensions for retail customers.
Very robust plugin, has worked perfectly for the 5 years plus we’ve used it on our UK business website. Stephen provides excellent help and support for getting the most out of the plugin. Have just updated to 5.0.0 – great to see the new shipping and payment gateway features. Would highly recommend to anyone needing to split their site between retail and wholesale customers.
We are using it on two client sites to manage their wholesale requirements.
Works great. Managed to get all up and running without the help of support.
My partner and I have a small herbal company, which has mostly wholesale customers both domestic and international, however, we would like to be able to attract retail buyers, as well. It was quite astonishing to me that Woo Commerce does not make provision within its functionality to support two pricing platforms. Therefore, I was very pleased to find Stephen’s plugiin; it has lived up to its advance billing, and proven to be an excellent product. Thank you!!
Great plugin so far thank you very much
Super dooper support from Stephan on this. Plugin works really well and the support is second to none. Highly recommend!!
We have been using the Wholesale order plugin for over a year now and it and i have no other words for that stephen did a great job delivering this comprehensive and complete plugin. It is by far the best wholesale addition which is available currently.
During the past months Stephen developed another plugin for our company in addition to this wholesale plugin and therefore I have been working closely on this. I cannot say otherwise that it has been a great pleasure to work with him. Stephen is very skilled and truly delivers what is required. He has a great customer focus, fast replies and understand the business requirements. Rather then delivering a quick and dirty solution he makes sure the solution is durable, stable and build to last. Although it was not a fixed price project, I think Stephen delivered more then what was requested and helped us to greatly improve our service offering to our customers. From the 1st start like getting a very extensive estimate (which shows that he knows what he is talking about) to the build until go-live his support has been impeccable.
I would certainly recommend any plugin or any custom development made my Stephen as it is a
a relieve to work with someone like him 😉
Stephen’s plugin is fantastic and he provides the best support I’ve seen from any plugin developer. Highly recommended.
Stephen backs his product up with the most important aspect of any digital purchase, his support. WordPress is an evolving platform continually being updated which requires plugins to follow suite, it is even more important when you have a plugin built for the purpose of supporting another plugin as is the case with woocommerce and Stephens plugin.
His support for his product so far in my experience is 1st class and very prompt, where as others in my experience will reply in 2, 3 or even more days later Stephen has responded almost immediately and when you are developing a website or even have it live this so important.
Thank you Stephen
I have to say, I tend to have a high expectation of customer service and support levels. This developer so far has exceeded those expectations. Best wholesale plugin for the money, with an absolutely amazing response time for support questions. Very detailed support with suggestions or advice on other issues as well. I highly suggest using this plugin for your wholesale needs. You cannot go wrong.
Thanks for the amazing plugin and the outstanding support Stephen.
I am very hapy to buy this plugin. It work very well and support is incredible fast.
I tried a lot of other plugins and combination of plugins to get a good working and simple to use B2B wooocommerce shop in addition to our B2C shop. Stephens plugin was by far the most simple one and still does exactly what a B2B shop needs to do! No overload so even a shop manager who’s not a woocommerce pro or familiar with php can customize it. And as mentioned before by other people: Stephen proivides an outstanding customer service, answers every question within hours and helps you to get the best out of the plugin for your shop! Thank you for such a great work!
I cannot say enough about Stephen’s customer service. He responds immediately to questions and support tickets with a thorough, simple answer in plain English so that anyone using this plug in can quickly implement the solution. The plugin works perfectly and is essential to our site which sells B2C and B2B with equal frequency. I could not be happier.
BTW had a similar plugin on WPeC without this ease of use and with the world’s worst customer service, so Stephan has been such a breath of fresh air for our website! I can’t thank him enough.
Phantastic plugin to easily combine wholesale and retail on one platform without any additional installs, nasty workarounds or complicated programming. And the support is unmatched in reaction time and quality. Great job, Stephen!
Excellent plugin, does exactly what I wanted. Perfect for any small to medium businesses who sell both direct and to retailers or re-sellers.
You must log in and be a buyer of this download to submit a review.