In a retail store a customer is a person. In wholesale the person is almost never what you are trading with — you have an agreement with a business, that business has branches, and those branches have people who place orders. Shopify B2B models this with three objects.

Companies

The business entity. It owns the relationship, the assigned catalog, and the commercial terms. This is what your agreement is with, and what should appear in your reporting as "a customer".

Company locations

Branches, depots, or delivery addresses under a company. Each can carry its own shipping details, tax treatment and payment terms — which matters more than it first appears. A head office on net 30 and a franchise branch on prepayment is a normal arrangement, and a flat structure has nowhere to express it.

Contacts

The individual buyers who log in and order on behalf of a location, with their own permissions. Contacts can often be attached to multiple locations, which matters for multi-site customers like chains and franchise groups.

The flattening mistake

The temptation on day one is one company, one location, one contact — because that is how the spreadsheet looked. Then a customer opens a second site. Or a buyer leaves and you discover the account was tied to their personal email. Or one branch negotiates different terms. Each of those needs somewhere to go, and a flat structure has nowhere.

Restructuring later means touching catalogs, terms and order history on live accounts. Model it properly at the start even when today's data looks simple.

Company metafields

Shopify does not have a field for everything your business runs on — assigned rep, trade reference status, certification expiry, region, credit limit reviewed date. Company metafields give you defined, typed fields for those, so the data is structured rather than buried in an order note.

Capturing that data at the point of application is better than cleaning it up afterwards. Tooling in this space can help: Onboard B2B documents custom application fields that save directly to company metafields, which standardizes the data as it arrives.

Bulk import and data quality

Wholesale customer data is usually messy on arrival — inconsistent business names, tax IDs in three formats, addresses that are really delivery instructions. Importing it as-is gives you a clean-looking store built on unreliable records, and every report downstream inherits the mess.

Companies, locations and contacts can be imported in bulk from CSV, both for the initial migration and for ongoing updates where an ERP is the source of truth. The mapping done before the import is what determines whether you get clean records or a faithful copy of a bad spreadsheet.

Keeping it current

The cheapest data-quality mechanism is letting customers maintain their own records. A self-service portal where company admins manage their own contacts and locations keeps your data accurate for free and removes a stream of small requests from your team.

Services: Shopify B2B company accounts.