Admin GraphQL API / 2026-07

Channel Markets
can now be created with the GraphQL Admin API

Starting with API version 2026-07, you can create a Market not only by country/region but also per sales channel. You can control product availability, pricing, and currency for each channel directly through the existing Catalog and Market APIs.

On this page
  1. What actually changes (understand it in 30 seconds)
  2. How it works: the structure of channel markets
  3. List of added APIs / fields
  4. Relationship to the existing Market types
  5. What app developers need to do
  6. Creation flow (3 steps)
  7. 5 key points for developers
  8. 3 practical use cases
  9. One-line summary for proposals

1What's actually changing

Until now, a Market could be scoped by "region, retail location, company location, or none."
Starting 2026-07 Markets scoped by "sales channel"= Channel Market can be created and updated via the GraphQL Admin API. You can tailor catalog, pricing, and currency per channel.

Before: Markets centered on "regions"

Markets could only be split by country/region, retail location, company location, or none. Per-channel differentiation couldn't be expressed with Markets.

Now: Channel-based Markets

MarketType.CHANNEL Create a Market tied to one or more channels. Control assortment, pricing, and currency through the existing Catalog and Markets APIs.

This is an additive change.Existing apps need no changes unless they create, query, or assume the shape of Markets or market catalogs.

2How it works: structure of a channel Market

Channel Market MarketType.CHANNEL conditions: channelsCondition Defined by channel conditions channelIds Associated channels Online Store POS / Retail External / Marketplace 1 Market : N Channels catalog / pricing Visibility settings Product visibility Per-channel pricing Currency Existing catalog/market API Product Feed Output Honors both the catalog and the publication settings
Product Feed output honors both settings: Channel market catalog configuration + the sales channel's own publishing controls. If either is unpublished, it won't appear.

3List of added APIs / fields

CategoryAPI / fieldPurpose
Identify MarketType.CHANNEL / MarketConditionType.CHANNEL Identify the channel market
Create MarketCreateInput.conditions.channelsCondition
MarketConditionsChannelsInput.channelIds
Pass a channel ID to create a channel market
Update MarketUpdateInput.conditions Add or remove channel conditions
Market-side query Market.channels / Market.channelsCount Get the channels linked to a Market
Channel-side query Channel.markets / Channel.marketsCount Get the Markets linked to a channel
Region check Channel.activeRegions Read the regions where a channel has an active product feed
Filtering markets(type: CHANNEL) Filter markets by type

4Relationship to the legacy Market type

The channel was added as "another Market type." Code that assumed Markets are region-only needs to be revisited.

Regional
By country/region
Retail location
retail-location
Company location
company-location(B2B)
Channel NEW
type: CHANNEL
Logic that hard-codes "a Market is one of regional, retail, company, or none" (switch statements, validation, type guards, etc.) willmiss the CHANNEL type. Update your exhaustiveness checks.

5What app developers need to do

① Revisiting your assumptions

Apps that handle Markets or catalogs should update all logic built on the assumption that "markets are only regional / retail / company / none." Add the CHANNEL type to your model.

② Creating a channel market

channelsCondition.channelIds Pass the channel ID to it, and from therethe existing Markets / catalog API assigns the catalog and pricing. There's no new API to learn.

Product feed output is determined bythe channel market's catalog settingsandthe sales channel's own publication controlsBoth continue to be respected. The app cannot override the published state.

6Creation flow (3 steps)

1

Collect channel IDs

Identify the target sales channel IDs andchannelsCondition.channelIds pass them to marketCreate to run.

2

Assign catalog and pricing

Use the existing Markets / catalog API to link the catalog (assortment) with price and currency settings.

3

Check the feed

Verify that the product feed output satisfies both the catalog settings and the channel's publication settings.

75 key points engineers should know

2026-07

1. Available only on 2026-07 and later

Enabled from API version 2026-07. It won't appear for clients pinned to an older version. To use it, bump your API version.

2. Bidirectional queries for 1 Market ↔ N channels

Market.channels and Channel.markets can be referenced in both directions.channelsCount / marketsCount Fetching just the count gives you a rough estimate before paginating.

3. Read regions with activeRegions

Channel.activeRegions returns the regions where a channel "has an active product feed." It's read-only information useful for visualizing channel × region coverage.

4. Feeds use a "two-stage gate"

Output = channel market catalog configuration AND channel publication controls. When the result isn't what you intended,which gate it was blocked atis what you need to isolate.

5. Audit your existing logic for full "market coverage"

Since this is an additive change, it won't break behavior, but any place that enumerates or branches on Market types (type guards, UI label handling, report aggregation,markets(type: ...) filters) tends to miss CHANNEL.Adding tests that handle type with exhaustive enum coverage firstand then implementing the feature is the safer approach.

83 use cases you can apply to your business

EC POS External By price
USE CASE 1

Centralize per-channel pricing and assortment with the API

Problem
You want to vary which products and prices appear across the online store, POS, and external marketplaces, but Markets can only be split by region, forcing manual or separate management.
Solution
Create a Market for each channel, MarketType.CHANNEL then assign catalogs and price settings. Manage everything in bulk from an app or script.
Impact
Per-channel assortment and pricing strategies become reproducible in code, reducing manual errors and speeding up rollout as you add channels.
Technical notes
Pricing and currency use the existing catalog/market API as-is. There's no new pricing API to learn.
Channel × Market
USE CASE 2

Per-channel coverage "visualization dashboard"

Problem
There's no way to get an overview of which channels are publishing feeds for which Markets and regions, so spotting gaps depends on individual know-how.
Solution
Channel.markets / Channel.marketsCount / Channel.activeRegions to build a channel × market × region matrix.
Impact
Instantly detect lost opportunities like "this channel isn't delivering to region X." Can be repurposed as recurring material for operational reviews.
Technical notes
The count field (...Count)to gauge the scale first, then fetch details via pagination for efficient API calls.
type CHANNEL
USE CASE 3

Updating an existing app for full Market coverage

Problem
Our app hardcodes Market types to regional, retail, company, and none, so stores with a CHANNEL market can hit broken layouts or missed aggregations.
Solution
MarketType Add an exhaustive enum test → fill in the CHANNEL branch, label, and validation → markets(type: CHANNEL) to verify filtering.
Impact
Get ahead of this additive change to proactively prevent bugs and support inquiries on stores that use channel markets.
Technical notes
Test after bumping the API version to 2026-07. If you stay pinned to an older version, the new type won't come through.

9One-line summary you can use in a proposal

"Starting in 2026-07, you can create a Market'per sales channel'(MarketType.CHANNEL).
the assortment, pricing, and currency for each channel can becontrolled directly with the existing Catalog/Market APIs, and since it's an additive change, existing apps just need to update their assumptions.
The feed honors both the catalog configuration and the channel's publication settings."