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.
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.
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.
Three onboarding shapes, one model
Three common patterns, all served by the same data model.
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.
What B2B teams ask about the account model
Common questions when evaluating Company Accounts against B2C-plus-fields or a custom-built B2B portal.
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.




