1

很快,我将从事一个项目,该项目本质上是一个用于配置产品的电子商务应用程序。这个问题是关于实现每天都在变化的定价方案的方法,因此我们希望将定价逻辑从代码中提取到数据库中,但不是以一种导致数据库完成所有工作的方式。

基本思路是这样的,有5个属性。您从这些属性中的每一个中选择一个选项。然后您开始将产品添加到您的购物车。您添加的所有产品都将附加这 5 个属性(这些属性会影响定价)。添加产品后,您可以对其应用修改(属性也将应用于修改)。

所以,我们现在得到的是一个产品(它有一个固定的底价),它有一些关于它的信息(这将修改价格),零个或多个修改(它有一个固定的价格)和一些关于它的信息他们(这将修改价格)。修改也可能产生额外费用。例如,如果 A 公司使用此软件,并且他们使用以下方式为他们的商品定价:BASE_PRICE + $50 * NUM_WHIRLIGIGS 并且该商品有一个添加了 WHIRLIGIG 的修改,这将必须反映在价格中。

您是否知道我在确定如何设置时可能会发现有用的不同定价系统的任何示例?你有更好的想法吗?

我目前最好的想法如下,如果你对方法的细节不好奇,只想得到答案,你可以跳过它!

对于任何给定的项目(或项目集合),公司可以使用一个特殊的界面来设置定价公式,然后在运行时对其进行解释和评估。

因此,对于 PRODUCT_A,公司可能会投入类似 BASE_PRICE + WHIRLIG_UPCHARGE * NUM_WHIRLIGIGS 的费用。软件在定价时会查看该商品有多少 WHIRLIGIGS,以及通过任何修改添加了多少 WHIRLIGIGS。

有没有人有实施这种解释器的经验?结果怎么样?困难/麻烦吗?

提前感谢所有很棒的输入,我一定会得到的。:P

4

1 回答 1

0

通常,这通常使用具有组件的产品包来处理。因此,具有 5 个附加子组件的产品不会是 base + 5 * addon,而是 SUM(base, addon, addon, addon, addon, addon)。

因此,您的产品表可能是自引用的,或者存在某种链接表,说明允许将哪些子产品附加到哪些产品。

根据我的经验,定价通常存储在产品/客户或合同的基础上,所以这是另一张表。

然后实际订单本身包含产品包。如果订单是报价单,则定价将被冻结(直到报价单到期)。

当报价或订单变成发票时,定价要么锁定在主要定价或报价中,具体取决于定价时间范式。

于 2011-01-14T18:45:24.940 回答