From saleor-commerce
Configures Saleor channels for multi-currency, multi-region sales, per-channel pricing, warehouse allocation, and multi-brand setups. Use for multi-channel e-commerce management.
npx claudepluginhub orcaqubits/agentic-commerce-skills-plugins --plugin saleor-commerceThis skill is limited to using the following tools:
**Fetch live docs**:
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides MCP server integration in Claude Code plugins via .mcp.json or plugin.json configs for stdio, SSE, HTTP types, enabling external services as tools.
Fetch live docs:
https://docs.saleor.io/docs/developer/channels for channels overviewsite:docs.saleor.io channel configuration currency countries for channel setup referencesite:docs.saleor.io per-channel pricing product for channel-aware pricingsite:docs.saleor.io warehouse allocation channels for warehouse-channel mappingsite:docs.saleor.io multi-brand multi-tenant channels for multi-brand patternsA channel represents a distinct sales context within a single Saleor instance. One Saleor deployment can serve multiple storefronts, regions, brands, or business models -- each as a separate channel.
| Aspect | Detail |
|---|---|
| One instance | Single Saleor backend, shared catalog and infrastructure |
| Many channels | Each channel has its own currency, countries, pricing, and settings |
| Isolation | Customers see only channel-scoped data (prices, availability) |
| Staff access | Staff can manage all channels from one Dashboard |
| Field | Type | Purpose |
|---|---|---|
name | string | Human-readable channel name |
slug | string | URL-safe identifier (used in API queries) |
currencyCode | string | ISO 4217 currency code (e.g., USD, EUR, GBP) |
defaultCountry | string | ISO 3166-1 alpha-2 country code |
countries | string[] | Countries where this channel operates |
isActive | boolean | Whether the channel is publicly accessible |
stockSettings.allocationStrategy | enum | PRIORITIZE_HIGH_STOCK or PRIORITIZE_SORTING_ORDER |
orderSettings.automaticallyConfirmAllNewOrders | boolean | Auto-confirm orders |
orderSettings.automaticallyFulfillNonShippableGiftCard | boolean | Auto-fulfill digital gift cards |
checkoutSettings.useLegacyErrorFlow | boolean | Legacy vs new error handling |
Products have base prices, but each channel can define its own pricing:
| Pricing Layer | Scope | Purpose |
|---|---|---|
| Product variant price | Per channel | Base selling price in channel currency |
| Cost price | Per channel | Cost of goods for margin calculation |
| Channel currency | Per channel | All prices in this channel use this currency |
| Tax configuration | Per channel | Tax calculation rules |
| Discounts | Per channel | Promotions scoped to specific channels |
| Entity | Channel-Scoped Fields |
|---|---|
| Product variant | channelListings.price, channelListings.costPrice |
| Product | channelListings.isPublished, channelListings.publishedAt, channelListings.isAvailableForPurchase |
| Collection | channelListings.isPublished, channelListings.publishedAt |
| Shipping method | channelListings.price, channelListings.minimumOrderPrice, channelListings.maximumOrderPrice |
| Voucher | channelListings.discountValue, channelListings.minSpent |
Each channel defines a set of countries it serves:
| Aspect | Detail |
|---|---|
| Shipping | Only shipping methods for assigned countries are available |
| Tax | Tax rules are applied based on channel country settings |
| Address validation | Checkout validates against channel's country list |
| Warehouse selection | Warehouses are linked to countries within channels |
Warehouses and channels are connected through country assignments:
| Concept | Relationship |
|---|---|
| Warehouse | Has a list of shipping zones it serves |
| Shipping zone | Has a list of countries |
| Channel | Has a list of countries |
| Allocation | Saleor allocates stock from warehouses that serve the channel's countries |
| Strategy | Behavior |
|---|---|
PRIORITIZE_SORTING_ORDER | Allocate from warehouses in their configured sort order (default) |
PRIORITIZE_HIGH_STOCK | Allocate from the warehouse with the most stock |
Most storefront queries require a channel argument:
| Query | Channel Behavior |
|---|---|
products(channel: "us") | Returns products published in the US channel |
product(slug: "tee", channel: "us") | Returns US-channel pricing and availability |
collections(channel: "us") | Returns collections published in the US channel |
checkout(channel: "us") | Creates checkout with US currency and settings |
shippingMethods(channel: "us") | Returns methods available for US channel countries |
Queries without the channel argument are reserved for staff/admin operations and return data across all channels.
| Mutation | Purpose |
|---|---|
channelCreate | Create a new channel with currency and country settings |
channelUpdate | Modify channel settings (countries, stock strategy) |
channelDelete | Remove a channel (irreversible) |
channelActivate | Make a channel publicly accessible |
channelDeactivate | Hide a channel from public access |
| Input Field | Required | Purpose |
|---|---|---|
name | Yes | Display name |
slug | Yes | URL-safe identifier |
currencyCode | Yes | Channel currency |
defaultCountry | Yes | Primary country |
addCountries | No | Additional countries |
stockSettings | No | Allocation strategy |
orderSettings | No | Auto-confirm, fulfillment rules |
Channels enable multi-brand commerce from a single Saleor instance:
| Brand | Channel | Storefront | Currency |
|---|---|---|---|
| Brand A (US) | brand-a-us | brand-a.com | USD |
| Brand A (EU) | brand-a-eu | brand-a.eu | EUR |
| Brand B (US) | brand-b-us | brand-b.com | USD |
| Wholesale | wholesale | wholesale.brand-a.com | USD |
| Aspect | Approach |
|---|---|
| Product catalog | Shared catalog, per-channel publication and pricing |
| Customers | Shared customer base across channels |
| Orders | Each order belongs to one channel |
| Staff permissions | Channel-level access control for staff members |
| Apps | Apps can be channel-aware or cross-channel |
| Warehouses | Shared warehouses, per-channel allocation |
| Permission | Scope |
|---|---|
MANAGE_CHANNELS | Create, update, delete channels |
| Channel-restricted staff | Staff members can be limited to specific channels |
| App permissions | Apps operate across all channels unless filtered |
us-store, eu-store)PRIORITIZE_SORTING_ORDER allocation strategy when warehouse priority mattersFetch the Saleor channels documentation for exact mutation inputs, allocation strategy details, and multi-brand configuration patterns before implementing.