ホームページ  >  に質問  >  本文

Ruby - PHP で受取住所と出荷倉庫の優先倉庫選択を実装する方法

本日は、商品、配送先、配送倉庫の優先倉庫選定について技術的な質問をさせていただきます。

タイトルの通り:

  1. ユーザーは 3 つの製品を購入しました: A、B、および C (ユーザーは n 個の SKU 製品を購入したと考えることができ、各 SKU には対応する数量があります)。製品 SKU には大文字を使用します: A、 B、C;

  2. 配送先住所は X です;

  3. 各製品には複数の倉庫があり、倉庫配送では最新かつ最適な倉庫が選択されます (優先順位は配送先住所に応じて設定されます)。たとえば、倉庫は次のとおりです: a、b、c、d (倉庫は小文字で表されます) )etc;

優先ロジック:

ユーザーは商品を購入し、倉庫配送を選択します。荷物の数が少ないほど良い (一次)、荷物が近いほど良い (二次);

配送先住所は X です。X の住所に対応する倉庫の優先リスト:

XX => a、b、c、d

###例: ###

例 1. ユーザーは 1 SKU (数量は 3) を購入し、対応するアドレス X:

に送信しました。

リーリー

この商品Aに対応する在庫と数量:Xアドレスに対応する順番はa、b、c、d


対応する倉庫と在庫リスト:

リーリー

最寄りの倉庫への最小梱包の原則により、b倉庫在庫(A品3点)から差し引いて1梱包発送となります。

例 2. ユーザーは 2 つの SKU を購入し、対応するアドレス X:

に送信しました。 リーリー
製品 A と B に対応する在庫と数量: (X アドレスに対応する順序は、a、b、c、d です)

対応する倉庫と在庫リスト:

リーリー

B 対応倉庫および在庫リスト:

リーリー

最寄りの倉庫への最小荷物の原則に従って、1つの荷物を保管および出荷する倉庫b(製品A 3個、製品B 2個)からも結果が差し引かれます。

例 3. ユーザーは 2 つの SKU を購入し、対応するアドレス X:

に送信しました。 リーリー
製品 A と B に対応する在庫と数量: (X アドレスに対応する順序は、a、b、c、d です)

対応する倉庫と在庫リスト:

リーリー

B 対応倉庫および在庫リスト:

リーリー

倉庫に最も近い最小パッケージの原則に従って、結果から倉庫 a (製品 A 3 品目、製品 B 1 品目) が差し引かれ、倉庫 b (製品 B 1 品目) が追加され、合計が配送されます。 2 つのパッケージ (倉庫 a と製品 B の 1 品目) b (倉庫ごとに 1 つ) (ここでも、最適な少数のパッケージと最も近い倉庫を用意するという原則に従います)。

例 4、ユーザーは 2 つの SKU を購入し、対応するアドレス X:

に送信しました。 リーリー

製品 A と B に対応する在庫と数量: (X アドレスに対応する順序は、a、b、c、d です)

対応する倉庫と在庫リスト:

リーリー

B 対応倉庫および在庫リスト:

リーリー

最寄りの倉庫への荷物の最小数の原則に従って、その結果は倉庫 d (製品 A 3 個、製品 B 5 個) からも差し引かれ、合計 1 個の荷物 (製品 A は 1 個) となります。倉庫 d) に出荷する必要があります。パッケージの最小数の原則はここで達成されます。

あえて聞きますが、一部の専門家はどのようにしてこのアルゴリズムを破ることができるのでしょうか?

怪我咯怪我咯2692日前897

全員に返信(1)返信します

  • 学习ing

    学习ing2017-06-27 09:20:02

    これは私が考えていることです、最初にsku配列を降順にソートします、たとえば、3個のsku、array(8,4,1);
    それぞれ8個、4個、3個の最適なパッケージプランを取得します,
    then put これら3つのプランの倉庫条件を組み合わせて重複を取り除くことで、最適なプランを得ることができます。

    返事
    0
  • キャンセル返事