判斷疊加折扣的最佳組合
本文介紹如何確定重疊折扣的最佳組合 Microsoft Dynamics 365 Commerce。
當折扣重疊時,您必須確定將產生最低交易總額或最高總折扣的重疊折扣組合。 當折扣金額根據所購買產品的價格而變化時,例如在常見的「買一件,獲得百分之一折扣」(BOGO)零售折扣中,這個過程就成為組合優化的問題。
本文適用於 Microsoft Dynamics AX 2012 R3 及 KB 3105973(2015 年 11 月 2 日發布)或更高版本,以及 Dynamics 365 Commerce。 為了及時確定要應用的重疊折扣組合,我們引入了應用重疊折扣的方法。 我們將這種新方法稱為 邊際價值排名。 在邊際價值排序方法中,透過使用共享產品上的折扣價值來計算每個重疊折扣的價值。 然後,重疊折扣從最高相對值到最低相對值應用。 有關新方法的詳細信息,請參閱本文後面的 邊際值排序方法 部分。 當產品的折扣金額不受交易中其他產品的影響時,不使用邊際價值排名。 例如,此方法不適用於兩個簡單折扣,或一個簡單折扣和單一產品數量折扣。
折扣範例
您可以對一組常用產品創建無限數量的折扣。 但是,由於沒有限制,因此當您嘗試計算應用於各種產品的折扣時,可能會出現效能問題。 下面的例子更詳細地說明了這個問題。 在範例 1 中,我們從兩種產品和兩個重疊折扣開始。 然後,在範例 2 中,我們展示了隨著更多產品的添加,問題如何演變。
範例 1:兩種產品和兩種折扣
在此範例中,需要兩種產品才能獲得每個折扣的資格,且折扣不能合併。 本例的折扣是 最優惠價格 折扣。 兩種產品均可享兩種折扣。 這是兩個折扣。
對於任兩種產品,這兩種折扣中較好者取決於兩種產品的價格。 當兩種產品的價格相等或幾乎相等時,折扣 1 較好。 當一種產品的價格明顯低於另一種產品的價格時,折扣 2 會更好。 這是相互評估這兩個折扣的數學規則。
附註
當產品 1 的價格等於產品 2 價格的三分之二時,兩個折扣相等。 在此範例中,折扣 1 的有效折扣百分比從百分之幾(當兩種產品的價格相距甚遠時)到最大 25%(當兩種產品的價格相同時)不等。 折扣 2 的有效折扣百分比是固定的。 始終是 20%。 由於折扣 1 的有效折扣百分比的範圍可以大於或小於折扣 2,因此最佳折扣取決於必須打折的兩種產品的價格。 在此範例中,計算很快完成,因為僅對兩種產品應用了兩個折扣。 只有兩種可能的組合:一次應用折扣 1 或一次應用折扣 2。 沒有要計算的排列。 每個折扣的價值是使用兩種產品計算的,並使用最佳折扣。
範例 2:四種產品和兩種折扣
接下來,我們將使用四種產品和相同的兩個折扣。 所有四種產品都有資格享受這兩種折扣。 有 12 種可能的組合。 最後,將以三種組合之一對交易應用兩次折扣:兩次應用折扣 1、兩次應用折扣 2、或一次應用折扣 1 和一次應用折扣 2。 為了說明可能的組合,我們將查看兩組不同的四種產品,它們具有不同的價格:
- 所有四種產品的價格相同,$15.00。 在這種情況下,最佳折扣組合是折扣 1 的兩次應用。 兩款產品將為全價,兩款產品可享 50% 的折扣。 交易的折扣總額為 $45 (15 + 15 + 7.50 + 7.50),比未折扣總額 $60 低 $15 (25%)。 折扣 2 僅$12(20%)。
- 兩款產品各為$20,一款產品為$15,一款產品為$5。 在這種情況下,最佳折扣組合是應用一次折扣 2 和應用一次折扣 1。 下表說明了折扣。
若要讀取表格,請使用行中的一種產品和列中的一種產品。 例如,在折扣 1 的表中,當您組合兩種 $20 產品時,您將獲得 $10 折扣。 在折扣 2 的表中,當您組合 $15 產品和 $5 產品時,您可以享受 $4 折扣。
首先,我們透過使用任一折扣來找到任何兩種產品中可獲得的最大折扣。 這兩個表顯示了兩種產品的所有組合的折扣金額。 表中的陰影部分代表產品與自身配對的情況(我們無法做到這一點),或者兩個產品的反向配對產生相同的折扣金額並且可以忽略。 透過查看表格,您可以看到兩個 $20 商品的折扣 1 是所有四種產品均可享受的最大折扣。 (此折扣在第一個表中以綠色突出顯示。)這樣就只剩下 $15 產品和 $5 產品。 再次查看這兩個表,您可以看到,對於這兩種產品,折扣 1 提供 $2.50 折扣,而折扣 2 提供 $4 折扣。 因此,我們選擇折扣 2。 總折扣為$14。 為了使此討論更容易視覺化,這裡還有兩個表格,顯示折扣 1 和折扣 2 的所有可能的兩種產品組合的有效折扣百分比。 僅包含一半的組合列表,因為對於這兩個折扣,兩種產品放入折扣的順序並不重要。 最高有效折扣 (25%) 以綠色突出顯示,最低有效折扣 (10%) 以紅色突出顯示。
附註
當價格不同且有兩個或多個折扣競爭時,保證最佳折扣組合的唯一方法是評估兩個折扣並進行比較。
可能的組合總數
本節繼續上一節的範例。 我們將添加更多產品和另一個折扣,看看必須計算和比較有多少組合。 下表顯示了隨著產品數量的增加而可能的折扣組合數量。 表格顯示了當存在兩個重疊折扣(如上例所示)以及存在三個重疊折扣時會發生什麼情況。 必須評估的可能折扣組合的數量很快就超過了即使是快速計算機也可以足夠快地計算和比較零售交易可接受的數量。
當應用更大數量或更多重疊折扣時,可能的折扣組合總數很快就會達到數百萬甚至數十億,並且評估和選擇最佳可能組合所需的時間很快就會變得顯而易見。 價格引擎中進行了一些優化,以減少必須評估的組合總數。 然而,由於重疊折扣的數量和交易中的數量不受限制,因此每當存在重疊折扣時,總是需要評估大量的組合。 這個問題就是邊際價值排序法要解決的問題。
邊際價值排序法
為了解決必須評估的組合數量呈指數增長的問題,存在一種優化,可以計算可以應用兩個或多個折扣的產品集上每個折扣的每個共享產品的價值。 我們將此值稱為 邊際價值 共享產品的折扣。 邊際價值是當共享產品包含在每個折扣中時,每個產品在總折扣金額中的平均增量。 邊際價值的計算方法是用總折扣金額(D總計)減去不含共享產品的折扣金額(D減去共享),並將該差異除以共享產品的數量(項目共享)。
在計算出一組共享產品的每個折扣的邊際價值後,折扣將以從最高邊際價值到最低邊際價值的順序徹底應用於共享產品。 對於此方法,在套用單一折扣實例後,不會每次都比較所有剩餘的折扣可能性。 相反,重疊折扣會進行一次比較,然後按順序套用。 沒有進行額外的比較。 當可能的組合總數超過預先定義的閾值時,自動觸發邊際值排名計算。 計算總折扣的可接受時間因零售業而異。 然而,這個時間一般在幾十毫秒到一秒的範圍內。