Skip to content
GPLWP Guides

How to offer quantity discounts in WooCommerce

WooCommerce Time About 20 minutes 5 steps Updated 1 Sep 2026

The short answer

WooCommerce has no built-in tiered pricing, so you either write a price filter in your theme or install a plugin that adds pricing rules. For a live shop the plugin route is almost always the right call — the filter approach breaks quietly on cart totals and tax.

What you need

  • A WooCommerce store on WordPress 6.0 or later
  • Admin access to the site
  • A child theme, if you take the code route
  • Somewhere safe to test — staging, ideally

Decide what shape the discount takes

Before touching anything, write down the rule in plain words: buy 5 or more, pay 10% less, or buy 10, pay a flat 8 each. Percentage and fixed-price tiers behave differently at checkout, and coupons interact with them in ways that surprise people.

Write the whole ladder out. Most of the pain in this job comes from discovering the third tier only after the first two are live.

The code route, if you only need one rule

WooCommerce exposes the cart line price, so a single tier can be done with a filter in your child theme functions file. It hooks woocommerce_before_calculate_totals and rewrites the price when the quantity crosses your threshold.

Two warnings. It does not show the discount on the product page, so customers only see it at cart — which measurably hurts conversion. And it will not survive a plugin that also filters price, which most subscription and bundle plugins do.

The plugin route, for anything real

A pricing plugin adds a rules interface to each product: set the quantity thresholds and the price or percentage for each tier, and it handles display, cart, tax and reporting together.

Set the rules on one product first. Add it to the cart at each tier boundary — 4, 5, 9, 10 — and confirm the price changes exactly where you expect.

Show the tiers on the product page

This is the step people skip, and it is the one that makes the money. A discount nobody knows about changes nothing. Every decent pricing plugin can render the tier table on the product page; turn it on.

Test the awkward combinations

Apply a coupon on top of a tiered price. Check tax at each tier. If you sell to trade, check the logged-out price too. These are where tiered pricing usually breaks, and always on a Friday.

The fast route

Let WooCommerce Tiered Pricing do it

Quantity-based tiers with a table on the product page. The straightforward option if tiered pricing is all you need.

Get WooCommerce Tiered Pricing

Tools that do this job

All of these solve the task above. They are listed as we have covered them.

Our pick
WooCommerce Tiered Pricing

Quantity-based tiers with a table on the product page. The straightforward option if tiered pricing is all you need.

Get it
YITH WooCommerce Dynamic Pricing

Broader rules engine u2014 category-wide discounts, user roles, date windows. Worth it if you need more than quantity.

Get it
Discount Rules for WooCommerce

Updated note.

Get it

Questions

Does WooCommerce support tiered pricing out of the box?
No. Core WooCommerce has a single price per product, plus sale price. Quantity-based tiers require either a code filter on the cart price or a plugin that adds a pricing rules layer. There is no setting to switch on.
Will quantity discounts work with coupons?
Usually, but the order of operations matters and varies by plugin. Most apply the tier price first and the coupon second, which can stack more discount than you intended. Test the combination before going live, and consider excluding tiered products from percentage coupons.
Should the discount show on the product page?
Yes. A tier table on the product page is what actually raises average order value, because it tells the customer the larger quantity is worth buying. A discount that only appears in the cart is a discount most people never discover.
Can I do this without a plugin?
For a single rule on a single product, yes — a filter on woocommerce_before_calculate_totals will do it. It will not display tiers to the customer, and it can conflict with any other plugin that filters price, which includes most subscription and bundle extensions.