B2B DistributionB2B / Wholesale8 min read

Wholesale Progress Bars: Showing B2B Buyers the Next Price

Making wholesale quantity tiers visible with a discount progress bar, and checking which buyers it is worth moving to the next tier.

A wholesale product page progress bar one case away from unlocking the next tier priceThe next price, made visibleCommercial degreaser, case of 12In cart: 24 casesAdd 1 more case to unlock the next priceExample: 24 to 25-$193order totalwhole line repricesCheck margin10+ cases $106.8025+ cases $94.8050+ cases $86.40

A discount progress bar makes the next wholesale tier visible to approved accounts. When the whole line reprices at a tier, moving a buyer from just below a threshold can lower revenue and gross profit, so model gross profit by starting quantity first. In this example, moving buyers to 25 cases adds gross profit only from 18 cases or fewer.

At a glance

Challenge
Wholesale orders cluster just below quantity thresholds, and nothing on the product page shows buyers how close the next tier price is.
Approach
Quantity tiers in one segment-restricted Wholesale / B2B Pricing campaign, the discount progress bar and quantity table for approved accounts, and a gross profit check per starting quantity.
Discount Prime campaign types used
Wholesale / B2B PricingDiscount Progress Bar

Scenario-based case study: the merchant is fictional and modeled on patterns across Discount Prime stores. Prices, costs and outcome figures are illustrative assumptions for teaching, not measured results from a real store.

Short Answer

A progress bar that says "add 1 more case to unlock the next price" makes a wholesale tier visible at the moment the buyer chooses a quantity. Before you turn it on, check one thing: in tiered pricing where the whole line reprices at the new tier, pushing a buyer from just below a threshold to the threshold can lower your revenue and gross profit on that order. The bar is worth it when the buyers it moves are far enough below the threshold that the extra units pay for the lower price, or when larger, less frequent orders save you real per-order costs.

Recommendation for this scenario: keep the tiers in one Wholesale / B2B Pricing campaign, show the progress bar and quantity table only to approved accounts, and model gross profit for buyers at each starting quantity before launch.

Scenario

Metro Industrial Supply is a fictional Shopify distributor of cleaning and maintenance consumables. Buyers are approved business accounts who log in and reorder in cases. Suppose Metro's order data shows quantities clustering just below its tier thresholds (9, 24 and 49 cases), and the product page says nothing about the next price.

The hypothesis: some buyers stop below a threshold because they do not know it is there. A visible next price might move them up. Whether that helps Metro depends on the arithmetic below.

Data you need

DataWhy
Price and cost per case (Shopify "Cost per item")Gross profit at each tier and the cost floor
Distribution of order quantities per productHow many orders sit in the zone the bar will target
Fulfillment cost per orderFewer, larger orders can save this
Who is an approved account (a Shopify segment)Who should see tier prices and the bar

The Tiers

Metro sells a commercial degreaser in cases of 12. The Shopify variant is the case.

Illustrative assumptions: cost $60.00 per case. Floor: cost plus a minimum profit of 20% of cost, so $72.00 per case.

Cases per linePrice per casePer unit (12)Fixed off per caseGross profit per case
1 to 9$122.40$10.20none$62.40
10 to 24$106.80$8.90$15.60$46.80
25 to 49$94.80$7.90$27.60$34.80
50+$86.40$7.20$36.00$26.40

Gross profit here is price minus product cost only; it excludes shipping, payment fees and overheads.

Worked Example: Who Should the Bar Move?

When a line reaches 25 cases, every case on the line is priced at $94.80. Compare a buyer's order at their starting quantity with the same buyer moving to 25 cases:

Starting quantityRevenue thenRevenue at 25Gross profit thenGross profit at 25Change in gross profit
15 cases$1,602.00$2,370.00$702.00$870.00+$168.00
18 cases$1,922.40$2,370.00$842.40$870.00+$27.60
20 cases$2,136.00$2,370.00$936.00$870.00-$66.00
24 cases$2,563.20$2,370.00$1,123.20$870.00-$253.20

With these prices, moving a buyer to 25 cases earns more gross profit only if they started at 18 cases or fewer (break-even is 870 / 46.80, about 18.6 cases). A buyer at 24 cases who adds one case pays $193.20 less in total, and Metro ships one more case for $253.20 less gross profit.

The same happens at the other thresholds: 10 cases ($1,068.00) cost less than 9 ($1,101.60), and 50 cases ($4,320.00) cost less than 49 ($4,645.20). This is a general rule: when a tier lowers the price by more than 1/N at a threshold of N units (10% at 10, 4% at 25, 2% at 50), the order at the threshold costs less than the order one unit below.

What this means for the decision:

  • If buyers near 24 cases would have ordered 24 anyway, the bar mostly costs margin.
  • It can still be right if it changes behavior you value: buyers consolidating two small orders into one (saving a fulfillment cost per order), or buyers at 10 to 18 cases moving up.
  • If you do not want to reward the last case so heavily, make the step at that threshold shallower and rerun the table. Changing tier prices is a pricing decision; the bar only makes whichever tiers you choose visible.

To adapt: put your own price, cost and tier prices into the table, and weight each row by how many of your orders actually start there.

Options Compared

OptionFits whenDoes not fit when
No visible tiers (status quo)Most buyers already order at or above thresholdsBuyers routinely miss tiers they would value
Static tier table on the product pageBuyers plan quantities in advanceBuyers decide in the cart
Sales reps explain tiersFew large accountsMany accounts ordering online
Deeper tier discountsTiers are too shallow to matterThe problem is visibility; deeper tiers raise the cost of every order at the tier
Progress bar plus quantity tableBuyers decide quantity online and the gross profit table supports moving themMost buyers near the threshold would move from the loss rows above

Setup in Discount Prime

SettingValue
Campaign typeWholesale / B2B Pricing (Prime plan)
Customer eligibilitySpecific customer segments: approved wholesale accounts
Only show to eligible customersOn
Based onProfit margin
Tier thresholdQuantity, applies to each item
Tier valuesFixed amount off per case: $15.60 at 10, $27.60 at 25, $36.00 at 50
Prevent final price from going below costOn, minimum profit 20% of cost
Discount progress barOn, product page and cart, with your own messages
Quantity tableOn, so buyers see all tiers and can tap one to set the quantity

Why Wholesale / B2B Pricing and not a separate Tiered Unit Pricing campaign: the discount progress bar is shown only for Wholesale / B2B Pricing tiers, and a product variant can be held by only one price campaign at a time, so the two cannot both price the same product.

Why per item: each product line reaches its own tier. If you count all items together, a mixed cart reaches tiers on combined quantity, but a fixed amount off then becomes one lump off the combined order rather than a per-case price.

What the Buyer Sees

  • Product page: the bar uses the quantity of the selected variant that is already in the cart, not the number typed in the quantity selector. It appears for quantity-based tiers. Messages are templates you write, filled with the remaining quantity and the next tier's reward.
  • Cart: a wholesale goal appears once a line is at least 60% of the way to its next tier (for the 25-case tier, from 15 cases). If a free shipping goal is also active, both are merged into one bar, with the closest goal shown large.
  • Prices: the tier price is applied as an automatic discount in the cart and at checkout. How the discounted line price looks in the cart depends on your theme.
  • Who sees it: with "Only show to eligible customers" on, guests and non-approved customers see store prices and no wholesale widgets. Restricted pricing requires a logged-in customer at checkout.
Cart (approved account)BarPrice per case
8 casesToward 10 cases$122.40
14 casesNo cart bar yet (below 60% of 25)$106.80
24 cases"1 more" toward 25$106.80
25 casesNo cart bar until 30 cases (60% of 50)$94.80

Limits

  • Currency: storefront widgets do not convert currency. In a non-base currency, spend amounts in messages can be wrong. Test before relying on spend-based messages there.
  • Spend-based tiers are measured on cart prices before discounts, matching checkout.
  • No minimum order enforcement: tiers decide prices, not whether an order is allowed.
  • Cost data: the floor uses Shopify's Cost per item. A missing cost follows the campaign's missing-cost rule (skip the variant, or discount the selling price with no floor).

Pre-Launch Tests

Test inputExpected result
Guest on the product pageStore price, no bar, no tier table
Approved account, 9 then 10 cases in cartPrice changes to $106.80 per case on all 10
Approved account, 14 casesNo wholesale goal in the cart bar
Approved account, 24 casesCart bar shows 1 case to the next tier
Free shipping goal active at the same timeOne merged bar
Product page with 0 in cart and quantity selector set to 24Bar counts 0, not 24

Measurement

  • Primary: gross profit per order and per account, not only cases per order.
  • Diagnostic: distribution of order quantities around each threshold before and after launch; share of orders landing exactly at a threshold.
  • Guardrails: share of orders that moved from the loss rows of your table (for example 20 to 24 cases into 25), and order frequency per account (consolidation shows up as fewer, larger orders).
  • Baseline: the same accounts in a comparable prior period. Wholesale demand is seasonal and account-specific, so compare per account. If you can, launch the bar for one product group first and compare with similar products without it; without a comparison group, a before/after change is not proof the bar caused it.
  • Decide: if most moved orders come from just below the threshold and gross profit per account falls, make that tier's step shallower or limit the bar to tiers where moving buyers adds gross profit. If buyers far below the threshold move up and gross profit holds, keep it.

Frequently asked questions

How do I show wholesale customers how close they are to the next pricing tier on Shopify?

In Discount Prime, turn on the discount progress bar for a Wholesale / B2B Pricing campaign, on the product page, the cart or both, and add the quantity table. The bar is shown only for Wholesale / B2B Pricing tiers. With "Only show to eligible customers" on, guests and non-approved customers see store prices and no wholesale widgets.

Can a progress bar to the next tier lose money?

Yes. When a tier reprices the whole line, the order at the threshold can cost less than the order one unit below. With illustrative prices, 24 cases at $106.80 cost $2,563.20 while 25 cases at $94.80 cost $2,370.00, and at a $60 cost per case gross profit falls by $253.20. Moving a buyer up adds gross profit only if they start far enough below the threshold.

How do I check if a wholesale tier creates a price cliff?

A tier that lowers the price by more than 1/N at a threshold of N units makes the order at the threshold cheaper than the order one unit below: more than 10% at 10 units, 4% at 25, 2% at 50. That is common and can be intended, but check it against gross profit, and make the step shallower if you do not want to reward the last unit that heavily.

When does the wholesale progress bar appear in the cart?

In the cart, a wholesale goal appears once a line is at least 60% of the way to its next tier, and it is merged with a free shipping goal into one bar if both are active. On the product page, the bar counts the selected variant's quantity already in the cart, not the number in the quantity selector. Widgets do not convert currency, so test spend messages in non-base currencies.

Can I use Tiered Unit Pricing and a wholesale progress bar on the same products?

Not together. The progress bar shows only for Wholesale / B2B Pricing tiers, and a product variant can be held by only one price campaign at a time. Put the quantity tiers inside the Wholesale / B2B Pricing campaign, for example as a fixed amount off per case at each threshold, with the cost floor turned on.

Go deeper

Run this architecture in your store

Every campaign type in this case study is included in Discount Prime, with profit analytics to verify the margin impact.

More case studies