Wholesale & B2B

Customer tags vs native B2B companies: which should gate your catalog

Prime Lock logo

Prime Lock Team

4 March 2026 · 9 min read

WHOLESALE & B2B
Contents

There are two ways to answer "who is allowed to see this catalog" on Shopify. You either label the customer and check the label, or you model the buyer as a company and publish a catalog to it. Both are legitimate. Which one is right depends less on your ambitions and more on your plan and your buyer structure.

What native B2B actually gives you

Shopify's B2B feature set, available on Plus, introduces objects that do not exist elsewhere in the platform:

  • Companies, each with one or more locations.
  • Company contacts: customers attached to a company, with permissions per location.
  • Catalogs, which combine a product selection with a price list and are published to specific companies or locations.
  • Payment terms (net 30 and similar), purchase orders, and draft-order style checkout behaviour.
  • Per-location tax exemptions and payment methods.

This is proper B2B modelling and it is enforced server-side: a product outside a buyer's catalog is not purchasable by that buyer, full stop. If you are on Plus and you sell to organisations where three people from the same buying office order to two warehouses on different terms, use this. Nothing built on tags will represent that as cleanly.

What tags actually give you

A tag is a string on a customer record. Every plan has them, the API writes them instantly, and Shopify Flow, segments and most apps can read them. Gating on tags means: this collection is visible to customers carrying wholesale; this page is visible to customers carrying vip.

The underrated property is composability. One tag can drive several unrelated systems at once: a lock app hides the catalog, a volume-pricing app applies the tier, an email tool segments the newsletter, and Flow sends an internal alert on the first order. None of those systems needs to know about the others. Company membership is far less portable; most apps have no concept of it.

Side by side

Customer tagsNative B2B companies
Plan requiredAny plan, including BasicShopify Plus only
Hierarchy supportFlat. One customer, one set of labelsCompany → locations → contacts, with per-contact permissions
Per-location pricingNo. Price tiers are per tag, via a pricing appYes, price lists per catalog per location
App interoperabilityHigh. Almost every app reads tagsLow. Few apps understand companies
Setup timeMinutes. Tag a customer and write a ruleDays. Data modelling, catalogs, onboarding buyers
Payment terms and POsNot supportedBuilt in
Who it fitsTrade catalogs, VIP tiers, gated pages, mixed retail and wholesaleDistributors and manufacturers with real account structures
Both models are enforced server-side when paired with the right mechanism: catalogs natively, tags via a validation function.

The honest decision

Answer three questions.

  1. 1Are you on Plus? If no, use tags. There is no decision to make.
  2. 2Do multiple people from the same buyer place orders, to different locations, on different terms? If yes, use companies.
  3. 3Is your requirement mostly "these people see this, those people do not"? If yes, use tags even on Plus, because companies are a heavier tool than that problem needs.

The most common mistake is a Plus merchant with two hundred small independent retailers building out companies for all of them. Each retailer is one person ordering to one address. That is a tag with extra steps and a much slower onboarding process.

They can coexist

This is not exclusive. A company contact is still a Shopify customer record, so it can still carry tags. A useful hybrid, once you have both, looks like this:

  • Companies and catalogs handle pricing, terms and purchasing for your top accounts.
  • Tags handle visibility rules that cut across the company model: early access to a drop, an end-of-line clearance page, a locked press kit.
  • A single validation function enforces the tag rules; native catalogs enforce themselves.

Migrating from tags to companies later

Starting with tags does not paint you into a corner. When you upgrade to Plus and want the company model, the tag is the migration plan: it already identifies exactly which customers are trade accounts.

  1. 1Export customers carrying your access tag, with their company name metafield.
  2. 2Create companies and locations from that export, one per business.
  3. 3Attach each customer as a company contact with ordering permission.
  4. 4Build catalogs and price lists, and publish them to the companies.
  5. 5Keep the tag in place through the transition, so nothing loses access mid-migration.
  6. 6Retire the tag-based locks only once every buyer is inside a catalog.

The step people skip is the fifth one. Removing tag rules the moment catalogs go live guarantees a support week, because there will be buyers you missed. Run both for a month.

Prime Lock works on the tag side of this line, on any plan, and stays out of the way if you are on Plus and using catalogs for pricing.

Frequently asked

Prime Lock logo

Prime Lock Team

Prime Lock is built by Aspedan, the team behind Discount Prime and Prime MOQ. We write about the parts of Shopify that are harder than they look.

Decide who gets to see your store.

Early access opens with the free plan. Unlimited locks, enforced at checkout.

No newsletter. One email when Prime Lock is live.