Merchants selling wholesale: how do new B2B buyers apply for an account on your store?

Since B2B features came to all plans this spring (companies, catalogs,
net terms), I keep running into the same gap: there’s still no way for a
wholesale buyer to actually APPLY for an account. The merchant has to
create the company by hand in the admin.

I’m a Shopify developer researching this problem before deciding whether
to build anything for it — so this is a genuine question, not a pitch,
and there’s no link at the end.

If you sell (or want to sell) wholesale alongside retail:

  1. How does a new wholesale buyer request an account today — email,
    a Google Form, a contact form, an app like Helium/Custlo, something else?
  2. What happens after they apply? Who checks them (tax ID, website,
    resale certificate) and how long does it take to set them up?
  3. Roughly how many wholesale applications do you get per month?
  4. What’s the single most annoying part of that whole flow?

I’ll share a summary of what I learn back in this thread. Thanks!

Hi @Denister Not running a wholesale store myself, but from working with merchants who do, here’s the pattern I’ve seen most:

  1. How buyers apply today — mostly Google Forms or a basic contact form, sometimes a dedicated page built with a form app. A few use Helium Customer Fields to collect tax ID and business info and tag the account manually after review.

  2. After they apply — it’s almost entirely manual. Merchant checks the submitted info, verifies tax ID or resale certificate by hand, then creates the company in Shopify B2B admin and assigns the catalog/net terms. Can take anywhere from a few hours to a few days depending on how busy the merchant is.

  3. Volume — varies a lot, but smaller wholesale operations typically get anywhere from 5–30 applications a month.

  4. Most annoying part — the full manual loop: application comes in via form → merchant reviews outside Shopify → manually creates company in admin → notifies buyer. There’s no native way to connect the application to the B2B setup automatically, so everything falls through email/spreadsheets.

This gap feels like a real problem worth solving — especially the handoff between “buyer submits info” and “company gets created and activated” in Shopify.

I do not see much of a gap, but I am not a B2B seller.

So I am thinking along this way:

There is a Forms App which can help collecting and storing necessary data.

There is a Flow, which can run on Forms form submissions and create a company, add data, customers, and add customers to the company.

Verification and (at least) giving customers permissions should be manual.

If on Advanced plan and up, Flow can even validate some of the data at 3rd party services with http requests.

Of course, this would require configuration, but when seller is at the point where they would want to automate B2B applications, they should have resources to do that – either employee or a friendly dev…

Full disclosure up front: I ended up building an app in exactly this space (it’s on the App Store), so I have skin in the game — but I’ll share what I learned researching it, since you’re asking the right questions.

On (1): most merchants I talked to were using a Google Form or a page with a contact form, then doing everything else by hand. A few used customer-account apps with tagging, but those predate native Companies, so they don’t create the B2B objects — the merchant still does that manually.

On (2): the review step is where it gets interesting. EU merchants consistently wanted VAT numbers validated (VIES) before approving — fake wholesale applications are more common than I expected. US merchants asked about resale certificates instead.

On (4): the most annoying part, in their words, wasn’t the form — it was that approving means creating the Company, the location, attaching the contact, AND assigning the catalog, in four different admin screens. And a Shopify constraint that bites: one customer email can only be the contact of one company, which breaks the flow when a buyer reapplies.

Happy to compare notes — good luck with the research.

Thanks, really useful. The “few hours to a few days” gap is the part I’m curious about: have you seen merchants actually lose wholesale buyers there — someone applies, hears nothing for days, and orders from a competitor instead? And for the clients using form apps with tagging: any idea why none of that gets wired into the native B2B objects — the apps can’t, or merchants never asked?

Thanks — fair suggestion. Have you seen merchants actually run Forms + Flow for this in production? My understanding is the company-creation step in Flow needs Advanced or Plus, so the Basic/Grow stores that just got B2B
this spring are still stuck with the manual loop - is that right?

@Denister Yes, losing buyers during that gap is a real risk — especially in wholesale where buyers are often comparing multiple suppliers at once. A few days of silence after applying is enough for someone to just move on to a competitor who responds faster.

On the tagging/B2B native objects question — from what I’ve seen, it’s mostly a combination of both. The apps technically can write tags to customer accounts, but Shopify’s B2B objects (companies, contacts, catalogs) are separate from the customer tag system and require different API access. Most form apps are built around the older customer model, not the newer B2B company model, so the wiring just isn’t there yet.

And merchants largely haven’t asked because most of them have worked around it manually for so long they don’t realize it could be automated — they just accept the friction as normal. Which is probably why Shopify hasn’t prioritized closing that gap natively either.

Interesting point about one email = one company contact — did that come up much in practice, e.g. buyers reapplying after a decline?

This is really helpful, thank you. “They just accept the friction as normal” matches what I see in the threads here — lots of people describing the manual loop, almost nobody asking for it to go away. Last one from me: when a client does realize it could be automated, what do they do today — build custom, or is there an app you’d actually point them to?

No, it’s via “Send Admin API request” which is available for all.

“Send HTTP request” is indeed Plus, Advanced, or Grow plans only, so automated validation(s) are not possible on the lower plans with Flow alone. Paid workarounds possible, say by using Flow companion app.

Good to know — thanks for the correction, I didn’t realize “Send Admin API request” was available on all plans. So the raw company-creation step is scriptable anywhere; what’s left manual on lower plans is the validation part, plus everything buyer-facing (status updates, notification emails) regardless of plan. That maps the DIY boundary pretty clearly — appreciate it

Twice so far, both edge cases but annoying ones. First: a buyer gets declined (a typo’d VAT number is the classic), fixes it and applies again. That’s only clean if nothing was created in the admin on the first attempt, which is the main reason I create the Company at approval time rather than at submission. The native Forms flow creates it up front, so a decline leaves an orphaned company you have to delete by hand. Second: the buyer’s email already exists as a contact of another company, and the assignment step just errors out. I now check for that before the merchant hits approve and show a warning instead of a failed approval. To be honest the app is new so I’m not claiming big numbers, but both cases showed up as soon as real flows got tested, and the second one is the kind of thing you only meet in production.

The approval bottleneck is real, but once buyers are approved, there’s another gap: nobody’s enforcing credit limits. A buyer applies, you approve at 60-day terms, then three weeks later they’ve hit you for $40k of exposure and you never see it coming. After you automate onboarding, automate the credit gate too—TermShield blocks checkout if the customer would exceed the limit you set.

Full disclosure: I built TermShield ( TermShield - Block B2B checkout when a company exceeds its credit limit | Shopify App Store )—it blocks B2B checkout when a customer would exceed the credit limit you set.