Wholesale — Bulk Prices by Customer Role for WooCommerce
Гуртові ціни для ролей покупців, мінімальна сума замовлення, крок кількості й продаж упаковками. Ціна підставляється на льоту через фільтри WooCommerce — у товарах нічого не переписується.
What each licence includes
| Feature | Free | Pro |
|---|---|---|
| Wholesale prices for customer roles (including "Guest") | ✔ | ✔ |
| Discount types: fixed price, percentage, amount discount | ✔ | ✔ |
| Rules on individual products, categories and tags | — | ✔ |
| Quantity-based tiered prices with a threshold table on the product page | — | ✔ |
| Minimum order amount: blocks checkout or just warns | ✔ | ✔ |
| Minimum quantity and step — globally, per product and per variation | ✔ | ✔ |
| Selling in packs of N units | — | ✔ |
| Hiding prices from guests with a login link | — | ✔ |
| Classic and block-based cart/checkout (Store API), HPOS | ✔ | ✔ |
| Shipping methods only for chosen roles, per zone or in every zone; payment methods by role | — | ✔ |
| Export rules to CSV | — | ✔ |
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.

Wholesale prices by rule
A rule is described once: customer roles, what it applies to (individual products, a category, a tag, or the whole catalogue), and the discount type — a fixed price, a percentage, or an amount discount. A rule can have a minimum quantity, at which point the price works as a tiered price: one price from 10 units, another from 50, with a table of thresholds shown on the product page.
The key technical decision: the price is calculated at display time through WooCommerce’s native filters and is never written to the products. Disable the plugin, and the shop instantly returns to retail prices — nothing needs cleaning up. A wholesale rule never raises the price: if the shop’s own promotion is better value, that one wins.
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
A fresh install is simply the free version: wholesale prices on individual products (up to five rules), a minimum order amount, minimum quantity and step, shipping methods by role. Nothing Pro switches on by itself, and nothing switches off after a week.
Pro features aren’t hidden behind an ad banner — they stay in their places in the interface, marked with a Pro badge and a line explaining what they give you: rules on categories, tags and the whole catalogue, quantity-based tiered pricing with a threshold table, selling by packs, a separate minimum amount for each role, hiding prices from guests, payment methods by role, and exporting rules to CSV.

The trial only starts with your click
The “Try Pro for 7 days” button only asks for an email and issues a genuine 7-day key — the same path as a purchased licence, just with an expiry date a week out. No card needed, nothing is charged. The key is shown immediately in the dialogue and sent by email as well.

The key is checked against catcode.com.ua on activation and again once a day. If our server is unreachable, Pro keeps working for another 14 days — an outage on our side shouldn’t shut down your shop. 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 create a customer role (or use an existing one) 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 conditions aren’t met, checkout is blocked with an explanatory message, rather than a silent error.
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.
Price
A Pro licence costs 990 UAH, for one site. The licence is annual: once it expires the module keeps working, only updates and support stop.
Technical requirements
WordPress 6.2 or newer, WooCommerce, PHP 7.4 or newer. Compatible with HPOS, the classic checkout and the block-based checkout.
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. Create a role for wholesale buyers and set a price rule.
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.
Version history
1.2.0 — shipping methods by customer role (for one zone or every zone, classic and block checkout); in Pro, payment methods by role.
1.1.0 — 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 and the block-based checkout.
Frequently asked questions
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.
Questions about the module?
Message us on Telegram — we reply within the working day. We will help with setup, compatibility and key activation.
No reviews yet. Be the first — right below.
Leave a review
Reviews are moderated before publication, which usually takes up to 24 hours.
No questions yet. Ask one — we answer within 24 hours.
Ask a question
We usually reply within 24 hours during working hours.
Buying the module
—