One backend for every brand, region, and tenant
Run catalogue, pricing, currency, language, tax, shipping, and admin roles scoped per channel. One Vendure backend models every brand, region, dealer network, marketplace tenant, and B2B segment you operate, with a per-tenant deployment path when a tenant needs full isolation.
One platform per brand multiplies your platform tax
The default enterprise move for a second brand, a new region, or a marketplace tenancy is another platform: another admin to operate, another database to keep in sync, another integration footprint into the ERP, the warehouse, and the identity provider. Customer data splits across instances, catalogue drifts, and pricing logic ends up in three different places. Every new market doubles the maintenance bill.
Vendure refuses that trade-off. Channels are a first-class primitive built into Vendure Core. One Vendure backend models every storefront, region, dealer, marketplace tenant, and B2B segment, and each channel scopes its own catalogue, pricing, currency, language, tax, shipping, and roles. You run one codebase and one canonical data model instead of a separate platform per brand.
Every lever channels expose
A new channel is a configuration step, not a parallel build. Channel awareness is wired through Vendure end to end, so core primitives like catalogue, pricing, and customers and the layers around them all inherit the same channel context.
Channel-scoped catalogue
Product availability is set per channel. Canonical products live in a shared catalogue model; each channel selects which products it sells and overrides what it needs to override. One catalogue model, many channel views.
Channel-scoped pricing
Per-channel price lists, promotions, and tax-inclusive vs exclusive behaviour. Override a price on the channel without forking the product. The pricing engine respects channel context at the lookup, the cart, and the order.
Currencies per channel
Each channel has a default currency and can support multiple currencies inside that channel. EUR for the European storefront, USD for the US one, NOK for the Nordics, all on one deployment.
Languages per channel
Channel-scoped translations for products, collections, and content. The same canonical product carries a Swedish translation in the Hemglass channel and an English one in the export channel, with channel-level fallbacks you control.
Tax and shipping per channel
Channel-scoped tax zones, tax categories, shipping methods, and fulfillment rules. Sell into a new region by configuring the channel, not by standing up another commerce stack to handle its tax engine.
Channel-scoped roles and permissions
Admin operators are scoped to one or more channels. A brand team logs in and sees only its brand. A regional manager sees only their region. A cross-channel super-admin keeps the full view. One admin app, channel-aware access.
Channel-scoped inventory and stock locations
StockLocation is a channel-aware entity. Inventory pools and fulfilment routing attach to the channel, so the same SKU ships from a UK warehouse on the UK channel and a German one on the DE channel.
Channel-aware plugins and integrations
The plugin system resolves channel context at runtime, so payment providers, shipping calculators, and search indexes fire with different settings per channel. Wire Stripe on D2C and a B2B invoicing provider on wholesale, by configuration.
Channel-aware events and webhooks
Domain events and outgoing webhooks carry the channel on the payload. Downstream systems (ERP, OMS, search, analytics, marketing) route or filter by channel directly, instead of inferring it from order metadata.
How channels work in code and data
Because the channel is a core entity, queries are scoped to the active channel automatically: there is no per-query channel filter to maintain and no row leakage between brands. The items below show how the channel entity is modelled to make that scoping automatic.
Five commerce models channels make possible
The channels primitive supports five commerce models, all on one deployment.
When channels are not enough, run a tenant per deployment
Most multi-brand and multi-tenant programmes use both patterns. Channels carry brands that share a feature set on a single deployment; a separate deployment per tenant fits tenants that need different feature sets, hard data isolation, or independent spin-up and teardown. For that case, Vendure runs as one codebase with one instance and one database per tenant. Every tenant stays on the same plugin ecosystem and upgrade path, fully isolated.
Trusted by complex B2B commerce and enterprise retail.
What engineering leads say about Vendure
Engineering leads on what it's like to build commerce on Vendure.
What convinced me about Vendure is its fundamentally well-architected codebase. It's clear, intuitive, and easy to extend, making it adaptable to virtually any use case.

Our peer-to-peer sharing marketplace builds on proven e-commerce components, but only Vendure offered the flexibility to seamlessly integrate our complex business logic. Its modern tech stack and use of established frameworks enable us to work efficiently and build a maintainable long-term solution.

What teams ask about multi-channel on Vendure
Common questions from engineering teams sizing a multi-channel or multi-tenant rollout on Vendure.




