1.1.30
APIの概要
Inventory Availability API を使用すると、Omnichannel Inventory 内で在庫の入手可能性を取得し、在庫更新を実行できます。
Inventory Availability API は、次の機能カテゴリに分類できます。
| カテゴリ | エンドポイントの説明 |
|---|---|
| 在庫の入手可能性 | グループおよびロケーションの在庫 SKU の入手可能性を取得するための API エンドポイント。単一のグループ、または複数のロケーションに対して、複数の SKU を照会できます。 |
| 在庫の更新と削除 | 特定の SKU の在庫の入手可能性を更新および削除するための API エンドポイント。 |
| 差分 | グループまたはロケーション内の SKU に発生した変更ストリームを読み取るための API エンドポイント。 |
注: Omnichannel Inventory では、組織 ID の代わりにテナントグループ ID を使用します。詳細については、構成値を参照してください。
レート制限
ロードシェディングとレート制限の詳細については、ロードシェディングとレート制限を参照してください。
認証と認可
Omnichannel Inventory を呼び出すクライアントは、次の 2 つのいずれかの方法で認証できます。
- B2C Commerce の認証情報を使用して Account Manager で認証します。
- Salesforce org の認証情報を使用して認証します。
B2C Commerce と Salesforce Order Management の両方を使用している場合は、どちらの認証アプローチも使用できます。ただし、統合全体でアプローチが混在するのを避けるため、どちらか 1 つのみを選択することを推奨します。 認証アプローチが異なっていても、API の用途やパフォーマンスには影響しません。 各認証アプローチでは、それぞれ固有のスコープセットを使用します。
| Account Manager 認証のスコープ | Salesforce org Authentication 認証のスコープ |
|---|---|
| sfcc.inventory.impex-graphs | sfcc_inventory_impex_graphs |
| --- | --- |
| sfcc.inventory.impex-inventory.rw | sfcc_inventory_impex_inventory_rw |
| sfcc.inventory.impex-inventory | sfcc_inventory_impex_inventory |
| sfcc.inventory.availability | sfcc_inventory_availability |
| sfcc.inventory.availability.rw | sfcc_inventory_availability_rw |
| sfcc.inventory.reservations | sfcc_inventory_reservations |
| sfcc.inventory.reservations.rw | sfcc_inventory_reservations_rw |
API ゲートウェイ経由で Omnichannel Inventory を呼び出す場合は、有効な OAuth ベアラートークンが必要です。Omnichannel Inventory で使用されるテナント識別子は、トークンのヘッダーで指定されます。 すべてのリクエストボディおよびレスポンスボディのエンティティは、JSON で構成されます。
ユースケース
Inventory Availability (在庫の入手可能性)
これらの API エンドポイントを使用すると、グループおよびロケーションの在庫 SKU の入手可能性を取得できます。単一のグループ、または複数のロケーションに対して、複数の SKU を照会できます。
Group Availability (グループの入手可能性)
このエンドポイントを使用すると、URL パラメーターで指定した条件に基づいて、グループ識別子と複数の SKU に対する在庫の入手可能性を取得できます。リクエストが成功すると、要求されたグループと SKU の品目の入手可能性データがレスポンスに含まれます。
Location Availability (ロケーションの入手可能性)
このエンドポイントを使用すると、リクエストボディで指定した条件に基づいて、複数のロケーション識別子と SKU に対する在庫の入手可能性を取得できます。リクエストが成功すると、要求されたロケーションと SKU の品目の入手可能性データがレスポンスに含まれます。
在庫の更新と削除
これらの API エンドポイントを使用すると、特定の SKU の在庫の入手可能性を更新および削除できます。
Updates (更新)
これらのエンドポイントを使用すると、単一のロケーション、または複数ロケーションのバッチに対する在庫の入手可能性データを更新できます。
Single Location (単一ロケーション)
このエンドポイントを使用すると、特定のロケーション識別子と SKU に対する在庫の入手可能性を更新できます更新するデータは、リクエストボディで指定します。
Batch of Locations (ロケーションのバッチ)
このエンドポイントを使用すると、複数のロケーションと SKU を更新できます。品目の入手可能性レコードのストリームは、リクエストボディで指定します。
Deletes (削除)
クライアントは、これらのエンドポイントを呼び出して在庫の入手可能性データを削除します。現在の値はリセットされますが、履歴は保持されます。
Location (ロケーション)
このエンドポイントを使用すると、URL パラメーターで指定した条件に基づいて、ロケーション内の SKU を削除できます。
Group (グループ)
このエンドポイントを使用すると、URL パラメーターで指定した条件に基づいて、グループ内の SKU を削除できます。
Deltas (差分)
このエンドポイントを使用すると、URL パラメーターとして場所識別子 (たとえば、グループやロケーション) とトークンを指定して、在庫の入手可能性の変更をリクエストできます。レスポンスには、そのトークンの作成以降に発生した変更を含む在庫の入手可能性データのストリームが含まれます。リクエストが成功するたびに、次回の delta 呼び出し用の 新しい トークンが返されます。delta トークンを生成する方法はいくつかあります。1 つ目は、エクスポート処理を実行する方法です。在庫エクスポートから delta トークンを取得する方法の詳細については、Inventory Impex API を参照してください。delta トークンは、Create New Delta Token API 呼び出しを使用して作成することもできます。この呼び出しの詳細については、Inventory Availability API ドキュメントを参照してください。
get deltas 機能を実装する際は、delta 情報を取得する呼び出しを 2 つのストリームに集約することを強く推奨します。1 つ目のストリームでは、delta トークンを作成し、その後、すべての独立ロケーションに対して処理します。2 つ目のストリームでは、delta トークンを作成し、その後、すべてのロケーショングループに対して処理します。これらの delta トークンは、前述の Create New Delta Token API 呼び出しを使用して作成されます。その後、呼び出し元は結果をフィルタリングして処理できるため、get deltas 機能の使用時に最適なパフォーマンスを実現できます。
上記で説明した 2 ストリーム方式を使用している場合、ロケーショングラフが変更され、新しい delta トークンが必要になることがあります。その場合は、Inventory Availability API ドキュメントに記載されている Update Delta Token API 呼び出しを使用してください。この update delta token 呼び出しを使用すると、既存の delta トークンにロケーションまたはグループを追加または削除できるため、新しい delta トークンを取得するためにエクスポートを実行するという従来の要件が不要になります。
Futures (将来在庫)
この API では、将来の在庫コレクションを futures と futureStock として参照しています。これらは同じものです。また、Inventory Impex API では、将来の在庫コレクションを futures として参照しています。
attributeSet (属性セット)
attributeSet は、品目に適用してその動作を変更できる属性のリストです。たとえば、groupEligibilityExclusion 属性を使用すると、特定のロケーションにおける SKU の集計対象から除外するグループの配列を適用できます。
共通レスポンスコード
次のエラーコードは、すべての API エンドポイントに適用されます。各エンドポイントで想定されるエラーコードとレスポンスボディの完全な一覧については、API ドキュメントを参照してください。
- 401 - OATH ベアラートークンがそのテナントに対して有効ではないか、またはすでに無効になっています。詳細はレスポンスボディに含まれます。
- 403 - テナントはシステムでプロビジョニングされていません。
- 5XX - サーバーエラーが発生しました。詳細はレスポンスボディに含まれます。
- Unknown - Unknown エラータイプが返された場合は、不明な内部エラーが発生したことを示します。
外部参照識別子
現在、コンシューマーがリクエストとともに ExternalRefId を送信できる箇所がいくつかあります。これにより、コンシューマーは、他の外部システムのデータに関連付けるためのリンクとして、ユーザー生成データをリクエストとともに送信できます。たとえば、注文 ID を持つ注文からデータを取得している場合、その注文 ID を予約リクエストとともに externalRefId として送信できます。これにより、予約に問題が発生した場合に、そのエラーまたは問題を生成した外部システム内の注文に関連付けることができます。これは、Salesforce Core やその他のサービスで使用されている externalRefId と混同しないでください。この使用方法は OCI 専用であり、他では使用されません。
Correlation-ID
Omnichannel Inventory での処理の追跡を容易にするために、Correlation-ID という名前のヘッダーに値を設定してください。この値は CDN を経由して、リクエストとともに OCI に送信されます。これにより、リクエストがサービス内を移動する際の追跡に役立ちます。受け入れられるには、correlation-id は有効な UUIDv2 である必要があります。そうでない場合は無視されます。
Web リクエストが CDN を経由する場合は、CDN の x-correlation-id ヘッダー値 (これはその ray-id に由来します) も関係します。この場合、指定された correlation-id は CDN の x-correlation-id の前に付加され、両方の値がコンマ区切りで渡されます。
一部のサービスでは、X-Correlation-ID ヘッダーを使用します。このヘッダーを Omnichannel Inventory で使用すると、CDN によって新しい値で上書きされるため、そのヘッダー本来の目的が失われます。一貫した結果を得るには、代わりに Correlation-ID を使用してください。
Let us know so we can improve!