← All guides

How-to

Approve a Wholesale Buyer on Shopify — Everything to Set Up, in the Order That Doesn't Bite You

By Bhavin Gopani · Last updated 15 August 2026 · every fact checked against Shopify's current docs on that date

Approving a wholesale buyer on Shopify is six settings, not one click: the company and its contact, the price list that reaches them (a catalog attached to a B2B market on non-Plus plans), payment terms, checkout rules, tax, and — last of all — ordering permission. A merchant put the expectation neatly on the Shopify Community: "Once approved, the B2B login is created and customer will be able to see discounted rates." That's the goal. Here's what actually has to be true in your admin for it to happen, in the order that doesn't leave a buyer ordering at retail prices — or ordering before you meant them to (facts checked 15 August 2026).

What does "approve" actually change in Shopify?

Less than you'd think. If the buyer came in through the native Shopify Forms request, "approve" is Manage permissions on a company that already exists in your "Ordering not approved" tab — it lets them order and see B2B pricing, and Shopify's own docs are explicit that it doesn't set up anything else. If you're creating the company by hand, there is no approve button at all: the main contact gets "Ordering only" permission by default the moment you click Save.

That second fact is the whole reason for this guide's ordering. A hand-created buyer can sign in and place an order immediately — so the price list, terms, and tax have to be right before the company exists, or (for a Forms request) permission has to be the last thing you touch. Either way: approve last.

Step 0 — The one-time plumbing: a price list and a B2B market

You do this once, not per buyer. A catalog is Shopify's word for a price list: Markets → Catalogs → Create catalog, name it (buyers never see the name), pick all or specific products, set an overall price decrease (say 40%) or fixed prices per product (fixed prices win over the percentage), set Status to Active. Three catalogs cover most stores: wholesale, distributor, key accounts.

Then the part a Shopify partner in a July 2026 thread called "the step most guides miss". On Basic, Grow, and Advanced, a catalog reaches a buyer only through a B2B market — a group of company locations that the catalog is attached to. Create one on the Markets page, choose "Company locations" in the Includes section, and attach your catalog. A market that matches on region (say, "all US company locations") picks up new buyers automatically; a market built from a hand-picked list needs each new location added. Shopify's docs put the failure mode plainly: a B2B market without company locations "won't deliver B2B pricing or experiences to your wholesale customers." Plus stores can skip the market and assign catalogs straight to a company; nobody else can, as of today.

Step 1 — Create the company (or open the one Forms made)

Customers → Companies → Add company. Six fields matter:

  1. Company name — shown to the buyer when they sign in, so use the trading name they'll recognise, not "Acct 0417".
  2. Main contact — the person who'll order. If that email already exists as a customer (they bought retail once), select the existing profile rather than typing the address again; the profile must have an email. This is the email their one-time sign-in code goes to, so it must be one they read.
  3. Shipping and billing addresses — from the application. The first location is created for you from these.
  4. Catalogs — pick the price list; it's applied to that first location automatically (and, on non-Plus, remember the location still has to land in the market that carries it).
  5. Payment terms and checkout settings — next two steps; both live on this same form.
  6. Taxes — step 4; also on this form.

If the application arrived through Shopify Forms, the company, location, and contact already exist with the answers stored as metafields — open it from the "Ordering not approved" tab and fill in the same fields on the edit screen. Don't click Manage permissions yet.

Step 2 — Payment terms: which pay-later window, if any?

Payment terms are the pay-later window: No payment terms (due at checkout, the default), Net 7, 15, 30, 45, 60 or 90, or Due on fulfillment. Deposits are Plus-only. A Shopify staffer on the Checkout team confirmed the mechanics in April 2026: assign terms to the company, the buyer checks out without paying, then pays from their account with a "Pay now" button — and payment reminders are a built-in feature on every plan.

Net terms are your money sitting in someone else's bank for a month; how much of that you're comfortable with is a business decision, not a Shopify setting. My own habit is to start a brand-new account on no payment terms or Net 15 and lengthen it after a few clean orders — terms on a company can be edited any time. Whatever you choose, write it in the welcome email (step 6) so nobody's surprised at checkout.

Step 3 — Checkout settings: review their orders, or let them through?

Two switches. "Submit all orders as drafts for review" turns every order into a draft you approve before it's real — the right setting for a buyer's first weeks, for anyone on terms you're still nervous about, and for the "we quote shipping by hand" cases. "Automatically submit orders" is the trusted-account setting. And "Allow customers to ship to any one-time address" is an opt-in switch: leave it alone unless the buyer drop-ships, so orders can only go to the addresses you vetted.

Step 4 — Tax: enter the ID, and only then choose "don't collect"

On the company's location: enter the tax ID (VAT number for UK/EU buyers), then pick Collect tax, Don't collect tax, or Collect tax unless exemptions apply — the last one lets you name the specific exemption instead of switching tax off wholesale. Only flip a buyer to exempt after the resale or exemption certificate has passed the vetting routine; the tax setting is location-specific, and Shopify's docs are blunt about whose neck is on the line — "Tax is your responsibility." Record the certificate's expiry date somewhere you'll see it, because the setting won't un-flip itself when the paper lapses.

Step 5 — Permission: the actual approval, done last

Everything above is set. Now the buyer gets in. For a Forms request: Manage permissions → choose the location(s) → Ordering only or Location admin (admin also sees every order placed for that location — right for the owner, wrong for a junior buyer) → Next → tick "Notify customer that they can start placing B2B orders". For a hand-created company, Save is the permission — which is why it's the last click, after steps 0–4 are true.

Worked example, so the order is concrete. Harbor Provisions applies from Kansas with a resale certificate. You: confirm the "Wholesale 40" catalog is attached to your "US wholesale" B2B market (step 0, already done last month) → create the company with the buyer's existing customer profile as contact, addresses from the form, Wholesale 40 selected, No payment terms for now, drafts-for-review on, tax ID entered and Don't collect tax because the certificate checked out → Save. Sign-in works, prices are wholesale, first order lands as a draft on your desk. Ten minutes, and nothing to walk back.

Step 6 — The welcome email Shopify doesn't write for you

Shopify's notify tick sends its own short notification. Send yours as well, same hour — it's the one place to put the four things a new buyer actually needs:

  • Where to sign in — the customer account URL from Settings → Customer accounts — and how: "enter this email address, we'll send a one-time code, no password."
  • What they'll see — "your wholesale prices show once you're signed in; if you see retail prices, you're not signed in with the email on file."
  • Their terms and first-order rules — "payment at checkout for now; for the first few weeks each order is reviewed before it's confirmed."
  • A human — a name and a reply-to that reaches a person.

Why does the buyer still see retail prices?

The classic post-approval question, and the order to check it in:

  1. They're not signed in, or signed in with a different email than the one on the contact — easy to do when they also shop retail from another address.
  2. Non-Plus store: the company location isn't in the B2B market that carries the catalog, or the market has no catalog attached.
  3. The catalog's Status is Draft, not Active.
  4. The store is still on legacy customer accounts — Shopify's docs: "You can't use legacy customer accounts for B2B customers and orders." Switch to the new customer accounts in Settings.
  5. They have permission on a location that has a different catalog than the one you expected (a contact on several locations picks one at sign-in). Where several catalogs apply to one location, the lowest price wins.

Do you need an app for any of this?

If you approve a handful of buyers a year — no. This checklist is the whole job, and once the step-0 plumbing exists, a hand-created company takes about ten minutes. Where it stops scaling is volume plus paperwork: fifteen applications a month, each with a certificate to check, an expiry to track, and the same six settings to click in the right order. That's the point of an application-and-approval app — ApprovePilot, for one, collects the application on your storefront, shows the vetting signals beside it, and on your approve click creates the company, contact, terms, and tax setting exactly as above, then sends the welcome email with the sign-in link. The settings are the same either way; what changes is who clicks them and whether the certificate expiry ever gets forgotten.

Common follow-up questions

Can I undo an approval?

Yes, in two strengths. To pause a buyer, open the company, click Manage permissions and remove the contact's ordering permission — the company, terms, and history stay. To remove them entirely, delete the company; Shopify's docs note that "Companies can't be deleted if there are any orders for that company," so once they've ordered, removing permission is the tool.

Do I need Shopify Plus for any of this?

No. Companies, payment terms, catalogs, quantity rules, and payment reminders are on every paid plan (checked 15 August 2026). What Plus adds: unlimited catalogs, catalogs assigned directly to a company instead of through a B2B market, deposits, and partial payments. On Basic, Grow, and Advanced you get up to 3 active catalogs across your B2B markets — enough for "wholesale", "distributor", and "key accounts".

Does the buyer need a password?

No. B2B buyers sign in with the email you put on their contact plus a one-time code sent to that inbox — Shopify's docs: "No password is required." That is why the email on the contact must be the one the buyer actually reads, and why B2B needs the new customer accounts turned on; legacy accounts can't sign in to a company.

One buyer, several people or branches — how does that work?

One company can hold many locations (each with its own address, terms, and tax setting) and each location many contacts. Give the owner "Location admin" so they see every order for that location; give staff "Ordering only" so they see their own. A contact on more than one location picks which one they're buying for when they sign in.

The buyer already has a retail account with the same email — what do I do?

Pick that existing customer profile as the main contact instead of typing the email again — Shopify lets you choose an existing profile when you create the company. The profile must have an email address on it. Trying to create a second profile with the same email is what throws the duplicate-email error mid-approval.

If the missing front door is your problem: ApprovePilot puts the application form this guide describes on your storefront, shows the vetting signals next to each application, and sets up the approved company, payment terms, and tax settings in one click. The Free plan (5 applications a month, every feature included) is the trial — no card, no clock.

Install free on Shopify

Bhavin Gopani · founder of ApprovePilot (PilotWorks, India). I answer wholesale-onboarding questions in the Shopify Community and read every support email myself. If anything in this guide has gone out of date, tell me at [email protected] — I'll fix it.