
Wholesale — Bulk Prices by Customer Role for WooCommerce
Wholesale prices by customer role in WooCommerce: minimum order amount, quantity step and selling by packs. The price is applied on the fly through Woo's filters.
- Compatibility
- WooCommerce 7.0+ · WordPress 6.2+
- Licence
- two sites, annual
- Trial
- 7 days, no card, one per site
The module in action — 37 sec
Clear even without sound: Ukrainian subtitles
What Free has,
and what Pro adds
The free version works with no time limit. Pro adds the rest of the features in the table.
Key points
Minimum order amount
Set globally or separately for each role. Two modes: hard — checkout is blocked — and soft — the shopper sees a warning showing how much more they need to add.
Shipping and payment by role
Warehouse pickup or your own courier only for wholesale customers, while retail shoppers see the usual carriers.
Compatibility
The classic and block-based cart and checkout (Store API) are handled identically, and HPOS (custom order tables) is supported.

The trial starts when you ask
A fresh install is the free version, nothing switches on by itself. The “Try Pro for 7 days” button → e-mail → the key right in the window and by e-mail.

One key — two sites
Moving the store? Unbind the licence on the old domain and activate it on the new one yourself. For studios — keys for 5 or 25 sites, or unlimited.
Technical requirements
WordPress 6.2 or newer, WooCommerce, PHP 7.4 or newer. Compatible with HPOS, the classic checkout and the block-based checkout.
Version history
Shipping methods by customer role (for one zone or every zone, classic and block checkout); in Pro, payment methods by role.
Wholesale prices by customer role, minimum order amount, quantity step, selling by packs, price applied through WooCommerce filters with no rewriting of products, compatibility with HPOS…
Frequently bought with Wholesale
4 modules in one order — 40% cheaper than separately


Nova Poshta Premium — Nova Poshta for WooCommerce

Mono Acquiring — monobank card payments for WooCommerce

Telegram notifications and Viber/SMS for customers for WooCommerce
Full module description
Wholesale for WooCommerce is a module for shops that sell both retail and wholesale at once. WooCommerce keeps one price per product; the plugin adds a second layer: a wholesale price for chosen customer roles, a minimum order amount, and quantity rules — step, minimum, and selling by whole packs.
Minimum order amount
Set globally or separately for each role. Two modes: hard — checkout is blocked — and soft — the shopper sees a warning showing how much more they need to add. The cart total is compared, with or without tax, as you choose.
Quantity step and packs
Minimum quantity and step can be set globally, for an individual product, and for a variation. An incorrect quantity isn’t rejected, it’s corrected — up, down, or to the nearest allowed value, with a message to the shopper. Pack mode makes the step and minimum equal to the pack size.
Shipping and payment by role
Warehouse pickup or your own courier only for wholesale customers, while retail shoppers see the usual carriers. Next to each shipping method you pick the roles: for one zone or for every zone at once. A method with no roles stays available to everyone. It works in both the classic and the block checkout, and after logging in with a wholesale account the list updates straight away, with no stale shipping cache.
In Pro, payment methods are limited the same way: invoice or deferred payment only for trusted dealers.
What works for free, and what’s Pro
The trial only starts with your click
The “Try Pro for 7 days” button only asks for an email and issues a 7-day key. No card needed, nothing is charged. The key is shown immediately in the dialogue and sent by email as well.
The key is checked on the CatCode server. The licence is annual (1–5 years) and includes updates and support for that term.
Compatibility
The classic and block-based cart and checkout (Store API) are handled identically, and HPOS (custom order tables) is supported. For variable products, prices and quantities are resolved per variation.
Why a shop needs this
Wholesale in Woo is usually done one of two bad ways: setting up a second shop, or duplicating products with different prices. Both mean double stock-keeping and double the content work.
The right way is the same catalogue, with the price depending on who’s looking. Then there’s one stock count, one product page, and the retail shopper and the wholesale buyer see different numbers.
How it works, step by step
1. You pick a customer role — any existing WordPress role, or “Guest” — and set a price rule for it: a percentage discount or a fixed price.
2. A shopper with that role enters the shop and sees their own price in the catalogue, product page and cart.
3. For that same role you can set a minimum order amount, a quantity step, and selling by packs.
4. If the order total is below the minimum, the shopper sees an explanatory message rather than a silent error; in hard mode checkout is blocked. An invalid quantity is corrected automatically.
What the admin gets
Rules are set at the role level, not the product level, so a new discount for wholesale buyers can be introduced with a single change, without touching the catalogue.
Prices on the products themselves are not rewritten. Disable the module, and the catalogue has exactly the prices it had before it, with no rollback or cleanup needed.
Under the hood
The price is applied through WooCommerce’s standard price filters. That’s why it correctly carries through to the cart, the order, emails and reports — rather than existing only visually in the catalogue, as happens with solutions that swap the price in the template.
How to install
1. Upload the archive under “Plugins → Add New → Upload Plugin” and activate it.
2. Pick the wholesale buyers’ role and set a price rule. The plugin does not create roles itself — the role must already exist in WordPress.
3. Add a minimum amount, a quantity step, or packs, if needed.
4. Log in with a test wholesale account and check the price in the catalogue, cart and order.
Questions
about the module
Didn't find the answer? Message us on Telegram and we'll reply within a business day.
Does the plugin rewrite prices in the database?
No. The price is applied at display time through WooCommerce's standard filters — your regular and sale prices stay untouched. Disable the plugin, and the shop instantly returns to retail prices.
What happens if a product is already on sale?
Whichever is better value for the shopper wins. A wholesale rule never raises the price.
How do I set a wholesale price for one group of customers?
Create a user role for wholesale customers and select it in the "Customer roles" field of the rule. An empty field means any role.
Why did the quantity in the cart change on its own?
The product is sold with a step or in packs, and the entered quantity didn't fit the grid. The plugin adjusts it and shows a message — so an order isn't lost to a typo.
Does the minimum amount include delivery?
No. Delivery isn't known yet at the cart stage, so the cart total is compared — with or without tax, as configured.
Can I show a shipping method only to wholesale customers?
Yes. Enable "Limit shipping methods by role" and pick the roles next to the method, for one zone or for every zone. Customers without those roles simply won't see it. Payment methods by role are in Pro.
No reviews yet. Be the first.
No questions yet. Ask one — we answer within 24 hours.
Not quite what you are looking for?
We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about the task and we'll prepare an estimate.
Order a custom module
Buying the module
—



