
A wholesale buyer emails you after placing the same small order for the third time this month. They like the product, they know they'll need more, and they're asking a fair question: why should they pay the same unit price for 25 units that they pay for one? If you can't answer that cleanly, they'll spread orders out or shop elsewhere. Shopify volume pricing gives you that answer, but only if the margin math comes before the tool choice.
Say your buyer orders one case of 10 units at a time and asks why the price doesn't drop when they commit to 25. That's the exact job of volume pricing. Volume pricing means the unit price changes with the quantity bought in one order, for example $40 each for 1 unit and $36 each for 10 units in a hypothetical ladder.
It's not the same as a bulk discount or a discount code. A bulk discount is usually one percentage off once a minimum is reached, with no further steps. A sitewide code ignores quantity entirely, so a buyer ordering one unit gets the same deal as a buyer ordering 50.
Wholesale and B2B buyers work through company accounts. They see company-specific catalogs with native quantity price breaks, so their pricing can differ from your public storefront. Retail shoppers don't have a company account, so they won't see native B2B breaks. If you want retail shoppers to see quantity tiers, you'll need a volume discount app or custom logic.
That split matters more than any feature list. Pick the wrong route and you'll build tiers your actual buyers never see.
Merchants use volume pricing to lift average order value, make reorders simpler, and give repeat buyers a reason to consolidate purchases into fewer, larger orders. It fits case packs, B2B reorders, consumables, and gifting bundles, anywhere buyers already think in multiples.
It fits poorly for one-off, high-ticket items with little reorder behavior. A tier nobody reaches isn't an incentive, it's decoration.
Run this test on your own catalog: do buyers already order in multiples? If most orders are single units of a high-ticket item, tiers will rarely trigger and you're solving a problem you don't have.
Shopify volume pricing options compared
| Option | Who sets it up | What it handles best | Main limit |
|---|---|---|---|
| Native B2B quantity price breaks | Merchant in Shopify admin | Company-specific wholesale tiers, up to 10 breaks per product variant | Company-location catalog assignment needs Shopify Plus |
| Shopify Functions | Developer | Custom discount logic in cart and checkout, such as mixed-variant counting | Needs development and testing on a plan that supports Functions |
| Volume discount apps | Merchant from the App Store | Quick tier rules, product page widgets, retail tiers | Monthly app fee set by each app; check each app's variant support |
| Custom build by a development agency | Agency or in-house developer | Any tier logic, bespoke display across product, cart and checkout | Quoted per project; ongoing maintenance cost |
If you run wholesale with company accounts, start with native quantity price breaks. There's no app fee and the pricing lives in the catalog your buyers already use. If you're a retail store that wants tiers across many products without a developer, start with an app.
If you need mixed-variant pooling, cart-wide tiers across collections, or other custom logic, you need Shopify Functions or a custom build. Don't force native tools or an app to pretend they can do that.
Ask who manages the prices after launch, whether tiers must count quantities across variants, which plan the feature needs, and how much maintenance the rules need over time. Plan matters commercially too. The Shopify Plus plan page lists Shopify Plus at $2,500 per month for a one-year term or $2,300 per month for a three-year term in USD, and notes that advanced catalog assignment to company locations is restricted to Shopify Plus. A wholesale store on a lower plan may need to plan around that limit rather than discover it mid-build.
Practical rule: pick the simplest route that handles your buyer type, then move up only when a real case breaks it.
Example tier ladder with gross margin at $18 unit cost
| Quantity | Discount vs base | Unit price | Gross margin |
|---|---|---|---|
| 1-9 units | 0% | $40.00 | 55.0% |
| 10-24 units | 10% | $36.00 | 50.0% |
| 25-49 units | 20% | $32.00 | 43.8% |
| 50+ units | 30% | $28.00 | 35.7% |
Start from cost and margin, not from the discount you'd like to advertise. In this worked example, the base price is $40 and unit cost is $18, so every tier can be checked before a buyer ever sees it. The discount is the output of that math, not the starting point.
I would set a margin floor first, for example 35%, then work back to the deepest discount you can offer. At $28, the deepest tier above still clears that floor at 35.7%. If your floor were higher, that tier would need a smaller discount or a larger minimum quantity to justify it through picking and shipping efficiency.
This is where wholesale pricing discipline matters beyond Shopify itself. If you're also selling through retail partners, a useful primer on pricing CPG products for retail growth from Reddog Consulting Group covers how wholesale price architecture supports retail expansion. Broader context on how tiering fits your overall approach is covered in this guide to ecommerce pricing strategies.
Keep the ladder to three or four tiers. Make each jump worth chasing, usually 5 to 10 percentage points between steps, so buyers see a clear reason to reach the next break. Small jumps don't change behavior. Huge jumps give away margin you didn't need to spend.
Space the quantities like 10, 25, and 50 units rather than 10, 12, and 15. Round thresholds are easier to explain, easier to stock, and easier for a buyer to plan a reorder around. Odd spacing looks precise but usually reflects internal guesswork.
Decide whether volume prices can combine with a sitewide code, a loyalty discount, or a shipping offer, and write it down before launch. Stacking decided later becomes stacking discovered by a customer.
Close with a simple check: calculate gross margin at every break. If the deepest tier falls below your floor, reduce the depth or raise the threshold. Don't launch and hope volume makes up for it.
The five core steps below give you the shape of the setup before you work through the detail.

Shopify's own catalog example shows purchasing 25 shirts reduces the unit price to $5.00, while purchasing 40 reduces it to $3.50, which are effective discounts of 50% and 65% if the original unit price were $10.00. Volume pricing applies at the item level, script-based discounts can follow it, and an overall catalog adjustment doesn't apply once a volume price is set.
Variant separation is the behavior that catches merchants out. A buyer ordering 20 blue hats qualifies for the blue-variant break, while ordering 20 gray hats separately is required to qualify for the gray-variant break. Colors don't pool toward one threshold.
Sign in on the company account and order exactly the threshold quantity, then one below it. Check the displayed price on the product page, in the cart, and at checkout. All three should match.
That three-page consistency is what separates a working setup from a correct-looking admin screen. For BAGWORKSNY, we built tiered volume pricing that recalculates prices based on purchased quantities and shows the pricing on product, cart and checkout pages. A correct setup means each variant shows the right break at the right quantity, and nothing else overrides it.
This view of volume pricing rules on a store screen is where most merchants realize their case doesn't fit the native model.

Native breaks fail in four predictable cases. You want tiers for anonymous retail shoppers, a buyer should mix colors to reach 10 units, tiers should count quantity across a whole collection, or bundles need to combine tiers with other offers. If any of those describe your store, stop configuring and change route.
With Shopify Functions, a developer writes discount logic that runs during cart and checkout. You get full control over counting rules, pooling, and exclusions. You also take on build, test, and upkeep time every time the rules change.
The short walkthrough below shows how tier logic behaves from the buyer's side before you commit to a build.
Before paying for any app, screen it against these points and compare candidates using this roundup of wholesale Shopify apps:
Apps differ sharply in how they treat mixed-variant orders, so test a mixed cart before paying. If no app passes the checklist and your rules are too specific for off-the-shelf tools, a custom Function or build is the next step. ECORN offers Shopify app development services for stores that reach that point. Base the decision on the failure cases above, not on features you don't need.
The most common complaint is simple: the tier doesn't show at checkout. The likely cause is assignment, not pricing. Check that the buyer is signed in on the company account the catalog is assigned to, and that the catalog covers that product. Test it by signing in as that buyer and adding the threshold quantity yourself.
Reproduce each symptom with its one-line test before changing any rules. Changing settings on a problem you can't reproduce just creates a second problem.
Use this checklist as your final pass before any buyer sees a tier.

Place test orders at 9, 10, 24, 25, 49, and 50 units on each variant, so every boundary is covered on both sides. Check the displayed price on the product page, cart, and checkout for each test, then remove an item and confirm the price recalculates to the current cart quantity.
Test a mixed-variant order using the pooling rule you've chosen, and confirm the invoice total matches the expected unit price with no stacked script discount. If the setup is simple, launch to one company account first. If rules are complicated, scope the fix with a developer, our single-project work on Shopify and Shopify Plus costs $69 per hour with no minimum or maximum project size, and repeat this checklist on the custom logic. Review the ladder again after the first 60 days of real orders.
If your tier ladder is designed but the setup has outgrown native breaks, we can build the Functions, custom pricing display, or app logic to run it across product, cart, and checkout. Tell us your thresholds, margin floor, and pooling rules, and we'll scope the simplest build that handles them. Start that conversation at ECORN.