Shopify B2B companies and the app
How Shopify's native B2B companies, locations and permissions work, how B2B Onboarding & Wholesale approvals fit in, and what to check before switching to new customer accounts if your store already has companies.
Shopify's own B2B features used to be exclusive to Shopify Plus. Since April 2026 every Shopify plan includes B2B companies, locations, payment terms and up to three B2B catalogs; Plus keeps unlimited catalogs, direct catalog assignment to companies, and deposits. That means two things for a B2B Onboarding & Wholesale merchant: you can now link approved applicants to a real Shopify company on any plan, and companies you may not remember creating can already be sitting in your admin.
How Shopify B2B is built
A Shopify company has three layers, and it matters which one a setting lives on.
- Company - just a name, a main contact, notes and metafields.
- Company location - where everything commercial lives: shipping and billing address, catalogs (the products and prices this location buys at), payment terms, checkout settings, tax ID and tax exemption, assigned sales staff, store credit. A company can have many locations, and each can be set up differently.
- Customer with a permission per location - a customer becomes part of the company as a contact, but they can only order for the locations where they have been given a permission. There are two: Ordering only (place orders, see their own) and Location admin (also sees every order at that location and can edit its addresses). A customer with no permission at any location is in the company on paper but has nothing to order for.
When a B2B customer logs in they pick the location they are buying for, and prices, tax and payment terms follow that choice. A customer can belong to one company only.
B2B checkout only works with new customer accounts. On classic customer accounts, companies exist in the admin but customers cannot use them - see the last section of this guide.
Two ways to run a company in the app
When you approve an application you choose how the company is managed.
App managed is the default and works on every plan and with either customer accounts version. The app holds the company, the tier, the price lists, net terms and the tax decision, and applies pricing through its own discount at checkout. Customers keep shopping through your normal storefront and checkout.
Shopify managed links the applicant to a native Shopify company. On approval the app does everything the "Add customer" flow in Shopify admin would do:
- Adds the customer to the company you picked, or the one you created from the application.
- Gives them the permission you chose (Ordering only by default) at the locations you ticked.
- Makes them the company's main contact if it has none.
- Sets the tax status you decided on those locations, and the payment terms if you picked any.
- Creates a location for the company if it had none, allowing checkout to any address so the buyer can enter one.
Pricing for a Shopify managed company comes from the company's Shopify catalogs, not from the app's tiers. The tier discount is deliberately kept off at B2B checkout so it can never stack on top of a catalog price, and if the customer previously had an app tier it is removed when they join a Shopify company. If your Shopify company customers were given app tiers on purpose and your catalogs carry no B2B pricing of their own, Settings → Discounts → Customers who belong to a Shopify B2B company lets you apply the tier discount at B2B checkout as well.
Letting applicants list their ship-to locations
Add a Ship-to locations field to your sign-up form (Onboarding Forms → edit form → add field → type "Ship-to locations"). Applicants can list each branch they order for with its address. On a Shopify managed approval, every complete address is offered for creation as a company location, with billing set to match shipping, and the customer is granted ordering permission there; an address the company already has is reused rather than duplicated. When you create the Shopify company from the application, its first location is built from the first address instead of being left blank.
Shopify does not let apps send its "B2B access" welcome email. To invite a Shopify managed customer, use the Shopify Flow template Send B2B access email, or build the invitation into a Klaviyo flow on the Application Approved event that the app sends.
Which should you use?
Use App managed if you want percentage or price-list based wholesale pricing without maintaining Shopify catalogs, if you run classic customer accounts, or if you want one simple approval that works everywhere. Use Shopify managed if you already maintain B2B catalogs per company, need net terms and vaulted payment methods enforced by Shopify's B2B checkout, or have buyers who must pick between several ship-to locations.
If your store has Shopify companies but classic customer accounts
This is the situation to check today. If your store was on Shopify Plus in the past, or someone created companies by hand, they are now visible again under Customers → Companies - Shopify brought them back for every plan. The app shows a warning on its dashboard and Companies page when it detects companies on a store that still runs classic customer accounts.
Right now those companies are dormant: because B2B checkout needs new customer accounts, your customers log in as ordinary customers and the app prices them as usual.
The day you switch to new customer accounts, that changes without further warning. Every customer who still has a permission at a company location starts checking out as a B2B buyer:
- Prices come from the company's Shopify catalogs. A location with no catalog shows your regular retail prices.
- Tax follows the location's tax settings, not the tax exemption on the customer.
- Payment terms and checkout rules come from the location.
- App tier discounts do not apply to B2B checkouts.
Before switching to new customer accounts
- Open Customers → Companies in your Shopify admin and look at each company's locations. On a location page, the Customers card lists everyone with a permission there.
- For each company, decide one of two things:
- You do not want B2B checkout for them. Open each customer, choose Manage under Permissions, and untick their locations (or remove them from the company). They go back to being regular customers and keep their app pricing.
- You do want B2B checkout for them. Give each location a catalog with the right prices, set its tax status and payment terms, and treat the company as Shopify managed in the app from then on.
- Only then switch Settings → Customer accounts to new customer accounts.
If you are unsure which companies still have active permissions, email hello@conspireagency.com and we will send you the list for your store.
Customer email & phone uniqueness
Shopify requires each customer's email and phone number to be unique. Here's how that affects creating customers from applications, and how to resolve conflicts.
Migrate existing wholesale customers
Bulk upload your existing wholesale customers into B2B Onboarding & Wholesale with a CSV file to migrate your Shopify B2B program without re-entering data.