Language agnostic 电子商务应用中的优惠券和折扣

Language agnostic 电子商务应用中的优惠券和折扣,language-agnostic,e-commerce,rules,webshop,Language Agnostic,E Commerce,Rules,Webshop,我已经开发了一个电子商务应用程序,现在我正在添加对优惠券和折扣的支持。不过我想听听你对这件事的看法,因为这比我最初想象的要复杂 我应该把各种优惠券的逻辑放在哪里 比如说,我有一个优惠券代码,给我提供“买3件,免费得到最便宜的”以及另一个优惠券搜索“在[本产品]上获得20%的折扣”,还有一堆其他优惠券(“总金额折扣10%,“买2件,第二件折扣50%”等等) 我的想法是在不同的类中存储一个优惠券接口和不同的实现,然后将类名与优惠券的数据一起存储在数据库中。这种方法是最容易实现的,但是在数据库中存储类

我已经开发了一个电子商务应用程序,现在我正在添加对优惠券和折扣的支持。不过我想听听你对这件事的看法,因为这比我最初想象的要复杂

我应该把各种优惠券的逻辑放在哪里

比如说,我有一个优惠券代码,给我提供“买3件,免费得到最便宜的”以及另一个优惠券搜索“在[本产品]上获得20%的折扣”,还有一堆其他优惠券(“总金额折扣10%,“买2件,第二件折扣50%”等等)

我的想法是在不同的类中存储一个
优惠券
接口和不同的实现,然后将类名与优惠券的数据一起存储在数据库中。这种方法是最容易实现的,但是在数据库中存储类名不是很好


你将如何解决它?在早期的应用程序中是如何解决这个问题的?

我认为规则引擎提供了一个很好的途径,可以以解耦的方式为优惠券建模

请参见示例应用程序使用


谢谢你的回复!尽管我不认为您的示例是解决此问题的最佳方法,但它将纯代码存储在XML文件中!我想我更喜欢将实现的路径存储在数据源中,而不是实现本身。不过,规则引擎可能是正确的方法!