予約数

予約は、後で消費する需要に対する供給割り当てを保証するアクションです。

e-コマース・サイトまたはストア・ロケーションの数量がパイプラインの最後に履行されることをセラーが保証する必要があるため、オーダー変換のプロセスは複雑なプロセスです。 通常、フロントエンドとバックエンド・システムの間にオーダー変換の遅延がある場合、適切に処理されないと、オーバーセルにつながる可能性があります。 例えば、商品詳細ページで、セラーは利用可能な合計数量を示すことができます。また、2 人のショッパーが同時にカートまたはチェックアウトにアイテムを追加するときには、商品の最終数量を誰が受け取るかを決定的な方法で解決する必要があります。

この予約により、バックエンド・システムが需要の処理を完了できるように、アイテム数量を短時間確保することができます。 予約要求はリアルタイムで行われ、要求が受信されると、予約予約の前に可用性が検証されるという非ロック動作になります。 同じ数量にアクセスする複数の予約がある場合は、最初に成功した予約が処理され、後の日付に行われたすべての予約がロールバックされて拒否されます。 受け入れられる予約数量は、新しい予約要求を含む将来の在庫状況検索で次に考慮されます。

以下に、在庫予約要求の特性を示します。
  • 予約の失敗時に自動ロールバック
  • 予約の有効期限は構成可能です
  • 予約は、需要の更新の一部として利用できます。
  • 予約は参照別にグループ化できます
  • 部分予約がサポートされています

ノードまたはネットワークの予約の作成

ノード・レベルおよびネットワーク・レベルで予約を作成できます。
ノード・レベルでの予約
ノード・レベルの予約を作成すると、特定の出荷ロケーションまたはノードで在庫をブロックできます。 指定された数量で 1 つ以上のアイテムの予約を作成できます。 成功すると、予約確認 ID が返されます。
注: ノード・レベルの予約の場合、部分予約がサポートされます。

予約が成功すると、在庫状況に影響する需要のタイプが考慮されます。 すべての予約には有効期限があり、その期間の終了時に、オーダー取得によって消費されなかった場合、在庫は使用可能なプールに戻されます。

ネットワーク・レベルでの予約
オーダー取得機能を最大化するために、フルフィルメント・マネージャーは出荷ロケーションのネットワークをセットアップします。 ネットワーク予約は通常、e-コマース・システムで使用されます。これは、取得時にフルフィルメントに使用される出荷ロケーションが不明であるためです。
ネットワーク予約の取り込みは、ネットワーク・レベルとノード・レベルの両方で在庫レベルに影響を与えます。 それぞれが 5 つの数量の可用性を持つ 2 つのノードがあるとします。予約の合計可用性は 10 数量になります。
注: ネットワーク予約が作成されると、その予約は、ノード優先順位に基づいて自動的にノード・レベルの予約に分割されます。

詳しくは、 ノード優先順位の動作を使用した予約を参照してください。

注: アベイラビリティ・ロジックは、供給、需要、アクティブな予約などを考慮し、実際のアベイラビリティを計算します。
予約の特殊ケースについて詳しくは、 特殊ケースを参照してください。
アクティブな予約のリストを取得する方法については、 Get Reservations APIを参照してください。

ノードまたはネットワークのどちらの予約の場合も、予約 ID をカスタマイズする機能を使用できます。 詳しくは、 カスタム予約 ID を使用した予約の作成を参照してください。

ノード優先順位の動作を使用した予約

ネットワーク・レベルの予約が作成されると、システムは、在庫数量をブロックする前にネットワークの可用性を考慮します。 一部の複雑なシナリオでは、1 つ以上のノードが複数のネットワークの一部になっているため、すぐに過剰な販売シナリオが発生する可能性があります。

例えば、 Node1 に 5 つの数量があり、 Node2 に 7 つの数量の可用性があるとします。 2 つの分配グループが DG1 および DG2 として作成され、両方が同じノードを持つ場合、両方とも 12 数量の同じ可用性を監視します。 この従来の動作では、一方の分配グループに対して作成された予約は、他方のグループを認識しません。 これは、 DG1 と DG2 の両方が 12 の数量を予約して過剰販売につながる可能性があることを意味します。

この振る舞いを克服するには、セラーは、これらのネットワーク・レベルの予約をコミットされていない予約として追跡し、それらをノード・レベルの予約に変換して、過剰販売のリスクを軽減する必要があります。 分配グループのノード優先順位予約は、ネットワークからノードへの予約変換を実行する際のセラーの労力を最小限に抑えるために、予約ロジックで導入されます。

ノード優先順位の予約との基本的な違いは、システムが、要求された数量を受け入れたときに、分配グループ内の個々のノードとネットワークの両方で在庫チェックを実行するという点です。 同じノードを共有するすべてのネットワークが最新の在庫ピクチャーを持つように、予約数量がネットワーク・レベルではなくノードに割り当てられます。 分配グループ定義に複数のノードが存在する場合、予約はノード優先順位の値の順序で行われます。

ノードが考慮される順序を構成するために、ユーザーは分配グループ内の各ノードの優先順位の値を定義できます。これは、複数のノードが同じ優先順位の値を持つことができるためです。 タイ・ブレーカーは、最も古い在庫が最初に予約されているノードです。
詳しくは、 Distribution Group APIを参照。

例えば、 DG1 には、ノード優先順位シーケンスとして [Node2, Node1, Node3, Node4] があります。 これは、 Node2 の可用性が常に最初に予約されることを意味します。 Node2 が枯渇すると、予約要求数量が満たされるまで、システムは後続の優先順位ノードにトラバースします。

予約数量の更新中

既存の予約では、以下のアクションを実行できます。
  • 予約明細の予約数量を増減する。
    注: 数量が変更された場合、予約では部分予約数量の増加がサポートされます。 これは、特定のアイテムとノードの組み合わせで在庫が使用可能になるまで当てはまります。
  • 有効期限を更新しています。
注: acceptPartialReserve フラグを true に設定して、絶対予約である予約済み数量に対してオーダー明細をリリースできるようにします。 フラグが'falseに設定されている場合、注文行は全数量が予約された時点で処理される。

予約の有効期限の定義

ノードまたはネットワークの予約を作成するとき、個々の予約行レベルまたは同じ参照を持つすべての予約に対して有効期限タイムスタンプを定義することができます。 予約の有効期限が切れると、予約された数量は可用性プールに戻される。 その時点で、可用性APIは更新されたインベントリを反映し、サブスクリプションが適切であれば、関連するイベントが公開されるかもしれない。 イベントには productAvailbaility, dgAvailability, supplyAvailbility イベントが含まれる。 詳しくは、 イベントフォーマットを参照。

カートまたは参照による予約の拡張

既存の予約は、予約の作成時または更新時に新しい有効期限タイム・スタンプでオーバーライドできます。 例えば、オーバーライド有効期限タイム・スタンプが定義されたフラグを設定した場合、予約参照は、すべての予約の有効期限を更新する [rsv1, rsv2, rsv3] で構成されます。 要求入力でオーバーライドする expiryTs を指定しない場合、このフラグは無視できます。
注:
  • システムは、最大 30 日間 (デフォルト値は 15 分) の予約制限を適用します。
  • 同じ参照を持つ複数の予約の有効期限を一度に延長できます。
詳しくは、 Update Reservations APIを参照。

在庫予約の検索

在庫予約の検索では、アイテム、参照、または予約IDで予約を検索することができます。 また、APIの助けを借りて在庫予約を検索することもできます。 Search Reservations APIを使用します。

在庫予約を検索する手順の詳細については、 参照または予約IDによる在庫予約の検索を参照してください。

予約の削除

注文が変換される際に、選択した予約を削除したり、需要更新の一部として使用することができます。

予約 API 呼び出しで予約 ID が重複しないようにするために、システムは検証を実行します。 予約が正常に作成されると、応答ペイロードから対応する reference 値が返されます。 カスタム予約 ID を処理する API は、以下のとおりです。
  • GET
  • DELETE
  • POST
  • PATCH
予約の削除については、 Delete Reservations APIを参照。

予約状況

以下は、出荷またはピックアップに応じて、特定のノード、特定の分配グループ、および特定の配達方法に対して行うことができる予約タイプです。

ショッパーがアイテムのオーダーを発行することを希望するオンライン・ショッピング・シナリオを考えてみます。 アイテムがカートに追加されるか、チェックアウトの一部として追加されると、バックエンド・システムで以下のステップが実行されます。
  1. アイテムの在庫状況を取得し、それを要求数量と比較します。
  2. 十分な数量が使用可能な場合は、アイテムの予約が要求されます。
    注: 2 番目のステップは、アイテムがカートに追加されたときに実行することも、アイテムがチェックアウト処理中のときに実行することもできます。
  3. 予約状態を確認し、予約が完全に予約されているか、部分的に予約されているか、または予約されていないかを判別してください。 数量が完全に予約されていない場合は、数量が不十分であることをユーザーに通知する必要があります。
  4. 数量がキャンセルされたりカートから削除されたりした場合は、対応する予約を修正して、他のショッパーが利用できるようにするために予約された最新の数量を反映させる必要があります。
  5. 予約はオーダーまたは需要に変換されます。 バックエンド・システムには、需要およびオーダー更新の一部として予約 ID が含まれます。これにより、予約の消費がトリガーされます。
在庫が少ない場合、予約の結果は以下のいずれかになります。
予約 結果
予約済み 全数量が予約されている場合、ストアは予約の詳細を含む需要を発行して、予約を消費できるようにします。
一部予約済み 部分数量はシステム上で予約されています。 顧客は、オーダー受け入れステータスに基づいて、予約を保持する必要があるか削除する必要があるかを判断する必要があります。
予約不要 在庫は予約されておらず、顧客は代替在庫を探す必要があります。