电子商务类网站促销优惠组件设计

今天在ITEYE看到有人问:

写道
现在各大电商都有自己的促销优惠方式,满减,立减,折扣,现金券,返现,积分抵现,赠送积分,使用范围也可能是单种商品,大类商品,单笔订单等,优惠环节涉及购买时,订单时和支付时,可谓非常纷繁复杂。
现在我正在开发的电子商务平台有商品Goods和货品Product,有订单Order和订单项OrderItem,我希望能尽量减少与现有功能的耦合,而设计一个尽可能全面覆盖上述优惠促销的组件,并可在以后进行扩展,现在初步有一个设计雏形,但是实际过程中发现还是太复杂,并且不得不开始耦合了,所以决定停工重新整理思路。
希望有能人给点思路和建议

 

随便写了一个方案,设计思想是,在购物车结算前匹配促销规则计算出最终优惠金额

		
                                     +-----------------------+
User -> Goods -> Cart -> Delivery -> | Promotions components | -> Checkout
                                     +-----------------------+
                                     | Promotion rule 1      |
                                     | Promotion rule 2      |
                                     | Promotion rule 3      |
                                     | Promotion rule 4      |
                                     | Promotion rule 5      |
                                     +-----------------------+
		
		

数据库设计

		
 +--------------+
 | goods        |
 +--------------+
 | id           |o---+
 | ...          |    |
 | ...          |    |
 +--------------+    |    +----------------------+
                     |    | goods_promotion_rule |
 +--------------+    |    +----------------------+
 | promotion    |    |    | id                   |
 +--------------+    +--->| goods_id             |
 | id           |o------->| promotion_id         |
 | name         |         | ...                  |
 | plugin       |         | ...                  |
 +--------------+         +----------------------+
		
		

goods_promotion_rule 负责将商品与促销规则关系建立起来

promotion 是促销脚本,我方案是使用 lua 编写促销脚本,plugin用于存储lua文件地址

这样做的好处是不用因为促销规则改变而重新修改程序,单独制作 lua脚本即可

以上仅仅提供一个思路,你还可以建立一个goods_promotion_group将促销商品分组,然后再与goods_promotion_rule建立关系。另外在购物车中会同时出现多种促销规则,也是要考虑的

 

 

物流配送插件设计

			
                         +-------------+     +-----------------------+
User -> Goods -> Cart -> | Delivery    |  -> | Promotions components | -> Checkout
                         +-------------+     +-----------------------+
                         | rule A      |     | Promotion rule 1      |
                         | rule B      |     | Promotion rule 2      |
                         | rule C      |     | Promotion rule 3      |
                         | rule D      |     | Promotion rule 4      |
                         | rule E      |     | Promotion rule 5      |
                         +-------------+     +-----------------------+
			
			

数据库设计

			
 +--------------+
 | shipping     |
 +--------------+
 | id           |o---+
 | name         |    |
 | ...          |    |
 +--------------+    |    +----------------------+
                     |    | shipping_rule        |
 +--------------+    |    +----------------------+
 | zone         |    |    | id                   |
 +--------------+    +--->| shipping_id          |
 | id           |o------->| zone_id              |
 | name         |         | plugin               |
 |              |         | ...                  |
 +--------------+         +----------------------+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值