The requirement: different quantity breaks for every SKU
One offer across the whole store works for a promotion. Catalogs with wholesale-style pricing are different. Margins, pack sizes and buying patterns vary by SKU, so each variant needs its own quantity thresholds and often its own price per item.
That pricing usually lives somewhere already: an ERP, a PIM or the spreadsheet the team imports products from. Typing it into a discount app product by product stops working after a few dozen SKUs.
Five questions to ask before choosing an approach
Rules per variant: can each SKU have its own thresholds and prices, or does every variant of a product share one set?
Fixed unit prices: can you set what the customer pays per item at each quantity, not only a percentage off?
Bulk updates: can prices change in the same import as the rest of the product data?
Discount limits: Shopify allows a maximum of 25 active automatic discounts, including app discounts. One discount per SKU uses that up quickly.
Clear prices: does the product page show the tiers, and do the cart and checkout charge the same price?
Do you need Shopify Plus for quantity breaks?
Not for this. A custom app with its own Shopify Function needs Shopify Plus. Public apps from the Shopify App Store that use Functions for discounts run on any plan. One Stop Volume Discounts is one of them and works on any Shopify plan with an online store.
How a metafield-driven setup works
The tiers live in a JSON metafield, custom.volume_discounts, on the product, on each variant, or both. A variant’s own tiers win over its product’s.
One deal reads the tiers for every product that carries the metafield, or only for products in chosen collections. Shopify sees one automatic discount, not one per SKU.
Each value can be a percentage off, an amount off each item, or a target price per item. With a target price, the app discounts the line by the difference from the current price, so the customer pays the price in the metafield.
| Quantity | Price per item | In the metafield |
|---|---|---|
| 1 to 2 | £54 | {"min_qty": 1, "price": 54} |
| 3 to 4 | £50 | {"min_qty": 3, "price": 50} |
| 5 or more | £48 | {"min_qty": 5, "price": 48} |
Migrating tier prices from Magento, BigCommerce or WooCommerce
When a catalog moves to Shopify, the tier prices are usually in the old platform’s data, not in Shopify’s product CSV. Each platform stores them differently.
Magento and Adobe Commerce: the Advanced Pricing export has one row per tier, with sku, tier_price_website, tier_price_customer_group, tier_price_qty, tier_price and tier_price_value_type. Fixed tiers become a target price per item, and discount tiers a percentage off. Tiers for all customer groups fit a metafield-driven deal. Tiers for one customer group belong in a Shopify B2B catalog.
BigCommerce: bulk pricing rules are set per product, as an amount off (price), a percentage (percent) or a fixed price (fixed). They map to amount off each item, percentage off and target price per item. BigCommerce counts different variants of a product together toward a break, so test that case if customers buy mixed variants.
WooCommerce: core WooCommerce has no tier prices, so they come from a plugin, and each plugin stores them its own way. Export them from the plugin before the old store closes.
In each case the rows for one SKU become one JSON array in custom.volume_discounts, imported with the rest of the product data.
Bulk update tier prices through your product import (CSV, Matrixify)
Step 1: define the variant metafield custom.volume_discounts with type JSON.
Step 2: write each variant’s tiers in your import, for example with Matrixify or from your PIM.
Step 3: in the app, create a Price list deal, set the field names (min_qty and price) and choose the Discount type “Target price per item”.
Step 4: import a few variants with different price structures and check the product page, cart and checkout.
Step 5: import the rest of the catalog. Later price changes go through the same import.
What customers see
The product page shows each tier with its price per item, as tiers to pick from or as a price table.
In the cart and at checkout, Shopify applies the price as a discount on the line: the regular price, then the discount. Discounts from apps built on Shopify Functions work this way.
How Inspira Digital scoped it
Inspira Digital, a UK Shopify Partner that migrates stores to Shopify and optimizes them, brought this requirement to us for a client project: quantity breaks per variant, fixed unit prices, and a large catalog kept up to date through the product import.
They shared example price structures, and we added variant-level metafields and target prices per item to the app with their input. Their article covers the requirements and the approach from the agency side.
Limits
Target prices and amounts are in the store’s default currency. Customers paying in another currency through Shopify Markets get the converted amount at the market’s rate.
One metafield-driven deal is active at a time. It covers every product or variant that carries the metafield.
A tier whose target price is at or above the current price gives no discount.
There are no customer-specific price lists. For those, use Shopify’s own B2B features. Shopify’s own quantity price breaks are per variant on every plan, but only for B2B customers who order through a company account.
Metafield-driven tiers are part of the Professional plan ($24.99 per month at any order volume).
Questions
How do I set different volume discounts for each variant on Shopify?
Store each variant’s tiers in a variant metafield and let one deal read them. With One Stop Volume Discounts the metafield is custom.volume_discounts; a variant’s own tiers win over its product’s, so every SKU can have its own thresholds.
Can Shopify charge a fixed price per unit at each quantity tier?
Yes, through an app. Set the tier as a target price per item, for example £54 each from 1 and £50 each from 3. Shopify applies it as a discount on the line, so the cart shows the regular price and the discount.
How do I import quantity breaks for thousands of SKUs?
Keep the tiers in a metafield and write them with the rest of your product data, for example with Matrixify or from a PIM. The deal reads the metafield, so a price change is an import, not a change in the app.
Do I need Shopify Plus for per-variant tiered pricing?
No. Custom apps with their own Shopify Functions need Plus, but public App Store apps that use Functions for discounts run on any plan. One Stop Volume Discounts works on any Shopify plan with an online store.
Can Shopify do quantity breaks without an app?
Only for B2B. Shopify’s own quantity price breaks are set per variant in a B2B catalog and apply to customers who order through a company account. For retail customers, a native automatic discount has one minimum quantity, so each tier is a separate discount counted toward the limit of 25.
How do I move Magento tier prices to Shopify?
Export Advanced Pricing from Magento, group the rows by SKU, and write each SKU’s tiers as a JSON array in a variant metafield with your product import. A metafield-driven deal in One Stop Volume Discounts reads them. Tiers for one customer group belong in a Shopify B2B catalog instead.
Does each SKU need its own automatic discount?
Not with a metafield-driven deal. Shopify allows a maximum of 25 active automatic discounts, so one per SKU does not scale. One deal reads every SKU’s tiers and counts as one automatic discount.
What should an agency check before recommending a volume discount app for a client migration?
Test a few real SKUs: per-variant rules, fixed unit prices if the client needs them, how prices are updated in bulk, how many automatic discounts the app uses, and what the product page, cart and checkout show.