在庫予約および在庫状況 API の明細制限の例

Sterling Intelligent Promisingでは、可用性、日付別の可用性、および予約 API 要求に対して明細制限が課されます。 可用性の応答時間を最適化するには、可用性リクエストの分割の例を参照し、ノードのロケーションの長いリストを避けるために、ノードの可用性ではなく、ディストリビューション・グループの可用性を使用します。 予約 API 要求の場合、可用性と予約要求の間の負荷を最適化するために、すべての予約要求にわたって固定アクション制限が提供されます。

可用性 API 要求の応答時間の最適化

API アクションは、API 呼び出し内の個々のアイテム・ノード行の数です。 API アクションは、要求入力で提供される各項目ノードとして定義されます。 これらの API アクションには、在庫検索、約束、可用性、予約、供給または需要の調整、または外部システムにパブリッシュするイベントによって呼び出される照会または更新が含まれますが、これらに限定されるものではありません。 例えば、供給同期に 3 つのアイテム・ノード明細がある場合、これは 3 つの在庫アクションとしてカウントされます。 ただし、item-nodeが同じであっても、1行が1アクションとしてカウントされる。

可用性応答時間全体で整合性を実現するには、可用性要求アクションが API 呼び出しごとに 100 アクション未満に保持されるようにする必要があります。 合計アクションが 100 の制限を超えると、アプリケーションは要求を複数の API 呼び出しに分割するか、API エラーを受け取ります。 リアルタイムの可用性アプローチの分散コンピューティングを使用するこのガイドラインに従うことで、ストアフロントの NPS ® を向上させることができます。

API 呼び出しは、 Sterling Intelligent Promisingに対して行われた要求の数です。 要求には、1 つ以上の API アクションを含めることができます。

可用性 API は、アイテム (SKU) と出荷ロケーションのリスト (ノードや分配グループなど) で構成されます。 アクションは、SKU とロケーションの固有の組み合わせの数によって測定されます。 例えば、 Node1 および Node2 を指定した SKU1 の可用性要求は、 SKU1-Node1 および SKU1-Node2という 2 つのアクションになります。 以下は、応答コード - 400 Bad Request の場合のサンプル応答メッセージです。
{
   "error_message": "Number of actions in input (310) is greater than the tenant limit of 100."
}
以下の可用性要求では、API 呼び出しごとに 2 つのアクションが実行されます。
  1. 単一行での 2 つのアクションによるノードの可用性: Mouse-Node01Mouse-Node02
    {
      "lines": [{
      "lineId": "1", "itemId": "Mouse", "deliveryMethod": "SHP",
      "shipNodes": ["Node01","Node02"]
      }]
    }
  2. 2 つのアクションが別々の行にあるノードの可用性: Mouse-Node01Mouse-Node02
    {
    "lines": [
      {
        "lineId": "1", "itemId": "Mouse", "deliveryMethod": "SHP",
        "shipNodes": ["Node01"]
      },
      {
        "lineId": "2", "itemId": "Mouse", "deliveryMethod": "SHP",
        "shipNodes": ["Node02"]
      }
     ]
    }

同様に、以下の API では 10 個のアクションが実行されます。

{
  "lines": [{
  "lineId": "1", "itemId": "Mouse", "deliveryMethod": "SHP",
  "shipNodes": ["Node01","Node02","Node03","Node04","Node05","Node06","Node07","Node08","Node09","Node10"]
 }]
}

多数のノードに対してネットワーク可用性要求を使用する

Sterling Intelligent Promisingでは、ノード・ロケーションの長いリストを指定する必要をなくすために、ノードの可用性の代わりに分配グループの可用性を使用することができます。 例えば、10 個のアクションを持つ前の API 要求は、以下の形式に単純化されます。

{
  "distributionGroupId": "DG_Node1-to-Node10",
  "lines": [{
  "lineId": "1", "itemId": "Mouse", "deliveryMethod": "SHP"}]
}

この要求により、ノード可用性要求の場合と同様に、10 ではなく 1 つの可用性アクションが実行されます。

可用性要求の分割の例

可用性アクションがアクション制限を超えた場合は、以下のステップを使用して、API 要求を論理的に分割する必要があります。
  1. カートまたはオーダー明細別 (単一 SKU、複数ノード)

    例えば、e-コマース・アプリケーションは、300 ノードすべてにわたって SKU01の可用性を検出する必要があります。 API 要求は次のようになります。

    • Request1: SKU01 [Node001 to Node100]
    • Request2: SKU01 [Node100 to Node200]
    • Request3: SKU01 [Node200 to Node300]
  2. ノード別 (複数 SKU、単一ノード)
    このシナリオは、カートに多数の SKU がある場合、または制限を超えるオーダーがある場合に使用します。 ノードでソートされた要求を分割する必要があります。
    例えば、200 個の SKU を持つ大規模なオーダーがあり、100 個のノードがある場合、要求の内訳は次のようになります。
    • Request1: SKU001 [Node001-Node100]
    • Request2: SKU002 [Node001-Node100]
    • Request3: SKU200 [Node001-Node100]

予約 API 要求の応答時間の最適化

予約 API は、カート明細またはオーダー明細を迅速に予約するために、API 要求ごとに最大 500 のアクションを受け入れます。 すべての予約要求にわたって固定アクションを維持することにより、e-コマース・アプリケーションによって行われるすべての要求にわたって、進行中の可用性と予約呼び出しの間の負荷を最適化することができます。 アクション・カウントが API 当たり 500 アクション制限を超えている場合、アプリケーションがエラー応答を返す可能性があります。

SKU とロケーションの組み合わせの数によって予約アクションを測定します。 ロケーションは、ノードまたは分配グループのいずれかです。 以下の予約要求では、API ごとに 2 つの予約アクションが実行されます。

例 1: ネットワーク予約
{
"reference": "CART1",
"lines": [
{"lineId": "1", "itemId": "SKU01", "deliveryMethod": "SHP","distributionGroup": "NA_Group", "quantity": 3}
{"lineId": "2", "itemId": "SKU02", "deliveryMethod": "SHP","distributionGroup": "NA_Group", "quantity": 5}
]
}
例 2: ノードの予約
{
  "reference": "CART1",
  "lines": [
  {
     "lineId": "1", "itemId": "SKU01", "deliveryMethod": "SHP","shipNode": "Node01", "quantity": 3}
     {
        "lineId": "2", "itemId": "SKU02", "deliveryMethod": "SHP","shipNode": "Node01", "quantity": 5}
  ]
}

予約要求の分割の例

500 行を超える予約の大規模な要求がある場合、このシナリオでは、500 アクション制限内に収まるように、予約を複数の API 要求に分割する必要があります。 例えば、1 つのオーダーに 1000 の予約明細がある場合、複数の要求がある可能性があります。

予約要求 1
{
   "reference": "CART1",
   "lines": [
   {"lineId": "1", "itemId": "SKU001", "deliveryMethod": "SHP","shipNode": "Node01", "quantity": 3}
     {"lineId": "2", "itemId": "SKU002", "deliveryMethod": "SHP","shipNode": "Node01", "quantity": 5}
     ....
       {"lineId": "3", "itemId": "SKU500", "deliveryMethod": "SHP","shipNode": "Node01", "quantity": 5}
   ]
}
予約要求 2
{
  "reference": "CART1",
  "lines": [
  {"lineId": "1", "itemId": "SKU500", "deliveryMethod": "SHP","shipNode": "Node01", "quantity": 3}
    {"lineId": "2", "itemId": "SKU501", "deliveryMethod": "SHP","shipNode": "Node01", "quantity": 5}
    ....
      {"lineId": "3", "itemId": "SKU1000", "deliveryMethod": "SHP","shipNode": "Node01", "quantity": 5}
  ]
}