Skip to main content

Channels

Sales channels allow you to model your data across different regions, brands, and business models where data can be customized and shared across different channels. Another way to describe channels is the ability to serve customers and markets differently from a single backend instance.

Relationships and scope

Adding a channel creates a wide scope of customization options; below is the degree of customization per entity:

EntityDegree of customization per channel
CheckoutContextualized to a channel to display the appropriate stock, prices, taxes, etc.
ProductControl visibility, availability, search, publication date
VariantsControl availability and price
TaxesControl calculation methods, gross or net, country exceptions
VouchersControl availability, discount values, rules
OrdersContextualized to the channel and required channel permission for access.
PromotionsControl availability, rules, and pricing
Payment flowSettings for authorization, payment conditions, expiration, etc.
CurrencyChannel belongs to a single currency.
WarehousesAvailability
Permission groupAssigned to channels to control access to sensitive data
Shipping ratesAvailability, price, order total conditions
Shipping zonesAvailability

How Channels are used

  • Multiple geographical markets:. Each market has different prices, taxes, shipping options, stock availability, back-office integrations, etc.

  • B2B and B2C: Customer types can map Channels to grant exclusivity of prices and services.

  • Different Legal Entities: Businesses that have different legal entities can restrict access to customer and order data per entity

  • Distribution channels: Serving physical and online channels

  • Multi-brand: Businesses that wish to share customer data, loyalty programs, and products but want separate order data.

  • A/B testing: Testing different pricing strategies for product and fulfillment.

  • External channels: Create dedicated channels for marketplaces or other sales platforms.

Not ideal for

  • Dynamic Currency conversion. Each channel can have a different currency; however, Checkout belongs to a single channel, so converting to another channel would not be straightforward. That is because each channel can have different stock, prices, taxes, etc.

  • Customer-specific pricing. Potentially, you could serve customers differently using channels, but note that each channel also adds configuration complexity. See relationships and scope for more details.;

  • Supplier-specific pricing. If you wish to sell a single product at a different price depending on the supplier, using channels would not work because each checkout is scoped to a single channel; you would have to implement price list functionality instead. See example repository.

Channel access control

Admin access to order data can be configured on a channel level, this is useful for businesses that have different legal entities that should not have access to each other's data. Other objects such as products, vouchers, shipping, can belong to multiple channels at once so their permissions are not scoped per channel to avoid complexity.

Data model

Channels data model