1 つの販売チャネルアプリが、1 つのショップ上で複数のチャネル接続を作成・管理できるようになった。接続ごとに別々の specification(仕様ファイル)や外部アカウントを持てる。これまでアカウントや市場ごとにアプリを分割していたモデルを、1 アプリ内に集約できる。
別アカウントや別市場で売りたいと、その数だけアプリを作って分散管理。コードもインフラも重複。
接続を 1 アプリ内に保持し、それぞれを「別個のチャネル」として管理。分割が不要になる。
specificationHandle で別々の仕様を指し、accountId / accountName で別々の外部アカウントに紐づく。
同じショップ上に、1 つの販売チャネルアプリが複数のチャネルを確立できる。
Channel Config 拡張に加え、ターゲットチャネルごとに 1 つの specification ファイルを持てる。
各チャネルは、別々の specification と別々の外部アカウントを指し示せる。
すべての新しい販売チャネルは Channel Config 拡張を追加する。
ターゲットチャネルごとに 1 つの specification ファイルを定義する。
specificationHandle・accountId・accountName を渡して各チャネル接続を作る。
レガシーな販売チャネルアプリを、移行ガイドに沿って「チャネル接続(channel connections)」を使う方式へ移行する。
チャネル固有の状態を読み書きしているなら、アプリレベルの既定値に頼らず channel ID を明示的に渡すよう直す。
channelチャネルの取得
channelCreateチャネル接続を作成
channelByHandlehandle でチャネル取得
channelUpdateチャネルを更新
channelDeleteチャネルを削除
channelFullSyncチャネルのフル同期
今日時点では動作するが、将来の API バージョンで削除される。
| 非推奨 API | 代わりに使う |
|---|---|
publishablePublishToCurrentChannel | publishablePublish |
publishableUnpublishToCurrentChannel | publishableUnpublish |
AppInstallation.channel | ルートレベルの channels クエリ |
AppInstallation.publication | ルートレベルの publications クエリ |
Product.publishedOnCurrentPublication | publishedOnPublication |
Publishable.resourcePublicationOnCurrentPublication | resourcePublications |
bulkProductResourceFeedbackCreate
どのチャネルに対する操作かを channelId で指定可能に。
bulkProductPublicationStatusUpdate
同上。複数チャネルを作るアプリでは channelId の指定が必須。
channelId の引き渡しが必須。 単一チャネルのアプリなら、既存の呼び出しは変更なしでそのまま動く。新しい販売チャネルはすべて Channel Config 拡張を追加する。これが複数チャネルを束ねる土台になる。
ターゲットチャネルごとに specification ファイルを定義。各チャネルは別仕様・別外部アカウントを指せる。
specificationHandle・accountId・accountName をセットで渡し、各チャネル接続を作成する。
チャネル固有の状態を読み書きするコードは、アプリレベルの暗黙の既定に頼らず channelId を明示的に渡すよう改修する。
publishablePublishToCurrentChannel や Product.publishedOnCurrentPublication などの「カレント」前提 API は非推奨に。今は動くが将来の API バージョンで削除されるため、publishablePublish やルートレベルの channels / publications クエリへ早めに寄せる。
channelCreate に accountId / accountName を渡して接続を量産する。channelCreate だけで完結。channelId を伴わせる。channelCreate。bulkProductPublicationStatusUpdate に channelId を渡して市場別の公開状態を制御する。channelId の指定は必須。市場マッピングを内部で持ち、API 呼び出しに必ず添える。...ToCurrentChannel / ...OnCurrentPublication 系の単一チャネル前提 API に依存。将来の API バージョンで削除されると動かなくなる。publishablePublish やルートレベル channels / publications クエリへ置換し、下流コードに channelId を通す。channelCreate が基本形。channelId ベースへ早めに移行するのが安全。」