首页 新闻 会员 周边

电商订单优惠业务计算(JAVA)

0
悬赏园豆:50 [已解决问题] 解决于 2019-08-30 15:51

各位大佬,想请教一个关于电商中订单的优惠计算的思路问题。
正常电商系统中,添加购物车完成之后,下一步就是去结算,生成订单,这里就涉及到平台的优惠计算的一个问题,比如商品购买几件之后满减,比如购买几件之后折扣,比如满多少金额折扣,比如全场折扣;
当然这种针对单个商品的优惠还是比较好设计的,如果设计到多个商品,或者一个活动里面的所有商品呢;

   针对这种订单生成时候,计算优惠的逻辑(针对单个商品的优惠,针对某个活动里面的商品的优惠,针对全场商品的优惠),有没有思路比较清晰的文章分享一下,不胜感激。
Mr_伍先生的主页 Mr_伍先生 | 初学一级 | 园豆:6
提问于:2019-07-26 18:15
< >
分享
最佳答案
0

所以有一个下单流程.
你要在下单流程中定义几个扩展点.这几个扩展点是给业务部门做活动的方式.
比如
1.确认商品列表扩展点
2.确认商品单价扩展点
3.确认商品总价扩展点
4.确认支付扩展点.
定义一个I活动接口 相关的活动都继承这个接口.这个接口只有一个方法->处理. 参数为订单上下文.
订单上下文在各个活动中流转修改.
比如买赠活动就在第一个扩展点中对订单增加单价为0的商品.
满减就在第三个扩展点修改确认后金额.
总体思想就是asp.net管道周期的思路.
有一个上下文(订单) 有一个事件管道(订单处理流程).在这个事件管道中有多个具体定义的事件(活动.) 这些扩展点都是可配置.但是是有限的.
业务部门是一定要约束的.不然他们会想出一大堆神经病的业务让你去实现.

收获园豆:50
吴瑞祥 | 高人七级 |园豆:29449 | 2019-07-26 20:32
其他回答(1)
0

文章没见过,思路倒是有一个:就是你得定义好抵扣的优先级,比如优先享受活动优惠,然后再满减;提交订单时按优先级逐一判断抵扣条件,其中一些条件应该是允许用户在界面上修改的,比如选择按哪种活动来结算。可能还会有多个抵扣顺序,所以你还得理清互斥的抵扣逻辑,比如用了优惠券,就不能再按活动价来结算。

总之,定义好了抵扣的优先级和互斥条件,然后按既定规则逐一判断计算就会很顺的。

韩宗泽 | 园豆:681 (小虾三级) | 2019-07-26 20:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册