バンドル可用性

前提条件として、バンドルの親要素および関連するアイテムコンポーネントが設定されていることを確認してください。

フルフィルメント・マネージャーは、要求時にすべてのバンドル・コンポーネント・アイテムが使用可能であることを確認する必要があるため、バンドル可用性を取得することは、オーダー・キャプチャーにとって重要なステップです。 そうしないと、注文はバックオーダー状態となり、顧客体験の低下を招くことになります。 アプリケーションは、バンドル親アイテム ID を組み込むことによってバンドル・アイテムの在庫状況検索をサポートし、構成されたキット数量を考慮して在庫状況を返します。

フルフィルメント・マネージャーは、以下のいずれかの方法でバンドルの可用性を照会できます。
  • ノード間の可用性。これがデフォルトの動作です。
  • 単一ノードでの可用性。
  • 分配グループの可用性。
  • ノードまたはネットワークの可用性と、コンポーネントの明細の詳細。
構成済みバンドルの例を以下に示します。
  • バンドル・アイテム:
    • モーター・オイル交換キット
  • コンポーネント項目:
    • モーター・オイル 4 ユニット
    • 1 単位のファネル
    • 1 単位のドレイン・パン
各ロケーションの可用性ピクチャーが次のようになっているとします。
  • Node1: 4 つのモーター・オイル、1 つのファネル、1 つのドレーン・パン
  • Node2: 8 個のモーター・オイル、1 個のファネル、0 個のドレーン・パン
  • Node3: 8 個のモーター・オイル、2 個のファネル、2 個のドレーン・パン

ノード間の可用性

デフォルトでは、ノード可用性 API は、入力要求に含まれているノード間の可用性を検索します。 いずれかのノードにコンポーネント・アイテムがある限り、それらはバンドルの全体的な在庫状況について考慮されます。 要求ユーザーは、可用性要求で個々のノードを提供する必要があります。 含まれていないノードは考慮されません。 例えば、 Node1、 Node2、および Node3の現在の在庫ピクチャーでは、各コンポーネントの合計可用性は、20 個のモーター・オイル、4 個のファネル、および 3 個のドレーン・パンです。 したがって、モーター・オイル変更キットで販売可能な合計数量は 3 数量 (3 × 4 モーター・オイル、 3x ファネル、 Node1、 Node2、および Node3にわたる 3x ドレーン・パン) です。

在庫状況はノード間で考慮されるため、API は shipnodeAvailabilities エレメントの出荷ノード属性をスキップします。これは適用されないためです。 以下のサンプル応答を参照してください。
{
  "availabilityType" : "SELL",
  "lines" : [{
     "lineId" : "1",
    "deliveryMethod" : "SHP", 
    "itemId" : "MotorOilChangeKit", 
    "unitOfMeasure" : "EACH",
    "shipNodeAvailabilities" : [{
      "availableSupplies" : [
        "availableQuantity" : 3.0, "fromTs" : "2021-01-16T00:00:01.223Z","shortageQuantity" : 0.0,"toTs" : "2021-03-01T00:00:00.000Z"
      }]
    }],
    "shipNodes" : [ "Node1", "Node2"]
  }]
}
ノード全体で在庫状況を検索すると、フルフィルメント・マネージャーは、同じ時間フレームでアイテムを出荷できます。ただし、商品が同じパッケージまたは配送ボックスで出荷されるようにするためのビジネス要件が少ない場合に限ります。

単一ノードでの可用性

バンドル・アイテムを単一のパッケージで出荷する必要があるビジネス・ユース・ケースは、多くの場合、ギフト・パッケージ内にあります。 ギフト・パッケージは、ピッカーがバンドル上で追加サービスを提供できるように、同じノードからアイテムを出荷する必要があるという出荷制約を追加します。 例えば、ギフト・ラッピングやすべてのアイテムの一括出荷の確認などです。 これにより、フルフィルメント・マネージャーは、オーダー受信者がすべてのアイテムを単一の配達で一緒に受け取るようにすることができます。

ノード可用性 API には、単一ノードのビジネス・ユース・ケースでの可用性の処理をサポートする bundleAggregatesAcrossNodes=false ブール値照会パラメーターが含まれています。 例:
POST https://api.watsoncommerce.ibm.com/inventory/{tenantId}/v2/availability/node?bundleAggregatesAcrossNodes=false
Node1、 Node2、および Node3での現在の可用性では、 bundleAggregatesAcrossNodes=false での要求は異なる結果になります。
  • Node1: 4 つのモーター・オイル、1 つのファネル、1 つのドレーン・パン (最大: 1x モーター・オイル交換キット)
  • Node2: 8 個のモーター・オイル、1 個のファネル、0 個のドレーン・パン (ドレーン・パンがないため、ゼロ可用性)
  • Node3: 8 個のモーター・オイル、2 個のファネル、2 個のドレーン・パン (最大: 2x モーター・オイル・チェンジ・キット)

分配グループの可用性

ほとんどの場合、出荷ノードのネットワークは、参照しやすくするため、および各ノードの可用性 API 呼び出しでノードを手動で渡さないようにするために、分配グループとして事前定義されています。 ノード間の可用性機能と同様に、ユーザーは代わりに、バンドル可用性ルックアップを要求するための入力として配布グループを渡すことができます。

配布グループ「 DG1 」が、 Node1、 Node2、および Node3 で構成されていると仮定します。現在の在庫状況に合わせて計算すると、結果は「Motor Oil Change Kit」が3セット(4本入りのエンジンオイル3本、 3x の注油用ノズル、および 3x のドレンパンが、 Node1、 Node2、および Node3 にそれぞれ割り当てられる)となり、これはノードごとの在庫状況に基づくシナリオと同一の結果となります。 一方、 Node1 と Node2で構成される分配グループ DG2 の場合、 Node1 と Node2の間で共有されるドレーン・パンが正確に 1 つあるため、モーター・オイル・チェンジ・キットの可用性は 1 つの数量になります。

ノードおよびネットワークの可用性とコンポーネントの明細の詳細

標準ノードおよびネットワーク可用性 API を使用すると、バンドル親に対する可用性のみが返され、バンドル数量の導出方法は示されません。 ノードまたはネットワーク可用性製品の日付別の内訳 API を使用することにより、ユーザーは、コンポーネントの可用性の内訳に関する追加の洞察を得ることができます。

在庫状況APIの動作は、親商品(バリエーションを持つ商品)の場合と同様であり、ここでは lineId=0 常に親商品(バンドル)を参照しています。

[ Node1,Node2,Node3 ]、 DG1[Node1、 Node2,Node3 ] のいずれにおいても、Motor Oil Change Kit のノードまたはネットワークの可用性状況は同じであり、設定は
  • Node1: 4 つのモーター・オイル、1 つのファネル、1 つのドレーン・パン
  • Node2: 8 個のモーター・オイル、1 個のファネル、0 個のドレーン・パン
  • Node3: 8 個のモーター・オイル、2 個のファネル、2 個のドレーン・パン
これを簡略化すると、次のようになります:
  • LineId=0, 1x MotorOilChangeKit
  • LineId=1、 20x モーター・オイル
  • LineId=2、 4x ファネル
  • LineId=3、 3x ドレーン・パン