2009-02-20 67 views
16

我正在努力確定客戶對零售環境中定價引擎的要求。我們已將定價引擎定義爲按照一組定價規則進行操作,這些定價規則基於購物車中已有的物品確定購買物品的新價格點。將規則應用於事實的設計模式和算法

一個簡單的價格規則可能是獲得一件襯衫40%的折扣。 更復雜的規則可能是當您購買2條褲子並贈送至少30美元時獲得免費襯衫

應用這些規則的一般行業慣例似乎對客戶來說是最終的最佳價格,但它已經出現,可能需要排名選項以及堆棧選項。

排名將允許一個規則,否則將失去贏。堆疊可以讓多個規則獲勝。

我在這裏回顧了很多有關規則引擎的帖子,我需要幫助確定是否應該將這些工具之一作爲我的設計的一部分,或者如果不是可以應用哪些設計模式和算法該設計。

很明顯,這可能是一個NP問題,而且我將要處理的物品(事實)數量可能會超過每次交易100+,並且每次添加新物品時都需要重新定價。

+1

好奇你最終會用哪種方法?這是正確的選擇嗎? – 2016-01-20 15:23:42

+0

我們創建了自己的規則引擎,最終使用各種技術來解決問題。我沒有信息在這裏分享,因爲這已經在7年前解決和實施了。我們最終使用了某種本地化方法,並對本地化應用權重。然後,我們使用最低成本路由類型的算法來確定價格交易的最佳組合。完成的工作原來是我最喜歡的項目之一 - 我們將其作爲一個可以在其他地方使用的獨立模塊編寫。規則+輸入集 - >定價輸出集。 – Bill 2017-01-11 20:16:57

回答

2

規則引擎非常適合。如果規則引擎是可靠的,則適合您的架構/應用程序的其餘部分,並且需要您的應用程序的核心功能,然後繼續使用它。

如果規則引擎只是您應用程序的一小部分,或者更糟糕:是一些代碼,它與您的其他應用程序不是相同的編程語言......那麼您應該重新考慮。每個應用程序部分都是您的核心應用程序的外部(即使數據庫是Java應用程序的外部數據庫)也是一種風險。

然後有兩種可能性:自己編寫一個簡單的規則引擎,或者使用策略或狀態模式。