Receber por email
← Voltar para o catálogo

saleor-channels

Configure Saleor channels — multi-currency, multi-region, per-channel pricing, warehouse allocation, and multi-brand setups. Use when managing multi-channel commerce.

34estrelas
Atualizado há 5 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add OrcaQubits/agentic-commerce-skills-plugins

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/saleor-channels/svg)](https://www.skillteca.com.br/skills/saleor-channels)

Skills relacionadas

Ver todas de DevOps e Infra →

Alerta por categoria

Receba novas skills de DevOps e Infra toda segunda

1 email curto, só com as skills novas de DevOps e Infra. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Saleor Channels

Before writing code

Fetch live docs:

  1. Fetch https://docs.saleor.io/docs/developer/channels for channels overview
  2. Web-search site:docs.saleor.io channel configuration currency countries for channel setup reference
  3. Web-search site:docs.saleor.io per-channel pricing product for channel-aware pricing
  4. Web-search site:docs.saleor.io warehouse allocation channels for warehouse-channel mapping
  5. Web-search site:docs.saleor.io multi-brand multi-tenant channels for multi-brand patterns

Channel Concept

A 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 |

Channel Configuration Fields

| 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 |

Per-Channel Pricing

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 |

Pricing Assignment

| 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 |

Country Assignment

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 |

Warehouse Allocation

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 |

Allocation Strategies

| 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 |

Channel-Aware GraphQL Queries

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.

Channel Creation via GraphQL

| 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 |

Channel Creation Fields

| 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 |

Multi-Brand Architecture

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 |

Multi-Brand Considerations

| 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 |

Channel Permissions

| 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 |

Best Practices

  • Create separate channels for each currency -- Saleor requires one currency per channel
  • Use channel slugs that are descriptive and URL-friendly (e.g., us-store, eu-store)
  • Assign countries to channels carefully -- shipping and tax rules depend on this
  • Use the PRIORITIZE_SORTING_ORDER allocation strategy when warehouse priority matters
  • Publish products to channels explicitly -- unpublished products are invisible to storefronts
  • Restrict staff access to relevant channels using channel-level permissions
  • Use one channel per storefront for clear data isolation
  • Plan channel structure before going live -- migrating orders between channels is not supported

Fetch the Saleor channels documentation for exact mutation inputs, allocation strategy details, and multi-brand configuration patterns before implementing.

Compartilhar X LinkedIn