Overview
The Sales Channel Module manages different sales channels for your commerce operations. Sales channels allow you to organize products, orders, and inventory across different storefronts, marketplaces, or distribution channels. Key Features:- Multiple sales channel support
- Channel-specific product availability
- Channel-based order tracking
- Inventory management per channel
- Channel metadata and customization
When to Use
Use the Sales Channel Module when you need to:- Manage multiple storefronts (web, mobile app, etc.)
- Sell on different marketplaces
- Separate B2B and B2C channels
- Track sales by channel
- Control product availability per channel
- Support multi-brand commerce
- Implement channel-specific pricing or promotions
Data Models
SalesChannel
Represents a sales channel or storefront.string
required
Unique sales channel identifier
string
required
Sales channel name
string
Sales channel description
boolean
Whether the channel is disabled (default: false)
object
Additional custom data
Service Interface
The Sales Channel Module service is available at@medusajs/medusa/sales-channel.
Create Sales Channel
Create a new sales channel.CreateSalesChannelDTO | CreateSalesChannelDTO[]
required
SalesChannelDTO | SalesChannelDTO[]
The created sales channel(s)
Retrieve Sales Channel
Get a sales channel.string
required
The ID of the sales channel to retrieve
FindConfig
Configuration for the query
SalesChannelDTO
The retrieved sales channel
List Sales Channels
List all sales channels.FilterableSalesChannelProps
SalesChannelDTO[]
Array of sales channels
Update Sales Channel
Modify a sales channel.string
required
ID of the sales channel to update
UpdateSalesChannelDTO
required
Delete Sales Channel
Remove a sales channel.Integration Examples
With Product Module
Associate products with sales channels.With Cart Module
Create carts for specific channels.With Order Module
Track orders by sales channel.With Inventory Module
Channel-specific inventory availability.Common Use Cases
Multi-Storefront
Marketplace Integration
B2B vs B2C
Multi-Brand
Best Practices
- Channel Naming: Use clear, descriptive names that identify the channel’s purpose (“Website”, “Mobile App”, “Amazon”, etc.).
-
Metadata Usage: Store channel-specific configuration in metadata:
- API credentials for marketplace integrations
- Channel type (b2b, b2c, marketplace)
- Brand identifiers
- Custom settings
- Default Channel: Create a default sales channel for your primary storefront during initial setup.
-
Disabled Channels: Use
is_disabledinstead of deleting channels to maintain historical data and reporting. - Product Availability: Control which products appear in each channel using product-sales channel links (managed via workflows).
-
Analytics: Track performance by channel by filtering orders, carts, and sales data by
sales_channel_id. -
Channel Context: Always include
sales_channel_idwhen:- Creating carts
- Creating orders
- Checking product availability
- Calculating prices
Related Modules
- Product Module - Control product availability per channel
- Cart Module - Create channel-specific carts
- Order Module - Track orders by channel
- Inventory Module - Channel inventory management