Skip to main content
Company accounts

B2B account hierarchy native to the platform

Companies, hierarchical business units, users with company-scoped roles and permissions, shared addresses and payment methods. The B2B foundation everything else attaches to.

Modelling B2B buyers
three paths
B2C + custom fieldcompany name on a customer record
customercompanyName: string
+ users+ roles+ addresses+ payments
rules live in your code
Parallel B2B portala separate account system
Commerce
CustomersOrders
webhook
B2B portal
CompaniesUsers
two models · sync drift
Native company modelfirst-class on the same backend
Company
BusinessUnit
CompanyUser
CompanyRole
Address
PaymentMethod
same backendCatalogueOrder
one backend · queryable

The B2C-plus-a-field workaround and the custom-built portal both fail at scale

Most platforms model B2B as a B2C customer with a company name custom field, then expect every multi-user, multi-role, multi-address rule to live in your custom code. The serious alternative is to build a separate account system: a new data model, a new permission engine, a new portal, all parallel to your commerce backend.

Vendure Platform ships company hierarchy as first-class data on the same backend as your catalogue and orders. Companies, business units, users, roles, permissions, addresses, payment methods. All native, all queryable, all extensible.

What company accounts gives you

The corporate purchasing model your buyers actually use

Companies, business units, roles and permissions, addresses, payment methods. Five capabilities that cover the buyer-organisation shape end to end.

Companies as state-machined entities

Pending, Active, Suspended, Denied, Closed. Not a feature flag: a real lifecycle with onboarding, suspension, and offboarding semantics. Custom transitions, custom side-effects, and lifecycle events on every state change.

Hierarchical business units

Departments, divisions, regional teams. Configurable maximum depth (default three levels), each unit carrying its own users, addresses, and payment methods. The buyer organisation as a tree, not a flat list of contacts.

Roles and permissions per company

Define customer-side roles inside each company (Admin, Buyer, Approver, Viewer), assign granular permissions: PlaceOrders, ApproveOrders, ManageUsers, ManageAddresses, ManagePaymentMethods, ViewAllOrders, and more. Eleven built-in permissions, plus your own.

Company-level addresses

Shared shipping and billing addresses at the company or business unit level. Buyers select from the shared list at checkout; the org admin manages the catalogue of addresses in one place. No copy-paste between buyer profiles.

Company-level payment methods

Pre-approved payment methods per company, with terms. NET-30 invoicing for the enterprise customer, card-on-file for the smaller business unit, custom methods for specific contracts. Linked to Vendure's underlying payment methods.

Adjacent pluginsone organisation tree
Approval workflows
reads BusinessUnits + Roles
Quote management
reads CompanyUser
Company accounts
Company
BusinessUnit
CompanyUser
B2B pricing
reads Company group
Order attribution
reads Company + BusinessUnit

The hub every B2B plugin routes through

Company Accounts is the data model the rest of the B2B story builds on. Every adjacent plugin reads from the same organisation tree:

  • Approval Workflows reads the company hierarchy and business units to resolve the right approver.
  • Quote Management attaches quotes to company users for ownership and scope.
  • B2B pricing applies customer-group prices per company.
  • Order attribution stamps every order with company and business unit context, so reporting and reorder both see the right organisation.

That coherence is the point. Vendure Platform models one buyer organisation, then every B2B plugin reads from the same place. No webhook glue, no parallel data model maintained in two systems.

Company state processone lifecycle
Sales provisions
top-down
Customer registers
public flow
Pending
onboarding
Active
tradinginvitations
Closed
offboarded
Denied
rejected
Suspended
on hold
lifecycle event fires
state transitionuser invitationrole assignment

Three onboarding shapes, one model

Three common patterns, all served by the same data model.

Extension surface7 entities · 8 strategies
Entities
Company
field
CompanyUser
field
CompanyBusinessUnit
field
CompanyRole
field
CompanyPermission
field
CompanyAddress
field
CompanyPaymentMethod
field
Pluggable strategies
companyProcessslot
companyUserProcessslot
activeCompanyResolutionslot
permissionEvaluationslot
companyRegistrationslot
orderAttributionslot
customerCreationslot
invitationHandlingslot
Lifecycle events fire on
state transitionuser invitationrole assignment

Pluggable strategies, custom fields on every entity

Pluggable strategies cover the lifecycle end to end: company state process, company-user state process, active-company resolution, permission evaluation, company registration, order attribution, customer creation, and invitation handling.

Custom fields sit on every company entity (Company, CompanyUser, CompanyBusinessUnit, CompanyRole, CompanyPermission, CompanyAddress, and CompanyPaymentMethod), so business-specific data lives on the same records.

Lifecycle events fire on every state transition, user invitation, and role assignment. When the business asks for a sixth company state, a custom permission, or a different invitation flow for partner accounts, your team ships it in TypeScript.

Trusted by complex B2B commerce and enterprise retail.

FAQ

What B2B teams ask about the account model

Common questions when evaluating Company Accounts against B2C-plus-fields or a custom-built B2B portal.

B2B procurement stackcomposes on one foundation
Approval workflows
reads BusinessUnits + Roles
Quote management
reads CompanyUser
B2B pricing
reads Company group
Order attribution
reads Company + BusinessUnit
Company accountsfoundation
one organisation tree
Companycustom-field
BusinessUnitscustom-field
Userscustom-field
Rolescustom-field
Permissionscustom-field
Addressescustom-field
Paymentscustom-field
Exposed via
GraphQL · RESTlifecycle events8 strategies

Part of the full B2B procurement stack

Company Accounts is one of six B2B buying plugins on Vendure Platform. The full procurement motion attaches here.

Ready when you are

See Company Accounts in action

Sixty minutes with one of our team. A short platform overview, then a walkthrough of your B2B account model against the plugin.