Run omnichannel commerce on one backend
Sell across web, mobile apps, marketplaces, social, and the store counter from one Vendure backend. One catalogue, one inventory view, one customer and order record behind every channel, so a new touchpoint is a configuration step, not another commerce stack to run.
Every channel on its own stack fractures the customer
Adding a channel usually means adding a system. A separate storefront platform, a marketplace integration that keeps its own catalogue, a point-of-sale that syncs overnight, an app backend with its own cart. Inventory drifts between them, pricing diverges, and the customer who buys on the app and returns in store looks like two different people. Every new channel widens the gap between what you sell and what any one system actually knows.
Vendure closes it. Channels are a first-class primitive in Vendure, and the API is headless and API-first, so one backend serves every customer-facing surface from a single catalogue, inventory pool, pricing engine, and customer and order model. A new channel is a configuration step on the platform you already run, not another stack to integrate and keep in sync.
Reach every channel from a single commerce backend
Vendure is headless and API-first, so the same backend powers every customer-facing channel through one GraphQL API. Build each surface in whatever framework fits it; they all read one catalogue, one inventory pool, and one customer and order record.
Web storefronts
Next.js, Remix, Nuxt, or any framework you choose, all served by the same GraphQL API. Run several storefronts off one backend without forking the catalogue.
Native mobile apps
iOS and Android apps consume the same API as the web storefront, sharing carts, accounts, and order history. No separate mobile backend to build and keep in sync.
Marketplaces
Connect marketplaces such as Amazon or eBay through a plugin that syncs the canonical catalogue, and route their orders back through the same fulfilment pipeline as every other channel.
In-store and POS
Point-of-sale and clienteling apps call the same API for live stock, pricing, and customer lookup, so the store counter sees the same inventory and the same customer as the web.
Social and live commerce
Drive checkout from social, messaging, or live-shopping surfaces through the headless API, without standing up a parallel catalogue or a second cart.
One inventory, one customer
Every channel reads the same stock levels, prices, and customer and order data. A buyer who starts on mobile and returns in store is one record, not three.
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.
Need hard isolation? Run a tenant per deployment
Most omnichannel programmes run on channels: brands, regions, marketplaces, and B2B segments share one deployment, one admin, and one canonical catalogue. When a tenant needs a different feature set, hard data isolation, or independent spin-up and teardown, Vendure also runs as one codebase with a separate instance and database per tenant, on the same plugin ecosystem and upgrade path. The two patterns compose: a multi-tenant deployment can still run channels inside each tenant. The FAQ below covers when to pick which.
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.

After we set up a demo system on IBM's internal hybrid cloud platform, we were convinced that, out of the box, it would provide 90% of the ecommerce functionality our stores required, and that we would be able to build out the other 10% ourselves.

What teams ask about omnichannel commerce on Vendure
Common questions from engineering teams sizing an omnichannel or multichannel rollout on Vendure.




