Get in touch
Sales and conversion · WordPress

Wholesale — Bulk Prices by Customer Role for WooCommerce

Гуртові ціни для ролей покупців, мінімальна сума замовлення, крок кількості й продаж упаковками. Ціна підставляється на льоту через фільтри WooCommerce — у товарах нічого не переписується.

Download for free
Version
v1.2.0
Compatibility
WooCommerce 7.0+ · WordPress 6.2+
Platform
WordPress
Wholesale — Bulk Prices by Customer Role for 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 for WooCommerce — wholesale price and rule settings
WooCommerce → “Wholesale: Bulk Prices”: general toggles and a list of rules. Pro features are visible right away — marked with a badge and currently inactive.

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.

Shipping methods by customer role in WooCommerce
Next to each method: the roles it is available to. An empty field means all customers.

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.

Pro licence block: licence status, list of Pro features
The licence block: shows the current status, a full list of Pro features, and a trial button.

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.

One email address, and Pro switches on for 7 days. Once the trial ends, the free tier keeps working with no time limit.

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.

@catcode_support

Not quite what you are looking for?

We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about your task and we will prepare an estimate.

Order a custom module