# WooCommerce bulk discount rules for B2B customers

> How to set up WooCommerce bulk discounts for B2B customers: global or per-product rules, fixed or range tiers, percentage or amount, and clear cart display.

- Source: https://maxdev.ro/en/blog/woocommerce-bulk-discount-b2b/
- Romanian version: https://maxdev.ro/blog/discount-cantitativ-woocommerce-b2b/
- Author: Daniel Florea
- Published: 2026-11-01
- Site index for AI: https://maxdev.ro/llms.txt

---

**WooCommerce bulk discounts for B2B: rules, tiers and cart display**

How to build bulk discounts for B2B customers in WooCommerce: the four rule types, global or per-product rules, the calculation order on top of negotiated prices, cart display and matching the ERP document.

![Increasing groups of blue boxes paired with decreasing unit price indicators.](https://maxdev.ro/assets/content/articles/woocommerce-bulk-discount-b2b/hero-fe13fa75.webp)

A WooCommerce bulk discount lowers the unit price when a customer buys more. WooCommerce core has no quantity-based discount rules, so in a B2B store they are built as separate rules: global or per product, triggered by a fixed quantity or a quantity range, and applied as a percentage or a fixed amount. The bulk discount is applied on top of the customer's negotiated price and shown clearly in the cart, so the customer can see where the final price comes from.

Below we show how these rules work in a [WooCommerce B2B platform](https://maxdev.ro/en/services/woocommerce-b2b/) running in production and connected to an ERP: which rule types exist, how to choose between global rules and per-product exceptions, how the customer sees the discount, and what has to match between the store and the document the ERP issues.

**In short**

- WooCommerce core has coupons, not automatic quantity tiers. B2B bulk discounts are built as separate rules.
- A rule has a condition (a fixed quantity or a quantity range) and an effect (a percentage or a fixed amount per unit).
- Global rules cover the whole catalog; each product can use the global rules, its own rules or no discount at all.
- The bulk discount is applied after the customer's negotiated price and before VAT.
- On the product page the customer sees buttons with the recommended quantities, and in the cart, under each product, the discount applied.

## Bulk discount, quantity discount or tiered pricing?

The three terms describe the same idea from slightly different angles. A bulk discount or quantity discount is a lower price for buying more units. Tiered pricing is the structure behind it: a ladder of quantity ranges, each with its own unit price or discount. In this article we use them interchangeably, because the rules that implement them are the same.

What matters more in B2B is a different distinction: a bulk discount is not a promotion. It is part of your commercial policy, just like negotiated prices. A customer who orders a full case should see the case price without hunting for a code, and the rule should be the same today and next month.

## What WooCommerce core can and cannot do

Out of the box, WooCommerce offers [coupons](https://woocommerce.com/document/coupon-management/): a percentage discount, a fixed cart discount or a fixed product discount. Coupons are designed for campaigns: the customer enters a code and the discount applies if the coupon's conditions are met. What coupons do not give you is a price ladder by quantity, such as "from this many units, the unit price drops", applied automatically on each product without any code.

That is why, in a B2B store, quantity discounts are built as rules separate from coupons, tied to the product and to the quantity in the cart.

## The four types of bulk discount rules

A bulk discount rule has two parts: the condition, which decides when the rule applies, and the effect, which decides how much the price drops. The condition can be a fixed quantity or a quantity range, and the effect can be a percentage or a fixed amount. Combining them gives four rule types.

| Rule type | What it defines | When it applies | Best for |
| --- | --- | --- | --- |
| Fixed quantity | the condition | at the set quantity, for example one case or one pallet | products sold in standard packs |
| Quantity range | the condition | when the cart quantity falls within a range, with successive tiers | products sold by the unit in variable quantities |
| Percentage | the effect | the unit price drops by a percentage | one rule across many products with very different prices |
| Fixed amount | the effect | the unit price drops by a fixed amount | products where a percentage would give discounts that are too large or too small |

Quantity ranges are the most common choice in B2B, because they cover any quantity ordered. When a product has several ranges, the rule valid for the cart quantity applies, not all the rules at once. Fixed-quantity rules are useful when a product has a standard pack and you want to encourage orders in full packs.

Choosing between percentage and fixed amount is a margin decision. A percentage scales with the price on its own, so a single rule can cover an entire catalog. A fixed amount per unit is more predictable when your margin is the same in money regardless of the product's price.

## Global rules or per-product rules?

Global rules are defined once and apply to the whole catalog. They fit when the discount policy is the same for most products. For exceptions, each product has three options:

1. **Use the global rules.** The default, for most products.
2. **Have its own rules.** The product gets tiers different from the global ones, for example because it is sold in a different pack size.
3. **Have discounts disabled.** Useful for low-margin products, where any volume discount would turn the sale into a loss.

Also at product level, you decide whether the recommended quantity buttons appear on the product page. This separation pays off in maintenance: a policy change happens in one place, the global rules, while exceptions stay visible on the products they apply to instead of being buried in a long list of rules.

The practical rule: start with global rules and add per-product rules only where there is a clear commercial reason. A catalog where every product has its own rules is hard to audit, and mismatches with the ERP appear more often.

## Where the bulk discount fits in the price calculation

In a B2B platform, the final price is calculated in four steps, always in the same order. The bulk discount is applied on top of the customer's negotiated price, not on top of the list price.

1. **List price**, the general price of the product.
2. **Negotiated price**, if the logged-in customer has an agreed price for that product; it replaces the list price.
3. **Valid bulk discount**, based on the quantity in the cart.
4. **VAT**, according to the store and product settings.

The order has a commercial consequence worth deciding deliberately: a customer with a negotiated price who orders large quantities gets both benefits. If the negotiated price for a product already includes a volume discount, the bulk discount can be disabled on that product. We covered how negotiated prices reach the store, and why they are never written on the product, in our guide to [WooCommerce wholesale pricing per customer](https://maxdev.ro/en/blog/woocommerce-wholesale-pricing-per-customer/).

## How the customer sees the bulk discount

A discount the customer cannot see does not help them decide. That is why, in a B2B platform, the bulk discount shows up in three places.

**Quantity buttons on the product page.** The buttons suggest the quantities that unlock a discount, and one click fills in the quantity field. The customer learns from the product page itself that a better tier exists, without digging through terms sent by email.

**Recalculation for manually entered quantities.** If the customer types a quantity other than the suggested ones, the rule is recalculated for that quantity. It does not matter whether they used the buttons or typed: the price follows the actual cart quantity.

**The discount shown in the cart and at checkout.** Under each product, the applied bulk discount is displayed. The customer sees where the final price comes from, and your sales team gets fewer calls along the lines of "why is the price different from what I expected".

This transparency matters more in B2B than in B2C. The person placing the order is often an employee who has to justify the price to a manager or to accounting. Any confusion on the path from product page to checkout costs orders; we analysed that path in our article on [where WooCommerce stores lose money, from product to checkout](https://maxdev.ro/en/blog/where-woocommerce-stores-lose-money-product-to-checkout/).

## The store's discount and the ERP's document

When the store is connected to an ERP, the order is sent to the ERP with the customer, the products and the quantities. Prices are not forced from the store: the ERP calculates the document according to its own rules. This is deliberate, because the ERP remains the single source of truth for money.

The consequence for discounts: the quantity rules in the store must describe the same commercial policy the ERP applies when it issues the document. If the store shows a discount the ERP does not know about, the customer sees one price in the cart and another on the invoice. Before launch, it is worth checking on a few test orders that the cart total and the ERP document match, for every rule type you use.

This is part of [WooCommerce ERP integration](https://maxdev.ro/en/services/erp-integration/): not just moving data, but deciding, for each piece of information, which system has the final say. To transmit orders, WooCommerce exposes them through its [REST API](https://woocommerce.github.io/woocommerce-rest-api-docs/), and the connector to SoftOne, Nexus, Oracle or another ERP is built on top of it.

## Why custom rules instead of coupons or generic extensions

For a B2C store with a few promotions, coupons and a generic discount extension may be enough. A B2B store connected to an ERP has requirements that generic solutions do not cover together:

- the discount must apply on top of each customer's negotiated price, which comes from the ERP;
- the calculation order must be fixed and identical to the one your sales team knows;
- per-product exceptions must live on the product, next to its link to the ERP item;
- the order must reach the ERP without the store and the ERP calculating differently.

Every added extension brings its own calculation rules, and when several overlap it becomes hard to tell which one set the final price. In a custom-built solution, pricing rules live in one place and can be tested. We explain the difference on our [WooCommerce B2B](https://maxdev.ro/en/services/woocommerce-b2b/) page.

## Common bulk discount mistakes

Most problems with bulk discounts do not come from the maths, but from rules written unclearly. This is what we check on every project:

1. **Global and per-product rules applied at the same time.** A product should use either the global rules or its own, never both.
2. **Discount calculated on the list price.** A customer with a negotiated price gets a wrong price, sometimes higher than the one they are entitled to.
3. **Ranges that overlap or leave gaps.** Every quantity must fall into exactly one range; otherwise the same order can receive different discounts.
4. **The rule only works with the buttons.** If the discount is not recalculated when the customer types a quantity, the cart price becomes unpredictable.
5. **The discount is not shown in the cart.** The customer sees a final price different from the product page and does not know why.
6. **Store rules do not match the ERP.** The cart price and the invoice differ, and the customer's trust in the store drops.

## From our projects: Forelit

For Forelit, a company in the HoReCa industry with more than 700 B2B customers, we built a WooCommerce platform connected directly to [SoftOne](https://www.softone.ro/). The platform supports global bulk discount rules with per-product exceptions (own rules or discount disabled), triggered by fixed quantities or ranges, as a percentage or a fixed amount. On the product page, customers see buttons with the recommended quantities, and in the cart and at checkout they see, under each product, the discount applied on top of their negotiated price. Orders reach SoftOne without being entered manually. The rest of the customer account, from invoices to account status, is described in the article on the [B2B customer portal in WooCommerce](https://maxdev.ro/en/blog/woocommerce-b2b-customer-portal/). The details are in the [Forelit case study](https://maxdev.ro/en/case-studies/forelit-b2b-platform-woocommerce-softone/).

## Frequently asked questions

### Does WooCommerce have bulk discounts built in?

Not as automatic quantity rules. WooCommerce core has coupons (percentage, fixed cart or fixed product) that require a code. In a B2B store, bulk discounts are built as separate rules that apply automatically based on the cart quantity.

### What is the difference between a fixed-quantity and a quantity-range discount?

A fixed-quantity discount applies at one specific quantity, for example a full case. A quantity-range discount applies to any quantity within a range and allows successive tiers, so it also covers orders with variable quantities.

### Do bulk discounts stack with negotiated prices?

Yes. The bulk discount is applied on top of the customer's negotiated price, not the list price. If the negotiated price already includes a volume discount, the bulk discount can be disabled for that product.

### Can different products have different bulk discounts?

Yes. Each product can use the global rules, have its own rules or have discounts disabled. Global rules cover most of the catalog, and exceptions are set on the product.

### Which price ends up on the invoice when the store is connected to an ERP?

The one calculated by the ERP. The order is sent to the ERP with the customer, products and quantities, and the ERP issues the document according to its own rules. That is why the store's discount rules must reflect the same commercial policy as the ERP.

### Does the discount apply when the customer types the quantity?

Yes. The quantity buttons are only a shortcut. If the customer enters a different quantity, the rule is recalculated for the actual cart quantity.

If you want bulk discounts that apply automatically on top of your customers' negotiated prices and give the same result as your ERP, see how we build a [WooCommerce B2B platform connected to your ERP](https://maxdev.ro/en/services/woocommerce-b2b/) or tell us about your pricing policy.

## Related services

- [WooCommerce B2B: custom platform connected to your ERP](https://maxdev.ro/en/services/woocommerce-b2b/)
- [ERP Integration for Online Stores](https://maxdev.ro/en/services/erp-integration/)

## Keep reading

E-commerce

### [WooCommerce wholesale pricing per customer, straight from your ERP](https://maxdev.ro/en/blog/woocommerce-wholesale-pricing-per-customer/)

How to show each B2B customer their negotiated price in WooCommerce without other customers seeing it: prices synced from your ERP, calculation order, what happens at checkout and what to check when a price is missing.

October 18, 2026 · 10 min read

HoReCa

### [Forelit: 700+ B2B customers moved from phone and email to a platform connected to SoftOne](https://maxdev.ro/en/case-studies/forelit-b2b-platform-woocommerce-softone/)

Forelit took B2B orders by phone, through sales agents and by email. In 2 months we built a WooCommerce platform connected directly to SoftOne: 700+ customers now have accounts, their negotiated prices, their invoices and orders that reach the ERP automatically.

October 12, 2026

E-commerce

### [B2B customer portal in WooCommerce: accounts, invoices and status](https://maxdev.ro/en/blog/woocommerce-b2b-customer-portal/)

What a B2B customer portal built on WooCommerce and connected to an ERP looks like: accounts created from the ERP, invoices with on-demand PDFs and own-data access only, delivery points, account status and account security.

November 1, 2026 · 11 min read

---

## Contact

- Phone: +40 735 343 355
- Email: contact@maxdev.ro
- WhatsApp: https://wa.me/40735343355
- Book a call: https://cal.com/daniel.maxdev
- Address: 66A Theodor Pallady Blvd, District 3, Bucharest, Romania
