購入したい商品のリストを作成します。それらすべてに一意の参照コードが与えられているとしましょう。購入できるサプライヤーのリストがあり、便宜上、各サプライヤーは各製品に同じ参照コードを使用しています。
一部のサプライヤーは送料を請求します。他の人は、あなたが一定額以下を費やす場合にのみ送料を請求します. 一部のサプライヤーは、複数回購入すると特定の製品を割引しますが、制限がある場合があります (1 つにつき 1 つ無料など)。
購入したい製品のリストを取得し、各サプライヤーからそれらすべてを購入する場合の合計費用を集計するのは非常に簡単です。私がやりたいのは、注文を分割した方が良いかどうかを判断するスクリプトを作成することです。
例えば:
小売業者 A の請求:
製品 A - £5
製品 B - £10
製品 C - £10
製品 D - £10
配送料 - £5
小売業者 B の請求:
製品 A - £5
製品 B - £12
製品 C - £12
製品 D - £30
送料 - £5 - £20 以上の買い物の場合は無料
この場合、商品 C だけを購入したい場合、最も安いのは小売業者 A です。
購入したい場合:
製品 Aを 1 つ
製品 Bを 2 つ
製品 D を 1 つ
最も安いのは、商品 A と B の小売業者 B (送料無料のため) であり、注文を分割して、小売業者 A から商品 D を購入します (配送料を含めても価格が大幅に低くなるため)。
ですから、私の頭の中では複雑な作業ではなく、紙の上では非常に簡単に解決できます。問題は、これをどのようにコードに変換するかです。私はそれを行うためのコードを探しているわけではありません - それを実装する方法の理論に関するいくつかのガイダンスです。