很快,我将致力于一个项目,该项目本质上是一个配置产品的电子商务应用程序。这个问题是关于如何实现每天都会发生变化的定价方案,所以我们希望将定价逻辑从代码中提取出来并放入数据库中,而不是以一种导致数据库完成所有工作的方式。
基本思想是这样的,有5个属性。您可以从每个属性中选择一个选项。然后你开始在购物车中添加产品。您添加的所有产品都将添加这5个属性(这些属性将影响定价)。一旦添加了产品,就可以对其应用修改(属性也将应用于修改)。
因此,在这一点上,我们得到的是一个产品(它有一个固定的基价),它有一些关于它的信息(它将修改价格),以及零个或多个修改(它有一个固定的价格)和一些关于它们的信息(它将修改价格)。修改也会产生额外的费用。例如,如果公司A使用此软件,他们的产品定价为: BASE_PRICE + $50 * NUM_WHIRLIGIGS,并且产品有一个添加了旋转的修改,这将不得不反映在价格中。
你是否知道任何不同的定价系统的例子,我可能会发现在确定如何设置时有用?你有更好的主意吗?
对于任何给定的项目(或项目集合),公司可以使用一个特殊的接口来设置定价公式,然后在运行时对其进行解释和评估。
因此,对于PRODUCT_A,公司可能会放入类似BASE_PRICE + WHIRLIGIG_UPCHARGE * NUM_WHIRLIGIGS的内容。而软件,当它定价的时候,会查看物品有多少个旋转,以及通过任何修改增加了多少旋转。
有没有人有实现这种解释器的经验?结果如何?这是困难/麻烦吗?
提前感谢你给我的很棒的反馈,我相信我会得到的。:P
发布于 2011-01-15 02:45:25
通常,这通常是通过具有组件的产品包来处理的。因此,具有5个附加子组件的产品不会是base +5* addon,而是SUM(base,addon,addon)。
因此,您的产品表可以是自引用的,也可以是某种类型的链接表,说明允许将哪些子产品附加到哪些产品。
根据我的经验,定价通常存储在产品/客户或合同的基础上,所以这是另一个表。
然后,实际订单本身包含产品捆绑包。如果订单是报价,则会冻结定价(直至报价到期)。
当报价或订单转换为发票时,根据定价时间范式,定价要么从主定价锁定,要么从报价锁定。
https://stackoverflow.com/questions/4694599
复制相似问题