Wholesale is the quiet half of a lot of consumer brands. It rarely gets the launch post or the campaign budget, yet it often carries a third or more of revenue, and it runs on a completely different set of expectations: negotiated prices, purchase order numbers, invoices instead of card charges, and a buyer who orders the same twelve SKUs every six weeks.
For years, running that on Shopify meant bolting something on. You installed a wholesale app, or you spun up a second password-protected store, or you asked your rep to punch every order into a draft manually. Native B2B changed the default answer. Shopify now ships company accounts, per-buyer catalogs, price lists and payment terms as part of the platform rather than as an add-on.
The useful question is not whether native B2B exists. It does. The question is whether the native feature set covers the way your specific buyers actually order, because the gap between “Shopify supports wholesale” and “Shopify supports your wholesale” is where the implementation budget goes.
This piece walks through what ships in the box, what each object actually controls, where teams hit walls, and what a migration off a spreadsheet and a shared inbox really involves. Feature availability and plan requirements described here reflect Shopify’s published documentation as of September 2026; verify current details in the Shopify Help Center before you plan around them.
In short
- Native B2B is a Plus feature. As of September 2026, Shopify documents company accounts, catalogs and payment terms as available on Shopify Plus. Lower plans still need an app or a second store.
- The company object is the unit of everything. Prices, terms, tax treatment and buyer permissions attach to a company and its locations, not to individual customer records.
- Catalogs bind price lists to companies. One catalog can carry percentage-off pricing, fixed prices and quantity rules, and a company location can hold more than one.
- Payment terms are recorded, not enforced. Shopify issues the invoice and tracks the due date. Chasing the money, credit checks and hard credit limits still sit outside the platform.
- Migration is a data problem first. Cleaning your customer list, your price tiers and your terms into a form the platform accepts takes longer than the configuration itself.
What native B2B includes and which plan you need
Native B2B is a set of objects layered onto the same store that serves your retail customers. There is one product catalog, one inventory pool, one theme and one checkout. What changes is who sees which price, who can place an order, and how that order gets paid.
The practical effect is that you stop maintaining two truths about a product. The SKU, the description, the images and the stock count live once. A wholesale buyer logs in and sees the same product page with different numbers on it.
The plan gate
The first thing to check is commercial rather than technical. Shopify’s documentation places native B2B on Shopify Plus, which means the decision to use it is usually bundled with a much larger platform decision. If you are weighing that step, our breakdown of Shopify versus Shopify Plus covers what else changes at that tier, and the Shopify pricing structure piece sets out how the plan ladder is built.
That gate matters because it reframes the build. Nobody upgrades to Plus purely to get company accounts. They upgrade for a bundle of things and then discover that native B2B is one of the better reasons they did.
If you are not on Plus and will not be soon, the honest answer is that native B2B is not on the table, and the rest of this article is a map of what you are comparing an app against.
What “native” actually means here
Native means the objects are first class in the admin and in the API. A company is a real record with an ID. A catalog is a real record. Payment terms attach to orders as structured data rather than as a note in the order comments.
That has two consequences that teams consistently undervalue. The first is that everything is queryable through the Admin API, so your ERP or accounting integration has something stable to talk to. The second is that Shopify’s own reporting, flows and automation can see these objects, which is not true of data an app keeps in its own tables.
The counterpart is that native objects behave the way Shopify decided they should behave. An app that stores its own state can be bent. A platform primitive usually cannot.
What is not in the box
Native B2B does not give you an accounts receivable system. It does not do credit scoring, it does not run dunning sequences, and it does not reconcile partial payments against an invoice automatically in the way a finance team expects.
It also does not, on its own, produce the buying experience of a mature distributor portal: saved order templates that a buyer edits and resubmits, rich order history search across years, or per-buyer reporting dashboards. Those are build or buy decisions layered on top.
Treat the platform as the transaction layer and the price authority. Treat everything downstream of “order placed” as a separate design problem, which is where the broader wholesale operations playbook for consumer brands becomes the more useful reference.
Company profiles, locations and buyer permissions
If you take one structural idea away, make it this: in Shopify B2B, the customer is not the buyer. The customer is the company. The buyer is a person attached to it.
That inversion trips people up because retail Shopify has trained everyone to think of a customer record as a person with an email and an address. In B2B, the person is almost incidental. Sales reps leave, purchasing coordinators change, and the account persists.
The company record
A company holds the account-level truth: the legal or trading name, the assigned sales rep if you use one, tax treatment, and the set of catalogs the account can see. It is the object your finance team will recognise, because it maps to the entity on the invoice.
Most brands find they need a naming and deduplication convention before they create a single company. Retail chains show up in your existing customer list four times under three spellings, and merging companies after the fact is more painful than getting it right on import.
Locations and why they carry more weight than the name suggests
Company locations are where the operational detail sits. Each location carries its own shipping address, billing address, tax settings, payment terms and catalog assignment. A ten-store retail group can order under one company with ten locations, each shipping somewhere different.
This is also where the model shows its edges. If a buyer needs to ship a single order to three addresses, the native structure pushes you toward three orders, because the location is the ordering context rather than a line-level attribute. Distributors used to split shipments find this jarring.
Before you model anything, ask your five largest accounts how they actually place orders. Whether they order per store or centrally and then redistribute determines your entire location structure, and changing it later means reissuing every catalog assignment.
Buyer permissions and ordering limits
Buyers are customer records attached to one or more company locations, with a permission level. In practice the useful distinction is between a buyer who can place orders and a buyer who can also manage the account’s other buyers and addresses.
There is a common expectation that native B2B ships a full approval workflow: junior buyer builds a basket, senior buyer approves, order releases. That is not how the native model works. If your accounts genuinely require an internal approval step, you are looking at an app, a custom build, or a process that lives in the buyer’s own procurement system and lands with you as a finished purchase order.
Ordering limits exist through the catalog rather than the permission set. Minimum order quantities, quantity increments and maximums are properties of the price list, so two buyers at the same location get the same floor.
Catalogs, price lists and volume pricing
The catalog is the object that answers “what can this account buy, and at what price”. It bundles a product selection with a price list, and it is assigned to a company location. Everything about wholesale pricing in Shopify routes through this pairing.
Understanding the binding order saves a lot of debugging. Product selection determines visibility. The price list determines the number. Quantity rules determine the shape of the order. A buyer who “cannot see” a product usually has a catalog scope problem, not a pricing problem.
Percentage adjustments versus fixed prices
A price list can apply a blanket percentage off your retail price, set explicit per-variant prices, or do both, with fixed prices overriding the percentage for the variants they cover. That hybrid is the pattern most brands land on.
The percentage rule does the heavy lifting across a long tail that you never want to maintain by hand. The fixed-price overrides handle the handful of SKUs where the standard margin does not work: loss leaders, contract-priced hero products, or items where a distributor negotiated something specific.
The trap is drift. A blanket percentage recalculates automatically when retail prices move, and fixed prices do not. Every retail price change silently widens or narrows the margin on every overridden SKU, so an override list needs a scheduled review or it quietly becomes wrong.
Quantity rules and volume breaks
Volume pricing lets you set price breaks at quantity thresholds on a variant: one price at 1 to 11 units, a lower one at 12 to 47, lower again above 48. Combined with minimum quantities and case-pack increments, this covers the majority of real wholesale price sheets.
What it does not cover well is pricing that depends on the order rather than the line. If your terms are “5% off the whole order above $5,000”, that is an order-level rule, and the native volume model is line-level. Brands usually resolve this with a script, a discount applied at checkout, or a negotiated price list that bakes the expectation in.
Multiple catalogs on one location
A location can hold more than one catalog, which is how you handle seasonal drops, exclusive lines or a promotional sheet that runs for six weeks without rebuilding your base pricing. Shopify resolves conflicts between overlapping catalogs by priority rather than by merging them.
Used well, this is the cleanest part of the system. Used carelessly, it becomes four overlapping catalogs where nobody can explain why one account sees $14.20 and another sees $14.75 for the same case.
How the pricing mechanics compare
| Mechanism | Best for | Maintenance load | Main failure mode |
|---|---|---|---|
| Percentage off retail | Long-tail catalogs, standard tiers | Very low, recalculates with retail | Margin breaks on low-markup SKUs |
| Fixed per-variant price | Contract pricing, hero SKUs | High, manual on every change | Silent drift after retail repricing |
| Volume breaks by quantity | Case and pallet buying | Medium, per variant | Does not respond to order value |
| Minimums and increments | Case packs, MOQ enforcement | Low once set | Blocks sampling and trial orders |
| Multiple catalogs by priority | Seasonal and exclusive lines | Medium, needs governance | Unexplained price differences between accounts |
Payment terms, deposits and invoices
Terms are the feature that separates a wholesale store from a retail store with lower prices. A retail customer pays at checkout. A wholesale buyer places an order, receives goods, and pays on an agreed schedule.
Shopify’s native model supports this by letting a company location carry a payment terms setting, so a qualifying buyer can complete checkout without paying and receive an invoice with a due date instead.
The terms options
The documented options cover the standard commercial patterns: due on receipt, due on fulfillment, a fixed calendar date, or a net period such as Net 30 or Net 60. Net terms are simply trade credit, a practice that long predates ecommerce and is described in general terms in the standard reference material on trade credit.
Terms attach to the location, which means one company can run cash on delivery for a new store and Net 45 for an established one. That granularity is genuinely useful and is one of the clearer wins over a generic wholesale app.
Deposits and partial payment
Deposit support lets you take a percentage up front and invoice the balance on terms, which is the standard pattern for large first orders from new accounts and for made-to-order production runs.
It is worth being precise about what this does. It splits the collection into two events. It does not give you a milestone-based payment schedule with three or four staged releases, and it does not manage the reconciliation of a buyer who pays 60% of an invoice for reasons of their own.
Where the platform stops and finance begins
This is the most common source of disappointment, so it deserves a blunt statement. Shopify records that an invoice is due on a date. It does not decide whether this buyer deserves credit, it does not stop a buyer at a credit ceiling in the way an ERP does, and it does not run an escalating reminder sequence when payment slips.
Teams solve this in one of three ways: an accounting integration that pushes invoices into a system that already handles receivables, a flow-based automation that emails on a schedule, or a person with a calendar reminder. The third option is more common than anyone admits and works fine until you pass roughly a hundred open invoices.
Decide this before launch. Terms without a collection process is the single fastest way to turn a growing wholesale channel into a cash flow problem.
Tax treatment on wholesale orders
Resale transactions are frequently exempt from sales tax when the buyer supplies a valid exemption certificate, and Shopify supports marking a company location as tax exempt. The mechanism is there; the compliance burden is yours.
Exemption rules, certificate formats and validity periods are set by individual state revenue departments in the United States and by the equivalent authority elsewhere, and they change. Confirm current requirements with the relevant state revenue department or your tax advisor rather than relying on a platform toggle as evidence of compliance.
Draft orders and rep assisted ordering
Plenty of wholesale still happens over a phone call, a trade show table or a WhatsApp thread. The buyer does not want a portal. They want to tell your rep what they need and get a confirmation.
Draft orders cover this. A rep builds the order in the admin against a company location, and the catalog pricing, terms and tax treatment for that location apply automatically. The buyer receives an invoice to review or pay, depending on their terms.
This matters more than the feature list suggests, because it means the same price authority governs self-service and assisted orders. The classic wholesale failure is a rep quoting a price from a stale PDF that nobody else in the business recognises. When the draft order reads pricing from the catalog, that failure mode mostly disappears.
The workflow limit is throughput. Draft orders are built one at a time by a human in the admin, so a rep covering forty accounts in a reorder week is a bottleneck. At that volume, the answer is to move the routine reorders to self-service and keep rep time for the accounts where the conversation adds value.
Where an app or a separate store still wins
Native B2B is the right default for most consumer brands adding wholesale to an existing Shopify business. There are specific situations where it is not, and recognising them early is cheaper than discovering them in month four.
The plan constraint
If you are not on Plus, the comparison is not native versus app. It is app versus second store versus staying on spreadsheets. A wholesale app on a standard plan remains a perfectly reasonable way to run a channel doing a few hundred thousand dollars a year.
Deep procurement requirements
Multi-step internal approvals, requisition workflows, quote negotiation with counter-offers, punchout catalog integration with a buyer’s procurement system: these are distributor-grade requirements and they are not native features. If several of your top accounts ask for them, look at platforms built for that shape. Our comparison of Adobe Commerce B2B and its quoting module covers what a more procurement-oriented platform includes by default.
Genuinely different storefronts
Sometimes wholesale needs to look and behave like a different business: no consumer merchandising, a dense order-form layout, spec sheets and case dimensions on every product card. Native B2B runs on the same theme as retail, which means you are building conditional logic into one template rather than designing two experiences.
That is workable and often preferable, but it is a real constraint. If you are evaluating how far a single theme can flex before it becomes unmaintainable, the practical limits are covered in our guide to choosing a Shopify theme that converts without custom code. A similar structural question comes up with geography, where the same trade-off appears in the choice between Shopify Markets and separate stores for selling in two countries.
The three-way comparison
| Dimension | Native B2B (Plus) | Wholesale app | Separate B2B store |
|---|---|---|---|
| Plan requirement | Shopify Plus | Any paid plan | Second subscription |
| Inventory | Single shared pool | Single shared pool | Needs syncing |
| Product data | Maintained once | Maintained once | Maintained twice |
| Storefront design | Shared theme, conditional logic | Shared theme, app blocks | Fully independent |
| Payment terms | Native, per location | Varies by app | Varies by setup |
| API and reporting | First-class objects | App-owned data | Separate reporting |
| Ongoing cost shape | Plan fee | Monthly app fee | Plan fee plus sync tooling |
| Best fit | Retail brands adding wholesale | Smaller channels, tight budgets | Two genuinely different businesses |
Migrating an existing wholesale list onto Shopify
Most migrations fail on data, not on configuration. The configuration is a few days of work. Turning an undocumented pricing history into a set of catalogs is the part that takes weeks, because it forces decisions the business has been avoiding.
Audit the pricing you actually have
Export every wholesale price you have honoured in the last eighteen months and group it. Most brands discover three or four real tiers and a long tail of one-off arrangements that a departed rep agreed to and nobody revisited.
That tail is the decision point. Every exception you carry forward becomes a fixed price override you maintain forever. Consolidating accounts onto standard tiers before migration is the single highest-leverage thing you can do, and the migration is the political cover to do it.
Clean the account list before you import
Deduplicate companies, confirm the current buying contact at each account, and capture the shipping addresses that are still live. Stale contacts are the most common cause of a quiet launch: invitations go to people who left, nobody activates, and the channel looks like it failed.
Confirm tax exemption status at the same time. Chasing certificates after go-live, while orders are already flowing, is considerably less pleasant than chasing them beforehand.
Sequence the rollout
Start with five to ten friendly accounts that order regularly and will tell you when something is wrong. Run them for two full ordering cycles before opening the gates, because the second cycle is where reorder behaviour, terms and invoicing actually get exercised.
Keep the old channel open during that period. A buyer who cannot place an order will not file a support ticket. They will place it somewhere else, and you will read about it in the numbers a quarter later.
Watch the first invoice cycle closely
Terms create an obligation with a date on it, and the first cycle is where you learn whether your collection process exists. Track days sales outstanding from the first week rather than waiting for a quarterly review.
The broader operating model behind this, from purchase order handling through to terms and returns, is set out in our guide to wholesale operations for consumer brands, which is the right companion read if you are building the process rather than just the store.
A note on tax, terms and professional advice
This article is general information about how a software platform works. It is not legal, tax or customs advice, and it is not a statement about your obligations in your jurisdiction.
Sales tax exemption on resale transactions, the enforceability of payment terms, credit reporting and invoice requirements are all governed by rules that vary by country and, in the United States, by state. Those rules change, and platform settings do not determine compliance.
Before you configure tax exemptions, extend trade credit or publish terms to buyers, confirm the current requirements with the relevant tax authority and take advice from a licensed tax advisor or a qualified attorney about your specific situation. Where this article describes platform behaviour, verify it against Shopify’s own Help Center documentation, which is the authoritative and current source for feature availability and plan requirements.
FAQ on Shopify B2B
Do I need Shopify Plus to use native B2B?
According to Shopify’s published documentation as of September 2026, yes: company accounts, catalogs and payment terms are Plus features. On lower plans the realistic options are a wholesale app or a separate password-protected store. Confirm current plan requirements in the Shopify Help Center, since packaging changes.
Can the same store serve retail and wholesale customers?
Yes, and that is the point of the native model. One product catalog, one inventory pool and one theme serve both audiences. A logged-in B2B buyer sees catalog pricing and their own payment terms; everyone else sees standard retail pricing.
How do wholesale prices get set for a specific account?
Through a catalog assigned to a company location. The catalog pairs a product selection with a price list, which can apply a percentage off retail, explicit fixed prices, volume breaks by quantity, or a combination. Fixed prices take precedence over the percentage rule for the variants they cover.
Does Shopify enforce credit limits or chase late payment?
No. Shopify records the terms, issues the invoice and tracks the due date. Credit assessment, hard credit ceilings and dunning sequences live in your accounting system, an integration, or a manual process. Decide which before you extend terms to anyone.
Can a buyer split one order across several shipping addresses?
Not cleanly in the native model. The company location is the ordering context and carries the shipping address, so multiple destinations generally mean multiple orders. Accounts that regularly split shipments are worth testing carefully before you commit to the structure.
Is there a built-in approval workflow for buyers?
Not in the sense procurement teams mean. Buyer permissions control who can order and who can manage the account, but there is no native multi-step approval chain where one buyer submits and another releases. That requires an app, a custom build, or handling approval inside the buyer’s own procurement system.
Are wholesale orders automatically exempt from sales tax?
No. A company location can be marked tax exempt, but that is a setting, not a compliance decision. Exemption depends on a valid certificate and on rules set by each state revenue department or the equivalent authority in your market. Verify current requirements with that authority or a tax advisor.
Can sales reps place orders on behalf of buyers?
Yes, through draft orders built in the admin against a company location. Catalog pricing, payment terms and tax treatment apply automatically, so a rep-placed order carries the same numbers as a self-service one. The constraint is human throughput rather than functionality.
How long does a realistic migration take?
Configuration is typically days. The full project is usually weeks to a few months, and the time goes into auditing historical pricing, consolidating one-off deals into standard tiers, deduplicating the account list and collecting current contacts and exemption certificates. Plan for two full ordering cycles with a pilot group before opening it to everyone.