Wholesale and Role-Based Pricing for WooCommerce
Wholesale prices by customer role, with signup approval, hidden prices, wholesale-only products, minimum orders and tax exemption.
- Block cart and checkout
- Classic cart and checkout
- High-performance order storage
- WooCommerce 9 – 11
- WordPress 6.6 – 7.1
- PHP 7.4+
What Wholesale Pricing does
Sell to shops and trade buyers from the same WooCommerce store as your retail customers. Wholesale customers log in and see their own prices everywhere: shop pages, product pages, cart, checkout, emails and orders.
Wholesale Pricing features
Wholesale prices
- A "Wholesale customer" role is ready on activation; add as many roles as you like (Distributor, Gold trade...) or give wholesale prices to an existing role
- Per role: a percentage off every product, percentages per category (sub-categories included), or a fixed price on any product or variation
- A fixed price wins, then the category discount, then the role discount
- Percentages come off the regular price or the current price, your choice
- Wholesale customers never pay more than retail, unless you allow it
- Shows the retail price struck through next to the wholesale price, with a "Wholesale price" label (both optional)
- Wholesale prices in WooCommerce's product CSV export and import
B2B store controls
- Hide prices from guests or from everyone except wholesale customers, with "Log in to see prices"; no prices leak through search engine data or the Store API
- Wholesale-only products, hidden from everyone else in the shop, search, blocks and the Store API
- Minimum order amount and minimum number of items per role, enforced on the cart, classic checkout and block checkout
- Tax-exempt wholesale roles
- Orders are marked as wholesale orders, with the retail price kept on each line
- Items you add to a wholesale customer's order in the admin get their wholesale price
Wholesale signup
[wrpw_registration]form: name, company, email, phone, tax or VAT number, website and a message- Applicants get a normal account at once; approve or decline them under WooCommerce > Wholesale > Applications, or approve everyone automatically
- Emails to you for each application, and to applicants when they are approved or declined, in your WooCommerce email style
Works with
- Block and classic cart and checkout, High-Performance Order Storage
- Tiered Pricing and Quantity Discounts for WooCommerce: quantity tiers apply on top of wholesale prices
A worked example: two trade levels on a retail store
A homeware store sells to the public at retail and to two kinds of trade buyer: small shops and large distributors. Both must log in, both order at least $500 at a time, and distributors are tax exempt. That is two roles and a handful of settings:
| Setting | Wholesale customer | Gold trade |
|---|---|---|
| Discount on everything | 30% off the regular price | 40% off the regular price |
| Category discount | Glassware 35% | Glassware 45% |
| Fixed price | Ceramic mug 12-pack: $42 | Ceramic mug 12-pack: $36 |
| Minimum order | $500 | $500 and 24 items |
| Tax | Charged | Exempt |
| Who sees prices | Logged-in customers only | Logged-in customers only |
A fixed price wins over a category discount, which wins over the role discount, so the mug costs $42 for shops however the percentages are set. Guests see "Log in to see prices" and cannot add to cart, applicants fill in the signup form and are approved under WooCommerce > Wholesale, and every order from a trade account is marked as a wholesale order with the retail price kept on each line for your reports.
How it compares with other wholesale plugins
The well-known wholesale plugins come as suites: a pricing plugin, a separate plugin for hiding prices and products, another for the signup form, each bought and updated on its own. Wholesale and Role-Based Pricing puts the pieces a B2B store needs in one plugin: role, category and fixed prices, hidden prices, wholesale-only products, minimum orders, tax exemption and signup approval, with one settings screen.
Two things are easy to get wrong and are handled here. Hidden prices stay hidden: the Store API and the data search engines read are cleaned too, not just the page, so a retail price never leaks to a trade buyer or a competitor. And wholesale customers never pay more than retail by accident, because the plugin compares the two and charges the lower unless you say otherwise.
For quantity breaks on top of wholesale prices, the Tiered Pricing plugin stacks with it. For trade customers who pay by bank transfer, Conditional Payments can show that gateway to wholesale roles only. For large or custom orders, Request a Quote turns a product list into a priced order the customer accepts online.
How to set up Wholesale Pricing in WooCommerce
- 1
Upload the plugin to
/wp-content/plugins/or install the zip from Plugins > Add New > Upload Plugin. - 2
Activate it. A "Wholesale customer" role is created.
- 3
Set its discount under WooCommerce > Wholesale, or enter wholesale prices on products.
- 4
Give customers the role on their user profile, or add the
[wrpw_registration]form to a page.
Questions about Wholesale Pricing
How do customers become wholesale customers?
Give them a wholesale role on their WordPress user profile, or let them apply with the signup form and approve them under WooCommerce > Wholesale > Applications.
Which price wins?
A fixed price on the variation or product for the customer's role, then the largest category discount for the product's categories, then the role's discount. With none of these, the customer pays the retail price.
Can I hide my prices from the public?
Yes. Under Settings choose who sees prices: everyone, logged-in customers, or wholesale customers only. Everyone else sees "Log in to see prices" and cannot add to cart.
Can I have more than one wholesale level?
Yes. Add as many roles as you need, such as Wholesale customer, Distributor and Gold trade, each with its own discounts, fixed prices, minimum order and tax setting, or give wholesale prices to a role you already have.
Does it work with variable products?
Yes. Fixed wholesale prices can be set on each variation, and percentage discounts apply to every variation. The variation price shown on the product page follows the customer's role.
Can wholesale customers be tax exempt?
Yes. Mark a role as tax exempt and its customers are not charged tax at checkout, on the block checkout and the classic one.
Can trade customers pay by bank transfer or on account?
Enable WooCommerce's Direct bank transfer gateway for that. To offer it to wholesale roles only, pair this plugin with Conditional Payments and Shipping for WooCommerce, which can show a payment method to chosen roles and hide it from everyone else.
Do wholesale customers see the retail price too?
Your choice. The retail price can be shown struck through next to the wholesale price with a "Wholesale price" label, or hidden so they see only their price.
Do admins see wholesale prices?
Admin screens always show retail prices. To see the shop as a wholesale customer, log in with a test account that has the wholesale role.
Wholesale Pricing changelog
- 1.0.0
- Initial release.
Plugins that pair with Wholesale Pricing
Tiered Pricing
Bulk and tiered pricing: lower prices as customers buy more, with pricing tables, mix-and-match categories and role-based rules.
View plugin
Conditional Payments & Shipping
Show or hide payment methods and shipping options at checkout based on cart, product, customer, location and date rules.
View plugin
Request a Quote
Let customers request a quote for products, then send prices from the order editor and let them accept and pay online.
View plugin