1

我正在 CakePHP 框架中编写商店系统。我坚持编写灵活的折扣系统。

我有可以具有许多不同属性的产品模型(ProductVariant 模型和 ProductAttribute 模型)。

ProductVariant 是指定价格的部分,因为我可以有不同价格的实体产品和不同价格的下载电子产品(尽管内容相同)。所以从这个模型中考虑的是类型和价格。

ProductAttributes 是产品的一些属性 - 例如类别、语言等(属性以键值方式定义并分配给产品)

现在我希望运营商能够添加临时折扣、折扣代码等。这将根据产品的变体和/或属性应用折扣。

例如 - 英语实体产品折扣 20% 或 - 德语或英语下载产品 5 美元。

我想也许我应该创建模型 - DiscountType(用于百分比折扣和普通折扣) - DiscountScope(用于折扣特定产品 ID 和/或属性和/或变体

但是我被困在这里,想知道如何定义这些规则集,以便操作员可以轻松添加它们(属性和变体也可以由操作员添加,所以这里有无数种可能性,但当然可以从数据库中访问)。

我被困的第二部分是为订单处理应用折扣。我应该使用装饰器模式吗?如果是这样,我现在一无所知如何将它应用到 Cake(或仅在 MVC 中)。

如果我能以某种方式改进我的问题或提供一些可以帮助解决问题的代码部分,请告诉我。

4

0 回答 0