Source優先アルゴリズム

カスタム在庫には、ストアフロントを通じて利用可能な製品在庫を販売および出荷するためのソースの割り当てられたリストが含まれています。 Source優先アルゴリズムは、在庫の割り当てられたソースの順序を使用して、注文の請求および配送時にソースごとの製品控除をレコメンデーションします。

実行時のアルゴリズムは次のとおりです。

  • 上位から在庫レベルでソースの設定順序を処理します
  • リスト内のオーダー、有効数量およびオーダー数量に基づいて、製品ごとに出荷数量およびソースを推奨します。
  • 注文出荷が入力されるまでリストの下の方に進みます
  • リスト内に無効なソースが見つかった場合はスキップします

カスタム在庫のソースを設定、割り当て、注文します。 在庫のソースの優先順位付けを参照してください。

次の例では、マッピングされたソースの順序、有効数量、推奨ソースおよび控除および出荷金額を詳しく示します。 最上位のソースは、英国の直送の荷主で、使用可能な数量は 240 です。

マウンテンバイクの SSA 推奨事項の例

距離優先アルゴリズム

距離優先アルゴリズムでは、出荷先所在地の事業所がソース事業所と比較され、出荷を履行する最も近いソースが決定されます。 距離は、読み込んだデータベースの場所またはGoogleの方向(車の運転、歩く、または自転車)を使用して、ある場所から別の場所へ移動するのに費やした物理的な距離または時間によって決定されます。

出荷履行の最も近いソースを検索するための距離と時間を計算するには、次の 2 つの方法があります。

  • Googleの地図 - Googleの地図 Platform サービスを使用して、発送先住所と発送元住所(住所および GPS 座標)の間の距離と時間を計算します。 このオプションでは、ソースの緯度と経度を使用します。 Geocoding APIDistance Matrix API を有効にしたGoogle API キーが必要です。 このオプションにはGoogle請求プランが必要で、Google経由で料金が発生する場合があります。

  • オフライン計算 - ダウンロードおよびインポートされたジオコードデータを使用して距離を計算し、出荷先住所に最も近いソースを決定します。 このオプションでは、配送先住所と発送元の国コードを使用します。 このオプションを設定するには、コマンドラインを使用して最初にジオコードをダウンロードして読み込むために、開発者の支援が必要な場合があります。

設定するには、設定を選択し、Google API キーや配送データのダウンロードなど、追加の手順を実行します。 距離優先アルゴリズムの設定を参照してください。

カスタムアルゴリズム

Commerce では、ソースに優先順位を付ける代替アルゴリズムを追加するためのカスタム開発および拡張機能をサポートしています。 例えば、地域に基づいて 1 つの優先アルゴリズムを設定し、在庫費用または顧客属性に基づいて別の優先アルゴリズムを設定できます。 在庫コストが変更されると、実装でアルゴリズムを簡単に変更して、コストを最小限に抑えることができます。

予約

在庫引当では、製品の在庫数量を即時に控除または追加するのではなく、受注が出荷または取消されるまで在庫金額が保持されます。 予約はバックエンドで完全に機能し、在庫レベルで販売可能な数量を自動的に更新します。

NOTE
予約機能を使用するには、inventory.reservations.updateSalabilityStatus メッセージキューコンシューマーを継続的に実行する必要があります。 実行中かどうかを確認するには、bin/magento queue:consumers:list コマンドを使用します。 メッセージキューコンシューマーがリストにない場合は、開始します(bin/magento queue:consumers:start inventory.reservations.updateSalabilityStatus)。

予約の注文

予約注文の送信時に販売可能数量から差し引かれた在庫数量に保留が適用されます。 予約は在庫レベルで行われ、注文の請求、出荷、キャンセルなどが行われるまで数量と照合してカウントされます。 受注の出荷時に、SSA の推奨事項を使用するか、ソースごとの数量控除項目を手動で入力できます。 出荷されると、予約は自動的に決済され、数量が差し引かれます。 販売可能数量は、更新された数量とシステムに残っている予約金額で在庫について再計算されます。

次の図は、注文中および出荷までの予約プロセスを定義するのに役立ちます。

受注から引渡しまでの引当

顧客が注文を送信します。 Commerce 現在の在庫販売可能数量をチェックします。 在庫レベルで十分な在庫が利用可能な場合、予約は(その在庫の)製品 SKU を一時的に保持し、販売可能な数量を再計算します。

受注の請求後、ソースから控除および出荷する製品金額を決定します。 出荷が処理され、選択した 1 つ以上のソースから顧客に送信されます。 数量はソース在庫数量から自動的に差し引かれ、予約決済されます。 詳細および例は、「受注ステータスおよび予約について を参照してください

引当の計算

次のイベントが発生すると、システムによって各製品の予約が作成されます。

  • 顧客またはマーチャントが注文を行います。
  • 顧客またはマーチャントが注文の全部または一部をキャンセルした場合。
  • 販売者は、現物商品の出荷を作成します。
  • マーチャントは、仮想またはダウンロード可能な製品の請求書を作成します。
  • 商人はクレジット メモを発行します。

予約は追加専用の操作で、イベントのログに似ています。 初期予約には負の数量の値が割り当てられています。 オーダーの処理中に作成される後続の予約はすべて正の値です。 注文が完了すると、商品のすべての予約の合計は 0 になります。

システムは、新しい注文に対応して予約を発行する前に、注文を満たすのに十分な販売可能な品目があるかどうかを判断します。 次の数量が計算に組み込まれます。

  • StockItem の数量. StockItem 数量は、現在の販売チャネルのすべての物理ソースから集計された在庫量です。 ボルチモアのソースに 20 個の製品があり、オースティンのソースに 25 個の同じ製品があり、リノのソースに 10 個がある例を考えてみましょう。 これらのソースがすべて在庫 A にリンクされている場合、この商品の在庫品目数は 55 (20 + 25 + 10)になります。 (品目が出荷されると、在庫インデクサーは各ソースで使用可能な数量を更新します)。

  • 未払いの予約。 システムは、補償されていないすべての初期予約を合計します。 この数値は常に負の値です。 顧客 A が 10 品目の予約を持ち、顧客 B が品目の予約を 5 に持っている場合、製品合計の未処理予約–15。

したがって、顧客の注文が 40 (55 + -15)単位未満である限り、マーチャントは着信注文を履行できます。

オーダーの処理を完了すると(完了、取消、クローズ)、そのオーダーの範囲内のすべての予約が 0 に解決されます。 これにより、すべての販売可能な数量保留がクリアされます。

NOTE
在庫切れのしきい値を使用したバックオーダーおよびしきい値を下回る数量の通知の設定も、販売可能数量の計算に影響しますが、これらの設定はこのトピックの範囲外です。 これらの設定について詳しくは、 設定 Inventory Management を参照してください。