Wholesale & B2BB2B / Wholesale9 min read

Wholesale & B2B Tiered Pricing With a Cost Floor

Designing segment-restricted quantity tiers for approved B2B accounts on Shopify, priced from cost

A quantity-break staircase with a unit price bracket on every treadVolume brackets above a cost floor$9.40per unit10+$8.60per unit50+$7.90per unit100+$7.20per unit250+

Approved B2B accounts can get automatic quantity tiers without codes through one Wholesale / B2B Pricing campaign restricted to a Shopify segment. Tiers based on profit margin keep each price at or above cost plus a minimum profit (a markup on cost) for variants with a Shopify cost. It does not use Shopify B2B companies, run several price lists on the same products, or enforce minimum order quantities.

At a glance

Challenge
B2B buyers expect volume pricing, but shared discount codes reach retail shoppers and hand-built quotes leave some accounts below an acceptable margin.
Approach
One Wholesale / B2B Pricing campaign restricted to a Shopify segment of approved accounts, quantity tiers based on profit margin, and a cost plus minimum profit floor.
Discount Prime campaign types used
Wholesale / B2B PricingFree Shipping

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

If approved business customers should get volume pricing automatically, without codes and without retail shoppers getting it, use one Wholesale / B2B Pricing campaign restricted to a Shopify customer segment of approved accounts, with quantity tiers and a cost-based floor. Price the tiers from cost, not from a flat "30% off", and check what each tier leaves you per unit.

Be clear about what this setup is not: it is not a set of different price lists per customer group on the same products, it does not use Shopify's B2B companies, and it does not enforce a minimum order quantity. Those limits are covered below so you can decide before you build.

Scenario

A fictional Shopify merchant sells food packaging and restaurant supplies (cups, lids, containers, cleaning products) to three kinds of buyers:

BuyerBehavior
Retail customersSmall, occasional orders at store prices
Small businesses (cafés, restaurants)Monthly orders, want predictable pricing
DistributorsLarge repeat orders, often negotiated

Today the team sends discount codes and hand-builds quotes. Codes get shared, some accounts end up below an acceptable margin, and nobody can say what the pricing policy is.

Data you need

DataWhy
Shopify "Cost per item" for every variant in scopeThe floor and margin-based tiers are computed from it
Typical order quantities per product for business buyersTier thresholds should sit where real orders cluster
Which customers are approved for wholesale, and how you mark them (for example a customer tag)Becomes the Shopify segment the campaign targets
Your minimum acceptable profit per unitBecomes the floor

Native Shopify, Discount Prime, and What Each Covers

NeedNative ShopifyDiscount Prime
Company accounts, catalogs and price lists per companyShopify's B2B features, depending on your Shopify planNot supported. Discount Prime does not read Shopify B2B companies or company locations
Automatic volume tiers for a group of approved customersAutomatic discounts with limited tiering; codesWholesale / B2B Pricing: quantity or spend tiers, restricted by customer eligibility
Price never below cost plus a minimum profitNot built inFloor = cost + minimum profit when tiers are based on profit margin
Block orders below a minimum quantityNot built into discountsNot enforced. Tiers only decide when a price applies. A separate MOQ tool such as Prime MOQ is needed to block checkout

If you need per-company negotiated price lists and your Shopify plan includes B2B, native Shopify B2B is the better fit for that part. Discount Prime fits when "wholesale" means a group of approved customer accounts on a regular store.

Options Compared

OptionFits whenDoes not fit whenCost behavior
Discount codesOne-off deals, few accountsCodes must not travel; many accountsWhoever has the code gets it
Flat Product DiscountShort sale for everyonePrices must differ for business buyersSame cut for every customer and quantity
One flat wholesale percentageVery uniform catalog marginsMargins vary by product; low-margin items end up below targetHigh-margin items subsidize low-margin ones
Tiered Spend Discount (order level)Storewide order-size rewardYou want it for wholesale accounts only: it is not limited to a customer groupApplies to every qualifying order
Wholesale / B2B Pricing, segment-restricted, margin-based tiers with a floorApproved accounts, cost data availableYou need different price lists per account on the same productsPer-unit price per tier, never below the floor when cost exists
SettingValue
Campaign typeWholesale / B2B Pricing (Prime plan)
Customer eligibilitySpecific customer segments: a Shopify segment such as "customer tag is wholesale"
Only show to eligible customersOn (guests and other customers see store prices and no wholesale widgets)
Based onProfit margin
Tier thresholdQuantity, counted per item
Tier valuesFixed amount off per unit (see example)
Prevent final price from going below costOn, keep minimum profit 20% of cost
If a variant has no costSkip this variant

Why a segment and not a tag field: the campaign's eligibility options are all customers, Shopify segments, specific customers, and customers matching purchase-history conditions. Tag your approved accounts in Shopify and build a segment on that tag. Segment membership is synced to Discount Prime automatically, typically within minutes, and restricted campaigns require the customer to be logged in at checkout.

One price campaign per product

A product variant can be held by only one price campaign at a time. If you create a second Wholesale campaign for distributors on the same products, it will not get the variants the first campaign already holds unless you move them. So "Tier 2 small business, Tier 3 professional, Tier 4 partner" cannot be four simultaneous price lists on the same catalog. In this scenario the tiers are by quantity inside one campaign, which every approved account sees. Distributors with negotiated contracts stay on quotes or native Shopify B2B.

Worked Example: Pricing the Tiers From Cost

Illustrative assumptions: a case of 16 oz cups (one variant) sells for $10.40. Cost per item is $6.00. Minimum profit is 20% of cost, so the floor is $6.00 + $1.20 = $7.20.

QuantityFixed off per unitUnit priceGross profit per unitGross marginMarkup on cost
1 to 9 (store price)none$10.40$4.4042.3%73.3%
10+$1.00$9.40$3.4036.2%56.7%
50+$1.80$8.60$2.6030.2%43.3%
100+$2.50$7.90$1.9024.1%31.7%
250+$3.20$7.20$1.2016.7%20.0%

Two points to notice:

  1. The floor is a markup, not a margin. "Cost + 20%" means a 20% markup, which is a 16.7% gross margin. If your policy is stated as a margin ("never below 20% margin"), convert it: the floor would be $6.00 / 0.80 = $7.50, so you would set the minimum profit to 25% of cost, not 20%.
  2. Gross profit here is price minus product cost only. Freight-in, payment fees, pallets and delivery are excluded. If your cost per item does not include them, either add them to the cost or raise the minimum profit to cover them. The floor is only as good as the cost data.

With margin-based tiers, a fixed amount off is capped at the product's margin, and the floor is applied after. With auto-update on, the tier prices are recalculated when a price or cost changes in Shopify; otherwise review the campaign's prices after cost changes.

To adapt: start from your floor, set the deepest tier at or above it, and space the other tiers where your buyers' order quantities actually cluster.

Check the threshold step

At these prices, 50 cases ($430.00) cost less in total than 49 cases ($460.60). That is normal in wholesale and often intended, but it means a buyer just below a threshold can take more product for less revenue. If you do not want that, set each tier so that the price at the threshold times its quantity is not below the previous tier's total one unit earlier. The wholesale progress bar case study works through this in detail.

What the Customer Sees

The wholesale price is applied as an automatic discount in the cart and at checkout. The product's own price in Shopify does not change.

VisitorProduct pageCart and checkout
Guest or retail customerStore price, no wholesale widgetsStore price
Approved account, logged in, 40 casesStore price; the quantity table shows the tiers$9.40 per case
Approved account, logged in, 120 casesSame$7.90 per case
Approved account, not logged inStore priceStore price

How the discounted price is displayed in the cart depends on your theme. Check it before launch.

Supporting Campaign: Free Shipping for Approved Accounts

A Free Shipping campaign can be restricted to the same segment. Keep in mind that it discounts only the first delivery group of an order, and that shipping campaigns have no cost floor, so check shipping cost against the order's gross profit for your typical wholesale order.

Limits and Edge Cases

  • Missing cost: with "Skip this variant", products without a cost get no wholesale price. With "Apply discount on selling price instead", they get the tier discount with no floor. Fill in costs before launch.
  • Per-item vs all items: per item counts each product's own quantity. Counting all items together lets mixed carts reach a tier, but a fixed amount off then becomes one lump off the combined order, split across lines, rather than a per-unit price.
  • Currency: storefront widgets do not convert currency. If you sell in several currencies, test the table and any messages in a non-base currency.
  • Codes: Wholesale can also be delivered by a discount code, but then whoever holds the code can use it; customer eligibility is the safer gate for standing prices.

Pre-Launch Tests

Test inputExpected result
Guest, 40 casesStore price, no wholesale table
Approved account logged in, 9, 10 and 250 cases$10.40, $9.40, $7.20 per case
Approved account, a product with no costSkipped (store price)
A product whose cost is raised in Shopify (auto-update on)Tier prices recalculated, still at or above the floor
Customer added to the segment in ShopifyGets wholesale prices after the sync
A second price campaign on the same productsConflict shown; the first campaign keeps the variants

Measurement

  • Primary: gross profit per wholesale order and per account over a quarter, by tier reached.
  • Guardrails: share of units sold at the deepest tier, units sold below your target margin (should be none where cost exists), and retail orders that received wholesale prices (should be none).
  • Operational: quote and code requests handled by the sales team.
  • Baseline: the same accounts' orders and margins in the period before launch. Season and account mix change wholesale volume, so compare per account, not store totals.
  • Decide: if most volume lands at the deepest tier and gross profit per account falls, raise that tier's threshold or price. If no one reaches a tier, the threshold is above real order sizes.

Frequently asked questions

How do I give wholesale customers automatic pricing on Shopify without discount codes?

Tag approved accounts in Shopify, build a customer segment on that tag, and restrict a Wholesale / B2B Pricing campaign in Discount Prime to that segment. Logged-in members get the tier price as an automatic discount in the cart and at checkout; guests and other customers pay store prices. The product's own price in Shopify does not change, so check how your theme shows the discounted price in the cart.

Does Discount Prime work with Shopify B2B companies and catalogs?

No. Discount Prime does not read Shopify B2B companies or company locations. In Discount Prime, wholesale means customer segments, specific customers, logged-in customers or purchase-history conditions on a regular store. If you need negotiated price lists per company and your Shopify plan includes B2B, use Shopify's native B2B for that part.

Can I give small businesses and distributors different wholesale prices on the same products?

Not with two simultaneous price campaigns. In Discount Prime a product variant is held by one price campaign at a time, so a second wholesale campaign on the same products does not get variants the first one already holds unless you move them. Use quantity or spend tiers inside one campaign that all approved accounts see, and handle negotiated contracts with quotes or native Shopify B2B.

Is cost plus 20% the same as a 20% margin?

No. Cost plus 20% is a 20% markup, which is a 16.7% gross margin. With a $6.00 cost, a 20% markup floor is $7.20, while a 20% margin floor is $7.50. Discount Prime's wholesale floor is cost plus a minimum profit (a percentage of cost or a fixed amount), so convert your margin policy into a markup before you enter it.

What happens if a product has no cost when I use a wholesale profit floor?

It depends on the campaign's missing-cost rule. With "Skip this variant" the product gets no wholesale price. With "Apply discount on selling price instead" it gets the tier discount with no cost floor. The floor is computed from Shopify's Cost per item, so fill costs in, and include freight or fees in the cost if your floor should cover them.

Can Discount Prime enforce a minimum order quantity for wholesale buyers?

No. Wholesale tiers only decide when a tier price applies; an order below the first tier simply pays store prices. Blocking checkout below a minimum quantity needs a separate MOQ tool.

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