Getting started
What Tiered Pricing Table does
Charge different prices depending on the quantity a customer buys — “buy more, save more”. You set the tiers; the plugin shows them on the product page, updates the price, totals and savings live, applies the right price in the cart and checkout, and shows the lowest price or a price range in the catalog.
Also included: minimum / maximum / step quantities, prices per customer role or individual customer, global rules for categories, tags, brands or roles, request a quote, and tier labels such as “Best value”.

How pricing tiers work
- A tier = a quantity and the price (or discount) that applies from that quantity up to the next tier.
- Tiers start at quantity 2; quantity 1 is always the regular/sale price.
- Fixed rules set the unit price; percentage rules set a discount from the product price.
- With a minimum order quantity, the first tier runs from the minimum to your first rule at the regular/sale price.
- The highest tier the quantity reaches wins (tiers at 10 and 20 → quantity 15 gets the 10+ price).
Quick start: your first tiered price
- Products → Edit → General: under the regular/sale price choose a Tiered pricing type and add rows (quantity + price or discount) with New tier.
- Optional — Tiered Pricing tab: quantity limits, a layout and unit label for this product. Role and customer prices live on the Role & Customer Pricing tab.
- Update. The table appears above Add to cart and the price follows the quantity.

Store-wide defaults
How tiers look (layout, colours, texts, position, totals, catalog prices…) is set once under WooCommerce → Settings → Tiered Pricing. Product-level fields only decide what the prices are.
Where to find everything
| Screen | What you do there |
|---|---|
| Products → Edit → General | Tiered pricing rows (product or each variation) |
| Products → Edit → Tiered Pricing | Min / max / step quantity, layout, unit label, default variation |
| Products → Edit → Role & Customer Pricing | Prices per role or per customer |
| WooCommerce → Pricing Rules | Global rules for many products, roles or customers |
| WooCommerce → Settings → Tiered Pricing | General (layouts, product page, catalog, cart, guests), Calculations, Modules, Integrations, Tools, Tier Labels, Request a Quote |
| WooCommerce → Quote Requests | Submitted quotes |
| WooCommerce → Settings → Tax | Per-role tax settings |
Pricing rules
Fixed and percentage rules
Fixed = flat unit price per tier. Percentage = discount from the product price (from the sale price if there is one; switch to the regular price in Settings → Calculations). Both examples below give 1–9 = $100, 10–19 = $90, 20+ = $80.

Please note
Never enter the regular price as a tier — tiers start at quantity 2.
Minimum, maximum and quantity step
Set in the Tiered Pricing tab (and in every role, customer and global rule):
- Minimum — quantity field pre-filled, smaller quantities rejected.
- Maximum — quantity field capped, validated on add-to-cart and cart update.
- Group of (step) — multiples only (10, 20, 30…).
Minimum + tiers
Minimum 10 with 10–19 = $100, 20–49 = $90, 50+ = $80 → regular price $100, minimum 10, tiers 20 = $90 and 50 = $80.
Mix & match (variable products): let the minimum apply to the sum of all variations in the cart — per product in Additional options, or globally in Settings → Calculations.
Variable products
- Each variation has its own tiered pricing rows and minimum.
- Rules on the parent (Tiered Pricing tab) are inherited by variations without their own rules.
- Default variation — its table is shown before attributes are selected.
- Variations have the same prices — the table never reloads when attributes change (requires a default variation).
Per-product display options
Additional options in the Tiered Pricing tab: a layout for this product only and a unit label (“bottle / bottles”) next to quantities. Empty = global settings.
Role-based pricing
Role & Customer Pricing tab → pick a role → Setup for role. A role rule can set:
- a base price: flat regular/sale prices, or a percentage discount from the sale/regular price (empty = keep the product price);
- minimum / maximum / step;
- tiered pricing rules;
- tax status and class.

A role rule replaces the product’s pricing for customers with that role (first matching role wins). Also available on variations and in global rules; exportable via CSV — see Import and export.
Customer-specific pricing
Same tab, same fields, for one customer: search the customer → Setup for customer. A customer rule beats the role rule — ideal for negotiated prices.
Global pricing rules
WooCommerce → Pricing Rules → Add new applies one pricing to many products at once.

| Tab | What you set |
|---|---|
| Pricing | Base price override (flat or %), tiers, and the calculation type: Individual (each product on its own) or Mix and Match (quantities of all covered products added up) |
| Products | Categories, tags, brands, products — plus exclusions. Empty = all products |
| Users & Roles | Roles / customers to include or exclude. Empty = everyone |
| Quantity limits | Min, max, step, mix & match minimum |
| Tax | Tax status / class for matching products |
| Priority settings | How the rule interacts with product-level rules (see below) |
- One global rule per product and customer — the newest matching rule wins; keep rules specific.
- Rules can be suspended, reactivated and duplicated from the list.
- A rule without tiers is fine (e.g. a flat role discount or a minimum for a category).
Which rule wins?
- 1Product rules
The tiers, base price and limits entered on the product or variation (variations inherit the parent’s rules). - 2Role rule replaces the product rules for customers with that role
- 3Customer rule replaces both for that specific customer
- 4Global rule is applied on top according to its Priority settings: Prefer product rules (only used when the product has no rules of its own), Override (always wins), Flexible (decide separately for tiers, base price and quantity limits) or Default, which follows the Global rules override product rules option in Settings → Calculations.
Tip
Unsure what applied? Debug mode (Settings → Modules) prints the source of the pricing under the table and in the cart — see Tools and maintenance.
Product page
Configured under WooCommerce → Settings → Tiered Pricing → General; every element can be switched off.

Layouts
Default layout in Settings → General → Layout, override per product. All layouts highlight the active tier and can be clickable.
| Layout | Best for | Styles |
|---|---|---|
| Table | Quantity / discount / price, extra columns | Default + 4 |
| Blocks | Compact cards, 3–6 tiers | Default + 6 |
| Options | Radio list, optional totals | Default + 4 |
| Dropdown | Many tiers, little space | — |
| Horizontal table | Tiers as columns | — |
| Plain text | One templated sentence per tier | — |
| Tooltip | Table on hover next to the price | — |







Settings shared by all layouts
- Position — above/below Add to cart, above/below the add-to-cart form, before/after the summary, or “I display the table via shortcode / block / Elementor”.
- Title, active tier colour, quantity display (Range “10 – 19” or Static “10”), clickable tiers, compact layout.
- Unit label — singular/plural noun next to quantities (table and blocks separately; per product override).
- Column titles (table) — rename or hide Quantity, Discount, Price.
20+ bottles
20 bottles
Table columns and custom columns
Settings → General → Table columns adds columns to the table layouts:
- Custom data (price / number / text) — one input per tier in the product editor, role rules and global rules.
- Dynamic — Price excl. taxes, Price incl. taxes, Total row price, Saving per item.

Layout-specific options
- Blocks — show/hide the discount label.
- Options / dropdown — crossed-out regular price, per-tier total, default “Buy 1 – 9” option, option text with
{tp_quantity},{tp_discount},{tp_rounded_discount},{tp_base_unit_name}. - Plain text — sentence template (also
{tp_price}), first tier on/off. - Tooltip — icon colour, size, border.
Total:
Crossed-out regular price, per-tier total and the editable option text.
The percentage discount label can be switched off.
Tier labels
Design labels (“Most popular”, “Best value”) in Settings → Tier Labels, assign them to tiers in products, role rules or global rules. Shown in every layout.

Totals
Quantity × price summary that updates live. Position, style (table, detailed, inline), title, Total / Each labels, and whether to show it on products without tiers.
You save
Badge next to the price. Template with {tp_ys_price} (per unit), {tp_ys_total_price}, {tp_ys_percentage_discount}; colour; count the sale price as a saving; show on products without tiers.
Dynamic price
Settings → General → Product page price: same as catalog, or dynamic — the current tier’s unit price (optionally with the crossed-out regular price, or the total instead of the unit price).

Request a quote
Settings → Request a Quote: build forms (text, e-mail, phone, number, textarea, select, radio, checkbox, date, file, headings) and choose where they appear:
- Integrated — an extra row/option at the end of the layout, optionally auto-opening above a quantity.
- Next to Add to cart — a button beside or instead of Add to cart (also for non-purchasable products).
Attach a form per product, role rule or global rule. Requests land in WooCommerce → Quote Requests (unread / read / converted / rejected) with one-click convert to order; admin and customer e-mails are WooCommerce e-mails; reCAPTCHA v3 supported.

Catalog and shop pages
Catalog prices
Settings → General → Catalog prices: lowest price with a prefix (“From $19.80”), price range (“$75.00 – $90.00”) or a custom template ({tp_lowest_price}, {tp_prices_range}, {tp_original_price}); optionally for variable products.

Pricing tiers in the product loop
Settings → Catalog loop: a reduced layout in every product card (after the title or after the price), with its own layout/title/colours, a live card price and an optional quantity field.

Cart and checkout
Tiered prices in the cart
The cart charges the tier price for the quantity in the cart. Settings → General → Cart: show the unit price and subtotal as a discount (regular price crossed out) and count the sale price as part of the discount.
- Summarize variations (Settings → Calculations) — variations of one product are counted together.
- Round prices — off for exact fractions.
- Mix and Match global rules add up every covered product.
Cart upsells
“Buy 20 more to get $80.00 each” under the cart item. Settings → General → Cart upsells: colour and template with {tp_required_quantity}, {tp_next_price}, {tp_next_discount}, {tp_actual_discount}.
Coupons
Tick Disable tiered pricing on a coupon → covered products are charged the regular price while it is applied.
Guests (non-logged-in visitors)
Settings → General → Non-logged-in users: hide prices (custom message) and/or prevent purchasing (relabelled button + notice).
Orders
Manually created orders
Admin orders skip the cart — click Re-calculate with tiered pricing on the order screen to price every line by the customer’s rules (an order note is added).

Import and export
WooCommerce CSV importer and exporter
Products → Export / Import handle tiered pricing; columns map automatically (group Tiered Pricing):
| Column | Format | Example |
|---|---|---|
| Tiered pricing type | fixed / percentage | fixed |
| Fixed pricing rules | quantity:price,… | 10:90,20:80 |
| Percentage pricing rules | quantity:discount,… | 10:10,20:20 |
| Minimum order quantity | number | 5 |
Role-based pricing gets one column set per role.

WP All Import
A Tiered Pricing Table section appears in product/variation import templates: fixed / percentage tiers (10:5,20:15), pricing type, minimum quantity, and per-role pricing (tick the roles). Honours WP All Import’s update options.
Taxes
- Per rule — role rules and global rules have a Tax section: tax status (taxable / shipping only / none) and tax class.
- Per role — WooCommerce → Settings → Tax → Role-based tax settings: tax-exempt, tax class, prices incl./excl. tax in shop and cart, entered prices incl. tax, price suffix (e.g. net prices for wholesalers).
Integrations
Toggles under Settings → Integrations:
| Category | Plugins | Effect |
|---|---|---|
| Product add-ons | WooCommerce Product Add-ons, Acowebs WCPA, Advanced Product Fields (StudioWombat) | Add-on costs on top of tier prices |
| Currency switchers | FOX (WOOCS), WP Experts (WCCS), CURCY, Aelia, WPML Multi-currency, YITH Multi Currency, WooPayments | Tier prices converted |
| Product types | WooCommerce Subscriptions (+ All Products for Subscriptions), Product Bundles, WPC Bundles, Mix & Match, Deposits | Correct prices for plans, bundles, deposits |
| SEO | Yoast, Rank Math, SEOPress | lowest price / price range variables, offer per tier in structured data |
| Translation | WPML, Polylang | Pricing copied to translations; global rules match translated terms |
| Other | Elementor (widget), WP All Import, YITH / Addify Request a Quote, Discount Rules for WooCommerce | Widget, import add-on, correct quote prices, free-gift compatibility |
| Themes | Avada, Astra, Divi, Flatsome, Shopkeeper, The Retailer, Merchandiser, Zakra, OceanWP | Styling fixes |
Shortcodes, blocks and page builders
Set the position to “I display the table via shortcode / block / Elementor”, then:
| Method | How |
|---|---|
| Shortcode | [tiered-pricing-table] (current product) or [tiered-pricing-table product_id="123"]; attributes override settings: display_type="blocks", title="…", active_tier_color="#96598a", show_discount_column="no", quantity_type="static" |
| You save | [tiered_price_you_save] next to your own price output |
| Block | Tiered Pricing block (WooCommerce category) in a single-product template |
| Elementor | Tiered Pricing Table widget in a single-product template |
Tools and maintenance
Modules
Settings → Modules switches every feature on/off — disable what you don’t use.
Cache
Catalog prices are cached for speed and refresh on product save. After bulk changes click Purge cache (Settings → Modules), or disable caching while setting up.
Debug mode
Settings → Modules → Debug: shows the pricing source, tiers, limits and a change log under the table and each cart item. Visible to everyone — turn it off when done.
Tools
Settings → Tools: Roles management (create/edit/delete customer roles), Data clean-up (remove tiered pricing data by scope), Reset settings, Delete all global rules.
Troubleshooting
- No table on the product page — Settings → General → Layout: display on, position not “via shortcode…”; the product needs a tier ≥ 2; Modules → Tiered pricing enabled.
- Price doesn’t change with quantity — enable Dynamic price; themes with custom quantity fields need a one-line override (see Developer Docs).
- Quantity 1 isn’t discounted — by design; lower the regular price or use a role/global base price.
- Cart shows another tier — the cart counts the cart quantity (+ variations with Summarize variations, + other products for Mix and Match rules); check coupons.
- Wrong prices for a customer — Debug mode; check roles, customer rules, newest matching global rule.
- Stale catalog prices — purge the plugin cache and your page cache.
- Contact us or read the Guides.