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·Updated July 2026·21 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.
Native B2B catalogs start on Basic — three active catalogs, 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.
Plus adds unlimited catalogs and per-company pricing, deposits and partial payments.
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

Key takeaway

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
  • Native B2B volume pricing, Basic and up
Contract per account
  • Few accounts, big revenue each
  • Negotiated price lists and terms
  • Distributors, private label, key accounts
  • Direct company catalogs on Plus, or draft orders

Wholesale Pricing Models That Actually Work on Shopify

Key takeaway

The six models below aren't mutually exclusive. A typical B2B merchant 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 inside any B2B catalog, on Basic and up.
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. Only Plus can assign a catalog directly to a company or company location; on Basic, Grow and Advanced your three active catalogs attach to B2B markets, so individual accounts run on draft orders instead.
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

Key takeaway

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 — every worked figure in this article models 2.2%, so swap in the blended rate from your own payouts. Channel cost is the per-order share of your B2B tooling — a wholesale app, an app that carries a pricing function, or your share of Plus if you're on it. On native B2B with no extra apps it can be close to zero; on a Plus account doing 500 orders/month it 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 (% of wholesale price)$8.85 (36.9%)
  • Order net margin (12 units)$106.15
  • Net 30 silent cost (% of wholesale price)−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

Key takeaway

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, the plans that include it, and the point where the plan boundary actually bites.

Pricing Model → Shopify Surface That Enforces It

ModelNative Shopify surfacePlans that include itWhere the limit bites
Flat % off retailB2B catalog price list (percentage off product/collection)Basic, Grow, Advanced, PlusOnly if you need a 4th active catalog — then Plus, or a tag-gated wholesale app
Tiered volumeVolume pricing inside the B2B catalog (up to 10 price breaks per product)Basic, Grow, Advanced, PlusBreaks apply per product, not per cart — cross-SKU tiers need a wholesale app
Per-company contractCatalog assigned directly to one company or company locationPlus onlyBelow Plus your 3 catalogs attach to B2B markets, not to a buyer you pick — single accounts need draft orders or a tag-gated price-list app
Case pack / MOQB2B quantity rules (min / max / increment)Basic, Grow, Advanced, PlusMOQ on the retail storefront still needs bundle apps or theme cart validators
Cost-plusFixed-price entries in a B2B catalog (not a percentage)Basic, Grow, Advanced, PlusMany buyer-specific price sets hit the 3-catalog cap — Plus or an app catalog
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). Note the distribution rule there: any plan can install a public App Store app that contains functions, but only Shopify Plus stores can run a custom app containing Shopify Function APIs.

Shopify B2B Setup Tutorial: Wholesale Pricing, Company Accounts & Custom CatalogsWalkthrough of configuring B2B catalogs and price lists in the Shopify admin — the same surface that enforces every model above. Recorded in 2024, when B2B was still a Plus exclusive; those catalog and price-list screens are now included on Basic, Grow and Advanced too.

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

Key takeaway

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. 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 — on Basic, Grow and Advanced as well as on Plus.

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

Key takeaway

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 policyNative B2B customer login (Basic and up) 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

Key takeaway

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

Net payment terms are set per company or per company location and applied automatically at checkout — on Basic, Grow and Advanced just as on Plus B2B. What stays Plus-only on the payments side is narrower than most merchants assume: deposit requirements, partial payments and payment requests per fulfillment. 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

Key takeaway

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 chargedTax exemption on the B2B company or company location — Basic, Grow, Advanced and Plus alike. For non-B2B accounts, customer tax overrides or a 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 exportNative B2B customer login on any plan from Basic up, or a wholesale app
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

Key takeaway

If your wholesale revenue doesn't yet justify Plus, start with what your plan already includes. Since April 2, 2026, native B2B ships at no extra cost on Basic, Grow and Advanced: company profiles, up to three active catalogs with tailored pricing, volume discounts and quantity rules, net payment terms, ACH (US) and vaulted credit cards. The three patterns below are what you reach for once that native surface runs out — a fourth pricing tier, prices set per individual company, or a rule the catalog can't express.

App-driven wholesale catalogs

Key takeaway: An app is no longer the default non-Plus route — native B2B is. Reach for one when you need more than three catalogs, per-buyer prices below Plus, or a wholesale portal Shopify doesn't ship, and pick by the pricing model it enforces natively rather than by sticker price.

The route for everything the native catalogs can't cover. Apps add their own wholesale layer on top of the Shopify storefront — tiered pricing, customer-tag gating, MOQ rules and a wholesale signup form. The price logic then lives in the app rather than in Shopify's native B2B 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 a single pricing rule sits outside what a catalog can express — a bundle discount, a region-based mark-up, a co-op contribution — a Shopify Function in the discount API can run the calculation at checkout. Mind the distribution gate, because it is the real one: on Basic, Grow and Advanced the function has to arrive inside a public App Store app, since only stores on Shopify Plus can install a custom app that contains Shopify Function APIs. Either way it is development or vendor work; reach for it only when the catalog and off-the-shelf apps can't do the job.

Where the non-Plus ceiling actually is
Native B2B on Basic, Grow and Advanced runs a single, mostly-uniform wholesale program well. The ceiling is specific rather than sweeping: three active catalogs across all your B2B markets, no direct catalog assignment to an individual company or company location, and no deposit requirements or partial payments. When you need a fourth pricing tier, per-company numbers on the same checkout as retail, or a deposit before production, Shopify Plus B2B becomes cheaper than bolting apps together.

Common Wholesale Pricing Mistakes on Shopify

Key takeaway

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

Key takeaway

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. One native B2B catalog on your current plan, no Plus yet.Wholesale guide
10+ accounts, mixed pricingSpend your three catalogs as tiers across your B2B markets, use volume pricing where it pays, draft orders for true contract deals. Plus once tiers outgrow three.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 — native B2B catalogs, volume pricing and net terms are included from Basic up. Upgrade to Plus only when you need unlimited catalogs, per-company pricing or deposits.

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. Since April 2, 2026, Shopify's native B2B tools are no longer a Plus exclusive: company profiles, catalogs with tailored pricing, volume discounts and quantity rules, vaulted credit cards and payment terms are included at no extra cost on the Basic, Grow, Advanced and Plus plans. On Basic, Grow and Advanced you can assign up to 3 active catalogs across all your B2B markets. Plus lifts that to unlimited catalogs and adds direct catalog assignment to a specific company or location, deposit requirements, partial payments and payment requests per fulfillment.
Yes, natively. Basic, Grow and Advanced let you assign up to 3 active B2B catalogs across your B2B markets, and a logged-in company buyer sees the catalog price instead of the retail price. What those plans can't do is assign a catalog directly to one company or company location — that customer-level pricing stays Plus-only, because below Plus a catalog attaches to a B2B market rather than to a buyer you pick. So a single account that needs its own numbers means a draft-order quote, a tag-gated wholesale app, or a move to Plus.
In any B2B catalog — Basic, Grow, Advanced or Plus — 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. The rules bind B2B buyers, so a minimum on your retail storefront still needs an MOQ app or a theme-level cart validator.
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 B2B catalogs, and they work the same way on Basic, Grow, Advanced and Plus. 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 can add up to 10 price breaks per product, applied to each variant — on Basic, Grow, Advanced and Plus alike. Each breakpoint carries 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 the three-catalog cap starts costing you deals. The Plus-only B2B list is short and specific: unlimited catalogs, direct catalog assignment to a company or company location, deposit requirements, partial payments, and payment requests per fulfillment. So the trigger is 10+ accounts that each need their own price, or buyers who insist on a deposit before production. Net terms, volume pricing, quantity rules, ACH and vaulted cards are not reasons to upgrade — they are included on Basic, Grow and Advanced.
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.