我在CakePHP Framework中编写商店系统。我坚持写灵活的折扣系统。
我的产品型号可以有许多不同的属性(ProductVariant Model和ProductAttribute model)。
ProductVariant是指定价格的部分,因为我可以使用不同价格的电子产品和不同价格下载的电子产品(尽管内容相同)。所以从这个模型中考虑的是类型和价格。
ProductAttributes是产品的一些属性 - 如类别,语言等。 (属性以键值方式定义并分配给产品)
现在我希望运营商能够添加临时折扣,折扣代码等。这将根据产品的变体和/或属性在产品的基础上应用折扣。
例如 - 英语实体产品折扣20%或德语或英语下载产品折扣5美元。
我发现也许我应该创建模型 - DiscountType(百分比折扣和普通折扣) - DiscountScope(用于折扣特定产品ID和/或属性和/或变体
但我被困在这里,想知道如何定义这些规则集,以便操作员可以轻松添加它们(属性和变体也可以由运营商添加,因此这里有无数的可能性,但当然可以从DB访问)
我陷入困境的第二部分是对订单处理应用折扣。 我应该使用装饰模式吗?如果是这样,我现在无法在Cake中应用它(或者只是在MVC中)。
如果我能以某种方式改进我的问题或提供一些有助于解决问题的代码部分,请告诉我。