开始做 java2 年了,电商的其他部分我都感觉还好,就是这个优惠券模块我就是搞不来。在这里请教一下各位前辈,你们在实现电商的优惠券相关模块是怎么实现的?优惠券之间的互斥、组合等等怎么搞?
1
alittlefun 2019-05-24 21:17:55 +08:00 via Android
用枚举加类别,平台啊,商家啊,活动啊等,使用的时候用 if 判断,我也不是很懂,个人觉得
|
2
tommyzhang 2019-05-24 21:22:12 +08:00
自己写一个处理器接口 把模板 发放 使用抽离成小流程
|
3
sazima 2019-05-24 22:08:45 +08:00
使用 python 做过, 没有考虑过互斥, 互斥是什么?
|
4
jc89898 2019-05-24 23:31:53 +08:00
算法搞
|
5
uxstone 2019-05-24 23:51:39 +08:00
用规则引擎搞?
|
6
azh7138m 2019-05-25 01:27:19 +08:00 via Android
|
7
zjsxwc 2019-05-25 07:44:44 +08:00 via Android
其实和运费计算差不多吧。
一个是卖家设置不同省份的按重量还是按数量计算的运费模板,下单时根据买家收获地址和所买的东西计算运费。 一个是卖家设置不同的优惠券规则,下单时根据买家优惠券计算价格。 |
8
changdy 2019-05-25 09:54:58 +08:00
有想过 但是其实最重要的 是 产品的设计思路.
需要先定义好 商家, 物品 ,用户,券的各种类型,才能写代码. 要不然坑就比较大. 改动也可能会比较复杂 |
9
nonprocoder 2019-05-25 10:08:46 +08:00
让产品定规则
|
10
DovaKeen 2019-05-25 10:15:44 +08:00
大胆写,有 bug 就说是 feature
|
11
shazh520 OP 看了大家的回复,有所思考。之前一直以为优惠券和权限认证一样,和业务不强相关,可以剥离出来,并且可能还会有一些成熟的开源框架可以研究学习,但是这两天看了网上的一些资料和大家的回复,颠覆了之前的认知。
|
15
shazh520 OP @changdy 就是在设计阶段有点难受,有很多的不确定性。券的类型需要可以可扩展,数据库怎么设计。券可以同时使用,计算链该怎么设计。做的是一个平台,而且规则可能还得依着入驻的商家,所以要封装这些不确定性。
|
17
laojiaqing 2019-05-25 14:01:03 +08:00
你这些不应该等产品出规则再搞么,自己想这么多干什么
|
18
shazh520 OP @laojiaqing 不想想自己没底,拍着胸脯说可以干,然后干不出来咋办 哈哈
|
19
shazh520 OP 还有就是这个前端在选择优惠券或者增减商品的时候是不是都要请求后端计算价格?前端计算价格我感觉不太现实
|
20
kanepan19 2019-05-25 15:45:44 +08:00
应该会炸出不少 电商小伙伴
|
21
sindri 2019-05-25 15:47:37 +08:00
不错不错。。
|
22
Raymon111111 2019-05-25 15:54:09 +08:00
搜一下
规则引擎 |
23
palmers 2019-05-25 16:03:46 +08:00
我知道的是用规则引擎, 不管是促销规则还是优惠券规则 都是都计算引擎,只要合乎正常逻辑都是可以做出来的 不用担心做不出来 应该担心的是时间
|
24
megachweng 2019-05-25 16:25:26 +08:00 via iPhone
注意 1 分钱商品使用优惠券的情况,遇到过坑
|
25
batter 2019-05-25 16:32:04 +08:00
说一下我的理解,每一类型的券单独封装一个类进行操作,订单创建完成之后使用 useCoupon 方法,cancelCoupon,等方法来使用券,目前所接触的其实也不是很难,也可能我们公司业务类型不复杂,太复杂暂时没接触过
|
26
sammeishi 2019-05-26 12:46:28 +08:00 via Android 2
分享一下最近给我司架构的 ERP 优惠子系统。优惠券只是优惠系统的一个功能,券只是一种发行方式,与免单,折扣,团购等其他优惠本质上是一样的,都是优惠行为即对订单内的目标进行减额或者额外赠送,只不过在使用途径上有区别而已。我司的优惠系统比较复杂而且涉及多分店跨店全部说完太长了。只是简要的说一下核心的逻辑。
首先把优惠系统的模型提出来,然后嵌入到订单系统中做成解析器,所有的优惠都会挨个分解成模型然后根据模型去通知结算系统应用。所以最重要的是提取这个模型,而不是代码层面,那些乱七八糟的 oop 之类的,模型你搞明白用什么实现都行。 我的模型主要是这几个属性: 条件。目标。行为。值。 比如满 3 减 1 优惠,条件是必须购买三份,目标是这 3 份商品,行为是减份,值是 1。 比如第二份半价,条件是购买份数大于 2,目标是第二份商品,行为是减额,值是 0.5 比如满 399 整单八折,条件是消费金额大于 399,目标是支付总额,行为是减额,直是 0.2% 再比如员工免单,条件是员工必须有免单权限,目标是支付总额,行为是减额,值是 100% 上门例子都是常见的业务中用到的,优惠子系统都可以将它们化解成模型,最终统一处理,而不需要将所有的优惠,每个都写一个逻辑。 模型大概是这个样子,你可以将模型分配一个 id,在跟踪这个 id,,给予使用次数得记录,那这个 id 就是优惠券。团购也是同理。 行为和条件可以多个组合的,实现这种复杂的优惠: 如满三减一送商品在整单 95 折最后在送免运费券和给会员积分。 手机码字太累,互斥就不说了,整体大概就是这个逻辑,你可以参考一下。 |
27
icerwinter 2019-05-26 12:49:21 +08:00
这个有些复杂, 只了解 规则引擎, 有互斥条件, 具体也不了解
|
29
sammeishi 2019-05-26 22:06:22 +08:00 via Android
@shazh520 你要是这方面没经验,建议你找一些案例去实际上手体验分析原理或者找有经验同事请教,优惠业务很复杂的因为他牵扯到结算与订单系统,对于电商系统来说这相当于牵扯全部东西了,纯靠凭空想象很难有进展的。 我说的也只是整个的冰山一角,比如比较重要的一个,用户体验方面: 如果你让用户手工去填写复杂的优惠相关参数,用户肯定会疯掉的,还有更复杂的: 场景优先的互斥规则 如何实现等等。
|