B2B Guide

Shopify Wholesale Pricing: How to Set, Build and Enforce B2B Prices That Hold Margin

A pricing-first guide to wholesale on Shopify — choose a model, prove the margin math, configure the Shopify surface that enforces it, and protect retail price with MAP and gated catalogs.

June 15, 2026·20 min read·
Listen to a short brief of this article
Hands-free while you multitask

Key Insights in 60 Seconds

Wholesale pricing on Shopify is a stack of decisions: a model, a margin floor, a Shopify surface to enforce it, and a policy to protect retail. Skim the highlights, then jump to the section you need.

Pick the model before the number. Flat %, tiered, keystone, cost-plus and contract each enforce different behavior.
50% off a $40 SKU rarely clears $5 net margin after COGS, fulfilment, fees and channel cost.
Plus B2B catalogs price per company with fixed prices or percentage off retail.
Quantity rules are part of the price — min, max and increment turn unit pricing into case-pack economics.
MAP is a policy, not a contract. Agreeing resale price with a retailer is illegal price-fixing.
Net 30 is a 0.8% silent discount at 10% cost of capital — price it in.
Non-Plus stores price wholesale via apps or tag gating, but checkout integration is shallower.
Biggest leak: showing both prices to anon visitors. Gate wholesale behind login.

What You'll Learn

1Pick the right model
2Model net margin honestly
3Match models to Shopify surfaces
4Set MOQ and case packs
5Protect retail with MAP/MSRP
6Price in net terms

Decide Your Pricing Model Before You Touch Shopify

Most merchants open the Shopify admin, look at the catalog screen, and ask “what number do I put here?” That's the wrong order. Wholesale pricing only works if you first decide how the price varies — by buyer, by quantity, by contract, by region — and then choose the model that matches. The model in turn dictates whether a B2B catalog, a quantity rule, a draft order, a Shopify Function or a third-party app does the work.

The decision below maps the three patterns we see most often. Most brands pick one as the default and use the others as exceptions for key accounts.

Which Wholesale Pricing Model Fits You?
One published list
  • 5–20 small wholesale accounts
  • Same product range for everyone
  • You want minimal admin overhead
  • Use flat % off or keystone, gated by login
Tiered volume
  • Mixed buyer sizes (boutique + chain)
  • You want to reward bigger orders
  • Case-pack economics are real
  • Best on Plus B2B volume pricing
Contract per account
  • Few accounts, big revenue each
  • Negotiated price lists and terms
  • Distributors, private label, key accounts
  • Per-company catalogs on Plus, or draft orders

Wholesale Pricing Models That Actually Work on Shopify

The six models below aren't mutually exclusive. A typical B2B merchant on Plus runs flat % as the default catalog, layers tiered volume on the top 20 SKUs, and uses contract pricing for a handful of distributors. The point is to pick a primary so every other decision — MOQ, terms, gating — has a clear default.

Flat % off retail
SIMPLEST, WEAKEST CONTROL
One discount (e.g. 40% off MSRP) applies to every wholesale SKU. Easy to publish, easy to audit, but offers no incentive to grow basket size and erodes margin on low-COGS items.
Tiered volume pricing
REWARDS LARGER ORDERS
Discount grows with units per order or per month — 25% at 12 units, 35% at 48, 45% at 144. Pushes buyers toward case packs and full pallets. Native on Shopify Plus B2B.
Keystone (50% off)
TRADITIONAL RETAIL FLOOR
Wholesale = retail / 2. Standard in gift, apparel and gourmet wholesale because it lets the retailer keystone-mark-up and still hit margin. Brutal on low-margin or low-MSRP SKUs.
Cost-plus
MARGIN-FIRST PRICING
Start at landed COGS, add a fixed margin (e.g. COGS × 2.2). Decouples wholesale from retail price, which is useful when retail isn't fully set yet or differs by region.
Contract / negotiated
PER-ACCOUNT PRICING
Each company gets a unique price list — typical for key accounts, distributors and private-label deals. On Plus, this maps cleanly to per-company catalogs; on lower plans, it forces draft orders.
MSRP-anchored bands
RETAIL-DRIVEN
Wholesale is published as a discount band off MSRP (e.g. 50–60%) and the band tightens or loosens with order size, payment terms or marketing co-op. Holds retail integrity while leaving room to negotiate.
Pricing model ≠ discount strategy
A model defines how the price varies. A discount strategy defines by how much. You can run a flat-percentage model with a 30% discount or a 55% discount — the model stays the same, the margin stack changes completely. Run the margin math (next section) before you commit to a discount inside any model.

The Margin Math: What a Wholesale Price Has to Cover

A wholesale price is not a discount; it's a cost stack with a margin on top. The formula is short, but the inputs are easy to forget.

The wholesale unit-margin formula
Net unit margin = wholesale price − COGS − fulfilment − (wholesale price × card rate) − channel costCard rate is your blended Shopify Payments percentage (typically 2.5–2.9% on B2B card transactions). Channel cost is the per-order share of your B2B tooling (a wholesale app, your share of Plus, or a Shopify Function fee). On a typical Plus B2B account doing 500 orders/month, channel cost lands near $1–$2/order.

The chart below runs that formula on a $40 retail SKU with $14 COGS and $4 fulfilment allowance across the five most common discount levels. The pattern matters more than the numbers — net margin drops faster than the discount grows, because COGS, fulfilment and channel cost are fixed regardless of price.

Run the full formula on that 50%-off bar — $20 wholesale, $14 COGS, $4 fulfilment, 2.2% card and $1.50 channel — and the per-unit margin collapses to roughly $0.06 if the order ships in singles. The reason the bar still looks alive is amortization: spread that $5.50 fixed cost across a 12-unit case pack and the same SKU returns about $61 in order margin (~$5.10 per unit). That is the honest baseline behind “keystone wholesale” — it only works when MOQ does half the pricing work, which is why high-COGS categories rarely use it without a real case pack.

Tiered volume pricing changes the picture: per-unit margin still compresses with each tier, but order size grows fast enough to keep total margin healthy. The line chart below shows the same SKU on a five-tier ladder.

The trap of a global percentage
A single “40% off retail” rule applied across the catalog quietly destroys margin on low-MSRP SKUs. If your retail range spans $8 to $80, run the formula at the bottom of the range first — that's where flat-percentage pricing breaks. Use fixed wholesale prices on those SKUs, or set a per-product price floor.

The calculator below runs the full formula on your own numbers. Adjust MSRP, COGS, fulfilment, MOQ, discount and payment terms, and watch how the effective order margin moves — the same arithmetic you would otherwise model in a spreadsheet before publishing a discount.

Wholesale Pricing CalculatorModel the real per-unit and per-order margin of a wholesale SKU — net of fulfilment, processing, channel cost and payment terms.
Wholesale price$24.0040% off $40.00 MSRP
  • Unit net margin$8.85 (36.9%)
  • Order net margin (12 units)$106.15
  • Net 30 silent cost−0.82%
Effective order margin (after net terms)$103.78Healthy — pricing covers cost stack with roomPer-unit after net terms: $8.65

Fulfilment and channel cost are entered per order and amortized across MOQ units — fold any per-transaction flat fees (e.g. Shopify Payments 30¢) into the channel cost field. Payment processing rate applies as a percentage of the wholesale price; on Shopify Payments B2B, blended rates land near 2.5–2.9%. Net-terms cost uses WACC × (days / 365) — adjust WACC to your actual borrowing or opportunity rate.

How Each Shopify Surface Enforces a Pricing Model

Once you've chosen the model and the margin, you need the right Shopify surface to make the price stick at checkout. The table below maps each model to its native enforcement and the realistic fallback when the native option isn't available.

Pricing Model → Shopify Surface That Enforces It

ModelNative Shopify surfaceRequired planFallback on lower plans
Flat % off retailB2B price list (percentage off product/collection)PlusCustomer-tag gating + wholesale app on Basic/Grow/Advanced
Tiered volumeVolume pricing inside the B2B catalogPlusWholesale Gorilla / SparkLayer tier rules, or a Shopify Function on Advanced+
Per-company contractCatalog assigned to one company or location with fixed pricesPlusManual draft orders, or a price-list app that gates by customer tag
Case pack / MOQB2B quantity rules (min / max / increment)PlusBundle apps, theme cart validators or app-side MOQ rules
Cost-plusFixed-price entries in a B2B price list (not a percentage)PlusHidden products + draft orders, or app catalog with fixed prices
Negotiated quoteDraft orders with custom line items and Net termsAny (manual)Same — draft orders are available on every plan
B2B catalogs determine the products and pricing your B2B customers can access. You can include or exclude specific products and set prices for each customer to customize the buying experience. On the Basic, Grow, and Advanced plans, you can assign up to 3 active catalogs across all your B2B markets. The Shopify Plus plan offers an unlimited number of catalogs and direct assignment to companies and locations.
Shopify Help Center — Catalogs and pricing in B2B — Shopify Help Center · View source (help.shopify.com)

The rule of thumb: a B2B catalog with a price list handles 80% of wholesale pricing, quantity rules and volume pricing handle the cases that need order-size logic, and Shopify Functions only show up when a contract demands a calculation the catalog can't express (bracketed bundle discounts, conditional freebies, region-aware adjustments).

Shopify B2B Setup Tutorial: Wholesale Pricing, Company Accounts & Custom CatalogsWalkthrough of configuring B2B catalogs and price lists on Shopify Plus — the same surface that enforces every model above.

MOQ, Quantity Breaks & Case Packs: Pricing Is the Quantity

Quantity rules are part of the price, not a separate setting. A 50% wholesale discount that ships in singles is a money-losing retail order with a wholesale label. Plus B2B quantity rules let you enforce minimum, maximum and increment per product or variant inside the catalog, so the cart blocks orders that don't fit your case-pack math.

1
Decide the smallest economic order
Work back from your fulfilment cost. If pick/pack/freight allowance is $4 per order and your unit margin is $1.40 after discount, 3 units lose money. A minimum of 12 units (the case pack) is the realistic floor.
2
Set the case pack as the increment
In the B2B catalog, set the quantity increment equal to the case (e.g. 6 or 12). Buyers can now order 12, 24, 36 — never an awkward 13. This eliminates relabeling and protects your published unit cost.
3
Cap the maximum where supply hurts
Use the maximum field to stop a single order from cannibalising stock for your other accounts. On a hero SKU you may cap a single order at 288 units and force buyers above that to a contract draft order.
4
Mirror the rules in your terms doc
Quantity rules block the order at checkout, but they don't explain it. Restate MOQ, increment and the lead-time consequences in your wholesale terms PDF so the buyer doesn't think the cart is broken.

Worked Example: How MOQ Reshapes Order Margin

$40 retail SKU · $14 COGS · $4 fulfilment/order · 2.2% card · $1.50 channel/order · 40% wholesale discount

MOQEffective unit marginOrder marginVerdict
3 units$7.64$22.92Fixed $5.50/order eats ~24% of the margin
6 units$8.56$51.33Marginal — only if reorder cadence is fast
12 units (case pack)$9.01$108.16Healthy — MOQ is doing as much pricing work as the discount

The same dynamic, charted across two common discount levels, shows why MOQ matters more than the discount itself. At 50% off, the first few units barely clear the $5.50 fixed order cost; the curve only opens up once the case pack does the work.

Volume pricing lets you offer additional price breaks to customers when they purchase larger quantities of a product in a single order. You can add up to 10 price breaks per product which are applied to each variant.
Shopify Help Center — Setting up quantity rules and volume pricing in B2B — Shopify Help Center · View source (help.shopify.com)
How to Set up Quantity Rules and Volume Pricing in B2BStep-by-step walkthrough of configuring increment, minimum and maximum quantity rules and 10-tier volume price breaks inside a B2B catalog — the exact surface behind the MOQ and tiered-pricing math above.

Protecting Retail: MAP, MSRP and Gated Catalogs

Publish a wholesale price and the retailer's instinct is to undercut. The defence is a stack of three controls — a written MAP policy, a published MSRP, and a gated catalog that keeps the wholesale number out of public search results. Each control answers a different question and lives in a different place; the table below makes the difference concrete.

Three Controls That Protect Retail Price

ControlWhat it controlsLegal status (US)Where it lives
MAP policyLowest advertised price; selling below is allowedUnilateral policy — legal. Agreement with retailer — illegal price-fixing.PDF policy doc + reseller agreement
MSRPSuggested retail shelf price — signal, not enforcementAlways legal to suggestLine sheet, spec sheet, product compare-at price
Gated catalogVisibility of your wholesale number itselfN/A — it's a configuration, not a policyB2B login (Plus) or customer-tag gating (apps)
A manufacturer is allowed to deal, or refuse to deal, with whomever it likes. For example, so long as it acts on its own, a manufacturer can adopt a policy regarding a desired level of prices and announce it in advance and refuse to deal with those who fail to comply.
U.S. Federal Trade Commission — Manufacturer-Imposed Requirements — FTC · View source (ftc.gov)
MAP is a policy, not a contract
In the US, you announce MAP unilaterally and enforce it by withholding shipments from retailers who advertise below it. Agreeing on a resale price with a retailer is vertical price-fixing and is illegal under the Sherman Act. Have a lawyer review your MAP language before you publish it, and never negotiate the floor in writing with a retailer.

Payment Terms Change the Real Wholesale Price

A wholesale price quoted “Net 30” is not the same price quoted “pay at checkout.” The difference is your cost of capital — the rate at which you would otherwise borrow or invest the cash. At a conservative 10% annual cost of capital, the table below shows the silent discount each net-term level adds on top of your headline wholesale price.

Cost-of-Capital Impact of Net Terms (10%/yr WACC)

Net termImplied % cost on the invoiceEffective discount on top of the price listTypical use
Pay at checkout0%0%New accounts, small orders, online-only buyers
Net 15~0.4%~0.4%Standard for established small retailers
Net 30~0.8%~0.8%Default for most B2B in the US and UK
Net 60~1.6%~1.6%Larger retailers, distributors
Net 90~2.5%~2.5%Major retail chains, seasonal categories

On Plus B2B, payment terms are set per company or per location and applied automatically at checkout. The practical move is to price your headline list at Net 30, then offer a 1.5% / Net 10 early-payment discount via draft orders for accounts that don't strictly need terms. That recovers the capital cost without re-pricing the entire catalog.

Payment terms define how long a company has to pay for an order. You can set payment terms for each company location. After you set payment terms, B2B customers can view these terms on any orders they place through your online store.
Shopify Help Center — Setting up payment terms in B2B — Shopify Help Center · View source (help.shopify.com)

Tax, Freight, Samples & Line Sheets: The Operational Layer of Wholesale Pricing

The published wholesale price is only one number in the buyer's total cost. Four operational decisions sit on top of it — sales tax handling, freight pricing, sample/first-order policy, and how the price list is actually delivered. Get them wrong and the buyer either pays more than they expected (and stops reordering) or you absorb the cost silently.

Tax-exempt buyers and resale certificates

Key takeaway: Collect the tax ID or resale certificate during onboarding, attach it to the company record, and let the catalog zero out tax — charging it where the buyer is exempt makes your invoice non-deductible and pushes them to another supplier.

Most wholesale buyers don't pay sales tax or VAT on your invoice — they account for it themselves when they resell. The mechanism differs by region, but on Shopify the workflow is the same: collect the tax ID or certificate during B2B onboarding, attach it to the company record, and let the catalog do the rest. Charging tax where the buyer is entitled to an exemption can make your invoice non-deductible for them — a hard reason to switch suppliers.

Tax Exemption by Region: What Buyers Expect

RegionWhat buyer providesInvoice treatmentShopify configuration
USResale certificate (per state)No sales tax chargedPlus: company tax-exempt. Lower plans: customer tax overrides or tax app.
EU (cross-border)Valid EU VAT number (VIES-checked)Zero VAT, reverse-charge noteShopify Tax with company VAT ID on file
UK (B2B)VRN above VAT thresholdZero-rated invoice with VRN shownUK tax registration + company VRN field

Freight pricing for wholesale orders

Key takeaway: Retail shipping rules quietly destroy wholesale margin. Use freight collect, a published per-case matrix, or a freight allowance above a minimum order — and put it on a dedicated B2B shipping profile.

Retail shipping logic — free shipping over $50, flat $7 below — collapses on wholesale economics. A 12-unit case shipped “free” at 50% off pulls per-unit margin into the red. Three patterns hold:

  • Freight collect / FOB origin — buyer pays the carrier directly. Cleanest for pallet-size orders; common with distributors and chain retailers who already have a carrier account.
  • Flat freight per case or per pallet — you publish a freight matrix (e.g. $18 per case to zone 1, $32 to zone 5) so the buyer sees the total cost before ordering. Works well for predictable, repeat case-pack orders.
  • Freight allowance above a threshold — free freight only above, say, $1,500 net, with paid freight below. This pushes order size toward the threshold and protects margin on small orders. Pair with the MOQ from the previous section.

On Shopify, freight matrices live in the shipping profile attached to the B2B market or location. Build a dedicated wholesale shipping profile so retail rates never accidentally apply to a pallet order — and so the buyer never sees a $9 retail shipping option on a 144-unit cart.

Sample orders and first-order incentives

Buyers ask for samples before they place a real order, and how you price them sets the tone for the relationship. Two clean models: paid samples credited against the first order (you ship at MSRP minus the wholesale discount, and credit the full sample value if the buyer places a qualifying order within 60 days), or a fixed sample fee ($25–$75) that covers your fulfilment cost regardless. Free samples are common but they invite tire-kickers — gate them behind an approved B2B application instead. The first qualifying order can carry a small introductory tier (e.g. an extra 5% off, or freight waived) for one order only; encode it as a single-use discount code, never as a permanent catalog change.

Delivering the price list: line sheets and gated portals

Key takeaway: A line sheet wins the application; the gated B2B portal wins every reorder after. Treat them as stages of the same funnel, not alternatives.

A wholesale price only converts buyers if they can read it. Two formats coexist — a line sheet (designed PDF or spreadsheet) you email to prospects after they apply, and a gated B2B portal where approved buyers log in and see their catalog at their price. They aren't alternatives; they're stages. Use the line sheet to drive the application, then move every reorder into the portal.

Line Sheet vs Gated B2B Portal

DimensionLine sheet (PDF/sheet)Gated B2B portal
Best forFirst contact, trade shows, rep-driven salesRepeat ordering, self-serve, real-time stock
ContainsSKU, MSRP, wholesale price, case pack, MOQ, lead timeLive catalog at the buyer's price, stock, reorder history
Update costManual redesign each price changeAutomatic — catalog price flows everywhere
Built on Shopify withCanva/Adobe + product CSV exportPlus B2B login, or wholesale app on lower plans
Review prices on a calendar, not on a crisis
Set an annual price review on the same date each year (most brands pick January or the start of their fiscal year). Re-run the margin formula on your top 50 SKUs against current COGS and freight, and adjust by category — never by uniform percentage. Tell accounts 60 days before the new price list takes effect, honour open POs at the old price, and provide a one-page rationale (input cost moves, freight, FX). Annual, scheduled increases hold; surprise increases trigger renegotiation on every other term.

Wholesale Pricing Without Shopify Plus

If your wholesale revenue doesn't yet justify Plus, you have three realistic patterns. None are as clean as native Plus B2B, but they all hold pricing.

App-driven wholesale catalogs

Key takeaway: An app is the cleanest non-Plus route. Pick by which pricing model it enforces natively (tiered, per-tag, multi-currency, full portal) — not by sticker price.

The cleanest non-Plus pattern. Apps add a wholesale layer on top of the Shopify storefront — tiered pricing, customer-tag gating, MOQ rules and a wholesale signup form. The price logic lives in the app, not in Shopify's native checkout, so edge cases (discount stacking, currency conversion, draft orders) can drift.

Wholesale Pricing Apps for Basic, Grow and Advanced

AppIndicative pricePricing model it handles best
Wholesale GorillaFrom ~$34.95/moTag-gated wholesale catalogs, tiered % discounts, MOQ
B2B Wholesale Solution by BSSFrom ~$25/moPer-tag price lists, volume breaks, signup forms
WholsterFree–$99/moMulti-currency B2B, deposits, basic terms
SparkLayerFrom ~$49/moFull B2B ordering portal, quick reorder, sales-rep flows

Customer-tag gating + draft orders

The lightest pattern. Apply a wholesale tag to approved customers, hide the wholesale theme template behind the tag, and send larger or negotiated orders as draft orders with custom line items and Net terms. Costs nothing extra, but a real human has to enforce the pricing on every quote.

Shopify Functions for one-off rules

If you're on Advanced and need a single pricing rule the catalog can't express — a bundle discount, a region-based mark-up, a co-op contribution — a custom Shopify Function in the discount API can run the calculation at checkout. Functions are powerful but require development time; reach for them only when the catalog and apps can't.

Where the non-Plus ceiling actually is
Apps and tag gating handle a single, mostly-uniform wholesale program well. They struggle the moment you need per-company pricing on the same checkout as retail, automated net-term tracking, or volume tiers that survive multi-currency. That's the breakpoint where Shopify Plus B2B becomes the cheaper option.

Common Wholesale Pricing Mistakes on Shopify

Each of these mistakes is easy to fix in the catalog or the theme, and each one quietly costs more than it looks.

Showing retail and wholesale to anon visitors
If both prices are visible without login, your retail tag becomes the negotiating floor for every buyer. Gate wholesale prices behind a B2B login or a customer-tagged catalog — wholesale buyers should only ever see one number.
Discounting from retail without a floor
A flat 50% off works on a $40 SKU, ruins margin on a $14 one. Set a per-product price floor (or a fixed wholesale price) on low-MSRP items instead of letting a global percentage do the math for you.
Free shipping that erases the discount
Wholesale buyers usually expect a freight allowance, not free shipping. Free freight on a 12-unit order at 40% off can pull total margin negative — quote shipping or build it into the wholesale price.
No MOQ or increment
Without a minimum or a case-pack increment, retailers test you with single-unit orders. Each one pays full fulfilment cost and loses money. Set a real MOQ — typically the case pack — from day one.
Audit your own catalog
Log out, open three product pages in an incognito window, and screenshot what an anon visitor sees. Then log in as a test B2B customer and screenshot the same pages. If your wholesale numbers, retail tags or compare-at prices show up in either view by accident, fix the catalog before you grow the channel.

The Bottom Line

Wholesale pricing on Shopify is repeatable. Decide the model. Model the margin on the SKU with the worst economics. Choose the catalog, quantity rule, draft order or Function that enforces it. Gate the prices behind a login. Layer MAP and net-term policy on top so retail and cash flow hold. The merchants who get this right rarely have the cleverest pricing — they have the most consistent one.

Your Next Step by Stage
Just adding wholesalePick one model (usually keystone or flat %), set MOQ at the case pack, gate prices behind login. App on your current plan, no Plus yet.Wholesale guide
10+ accounts, mixed pricingMove to Plus B2B. Build one price list per buyer tier, use volume pricing where it pays, draft orders for true contract deals.Plus B2B deep-dive
B2B-first, complex contractsPer-company catalogs on Plus, with Shopify Functions for any pricing rule the catalog can't express. Renegotiate every 12 months.Dynamic pricing

Ready to Build Wholesale Pricing the Right Way?

Start on Shopify's $1/month trial to model your catalog, MOQ and margin. When the wholesale channel scales, upgrade to Plus B2B for per-company catalogs, volume pricing and native net terms.

Start $1/Month Trial

Frequently Asked Questions

Most categories sit between 40% and 55% off retail — gift, apparel and home goods cluster around keystone (50% off), beauty and food often land at 40–45%, and high-COGS hardware can sit at 25–35%. The right number is whichever discount still clears your target unit margin after COGS, fulfilment, payment fees and channel cost — model it on a $40 SKU before publishing.
No, but Plus is the only plan with native B2B catalogs, per-company price lists and volume pricing. On Basic, Grow or Advanced you can still run wholesale — using a wholesale app (Wholesale Gorilla, B2B Solution, Wholster, SparkLayer) or customer-tag gating with draft orders. The pricing rules just live outside Shopify's native checkout, so the integration is shallower.
Not natively. Basic, Grow and Advanced let you assign up to 3 active B2B catalogs across your B2B markets, but per-company assignment is Plus-only. To show one price to retail and a different one to a specific wholesale customer on a lower plan, you need a wholesale app, a tag-gated theme template, or draft orders sent by email after manual quoting.
On Plus B2B, open the catalog, then on each product set quantity rules — minimum (the floor), maximum (the cap) and increment (the case pack). A min of 12 with an increment of 6 forces orders of 12, 18, 24 and so on. On non-Plus plans the same logic comes from MOQ apps or theme-level cart validators; checkout extensions can enforce it on Plus.
MSRP (Manufacturer Suggested Retail Price) is the price you'd like retailers to charge. MAP (Minimum Advertised Price) is the lowest price they're allowed to advertise — in the US, MAP is a unilateral policy you announce and enforce by withholding shipments, not a contract you can agree on with retailers. Agreeing on a resale price with a retailer is vertical price-fixing.
Net terms are a silent discount. At a 10% annual cost of capital, Net 30 costs you roughly 0.8% of the invoice, Net 60 costs 1.6%, Net 90 costs 2.5%. That's on top of your headline discount. Either price net terms into the wholesale number, or offer a small early-payment discount (1.5% / Net 10) to recover the capital cost on accounts that don't truly need terms.
Yes — that's the point of Plus B2B catalogs. One product record, one inventory pool. Retail shoppers see the retail price; the B2B login swaps in the company's catalog, which carries either a fixed wholesale price or a percentage adjustment. The cart, checkout and order confirmation all reflect the company's pricing automatically.
Generally no. Public price lists pull your retail tag down to the wholesale number in buyers' minds, weaken negotiations with strategic accounts, and create channel-conflict pressure from retailers who see a discount they aren't getting. Publish a request-access form or a tier table (Bronze/Silver/Gold) without the specific numbers, then deliver pricing inside the gated B2B portal.
Inside a B2B catalog, you set up to several quantity breakpoints per product. Each breakpoint has a price or a percentage off the catalog price. When a buyer adds 50 units of a product whose tier 2 starts at 48, every unit in the cart resolves to the tier-2 price. The breakpoints apply per product, not across the whole cart, so design tiers around how a single SKU actually ships.
When wholesale revenue clears roughly $500K/year, when you have 10+ accounts that each need a different price, when manual quoting and draft orders consume more than a few hours a week, or when you need net terms on the same checkout as retail. Below that, an app on Grow or Advanced is cheaper and the pricing limitations rarely block growth.
About This Article
Shopify Developer & E-Commerce Writer
9+ years with Shopify since 2017

Front-end developer specializing in Shopify since 2017. Experienced in building custom Liquid themes, optimizing storefront performance, and integrating third-party apps. Writes in-depth, data-driven e-commerce guides based on hands-on experience with real merchant stores.

Continue Learning

What to Read Next

Stay updated

Get notified about new articles

Subscribe to receive updates when we publish new Shopify guides and insights.