バンドル可用性

前提条件として、バンドル親および関連するアイテム・コンポーネントがセットアップされていることを確認します。 バンドル親のセットアップおよびアイテム・コンポーネントの関連付けについて詳しくは、 バンドルを参照してください。

フルフィルメント・マネージャーは、要求時にすべてのバンドル・コンポーネント・アイテムが使用可能であることを確認する必要があるため、バンドル可用性を取得することは、オーダー・キャプチャーにとって重要なステップです。 そうでない場合、オーダーは、望ましくないショッパー・エクスペリエンスにつながるバックオーダー状況になります。 アプリケーションは、バンドル親アイテム 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で構成され、現在の在庫状況ピクチャーと一致する場合、結果は 3 数量の Motor Oil Change Kit (3 × 4 モーター・オイル、 3x ファネル、および 3x ドレーン・パン、 Node1、 Node2全体、およびドレーン・シナリオであるとします。 一方、 Node1 と Node2で構成される分配グループ DG2 の場合、 Node1 と Node2の間で共有されるドレーン・パンが正確に 1 つあるため、モーター・オイル・チェンジ・キットの可用性は 1 つの数量になります。

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

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

実動可用性 API の動作は、製品の親 (バリエーションのあるアイテム) に似ています。ここで、 lineId=0 は常に、バンドルである親アイテムを参照しています。

ノードまたはネットワークのアベイラビリティー・ピクチャーが、[Node1,Node2,Node3] または DG1[[Node1,Node2,Node3] のモーター・オイル・チェンジ・キットで同じである場合、セットアップは次のようになります。
    • 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 ドレーン・パン