A single sales channel app can now create and manage multiple channel connections on a single shop. Each connection can have its own specification file and external account. The model of splitting apps per account or per market can now be consolidated into a single app.
If you wanted to sell under different accounts or in different markets, you built that many apps and managed them separately. Code and infrastructure were duplicated.
Connections are kept inside a single app and each is managed as a "separate channel." No more splitting.
specificationHandle a different specification, and links toaccountId / accountName a different external account.
A single sales channel app can establish multiple channels on the same shop.
In addition to the Channel Config extension,one specification file per target channelcan be provided.
Each channel can point to a separate specification and a separate external account.
Every new sales channel adds the Channel Config extension.
Define one specification file per target channel.
specificationHandle accountId accountName Pass these to create each channel connection.
Migrate legacy sales channel apps to use channel connections by following the migration guide.
If you read or write channel-specific state, do not rely on app-level defaults and pass the channel ID explicitlyinstead.
channelGet a channel
channelCreateCreate a channel connection
channelByHandleGet a channel by handle
channelUpdateUpdate a channel
channelDeleteDelete a channel
channelFullSyncFull sync of a channel
They still work today, but will be removed in a future API version.
| Deprecated APIs | Use instead |
|---|---|
publishablePublishToCurrentChannel | publishablePublish |
publishableUnpublishToCurrentChannel | publishableUnpublish |
AppInstallation.channel | Root-level channels query |
AppInstallation.publication | Root-level publications query |
Product.publishedOnCurrentPublication | publishedOnPublication |
Publishable.resourcePublicationOnCurrentPublication | resourcePublications |
bulkProductResourceFeedbackCreate
Lets you specify which channel an operation targets via channelId .
bulkProductPublicationStatusUpdate
Same as above. Apps that create multiple channels must specify channelId .
channelId . Single-channel apps can keep their existing calls unchanged.Every new sales channel must add a Channel Config extension. This is the foundation for bundling multiple channels together.
Define a specification file for each target channel. Each channel can point to a different spec and a different external account.
specificationHandle accountId accountName Pass these together to create each channel connection.
Refactor code that reads or writes channel-specific state to explicitly pass channelId instead of relying on implicit app-level defaults.
publishablePublishToCurrentChannel and Product.publishedOnCurrentPublication and other APIs that assume a 'current' context are now deprecated. They still work today, but will be removed in a future API version, so migrate early topublishablePublish or the root-level channels / publications query..
channelCreate to accountId / accountName to spin up connections in bulk.channelCreate and nothing else.channelId .channelCreate.bulkProductPublicationStatusUpdate , passing channelId to control publish state per market.channelId is mandatory. Keep the market mapping internally and attach it to every API call....ToCurrentChannel / ...OnCurrentPublication -family single-channel APIs. Once these are removed in a future API version, the apps will stop working.publishablePublish or root-level channels / publications queries, and thread channelId through downstream code.channelCreate is the basic pattern.channelId It's safer to migrate to the base early."