订单系统作为一个业务子系统,在电商、零售、餐饮、教育、医疗等saas系统中非常常见。
只要平台上有交易行为,订单系统就不可避免,因为最终还是要创建订单,支付订单才能完成交易。
由于订单系统出现的频率很高,而且不同业务的订单设计思路也大同小异,我们可以将其抽象为一个底层系统,建立一套订单设计模型,以便快速应用到各种业务系统中。
订单系统架构
第一名
以电子商务为例:
作为订单电子商务最复杂的核心系统(或模块),它构建在其他系统模块之上。
但不限于商品、优惠券、会员、营销活动、地址信息、积分、运费、购物车、支付、发货和收货等模块。,都与订单密切相关。任何模块的任何变化都可能影响订单。毫不夸张的说,订单是交易平台的核心子系统。
订单中包含的信息:
电子商务系统架构:
所以做好订单管理最重要的是覆盖面的全面性和扩展性强。
订单系统模块拆分
第二名
订单主要分为订单创建和订单管理。
一、订单创建:
订单创建可以由C端用户和B端用户发起,在订单系统中生成。
页面上显示的订单创建节点,是在订单提交页面上点击“提交订单”按钮的瞬间,订单将被创建。
表面上当然是点击“提交订单”会触发订单创建,但背后创建过程会调用前面提到的模块,而且掺杂了大量的逻辑判断。
提交订单页面原型:
为以下订单生成的支票:
也就是在“提交订单”的瞬间,会对多个信息进行逻辑判断。
送货信息:送货方式和送货地址。
需要判断是否填写了送达方式和地址;(如果是外卖)送货地址是否超出送货范围;
商品
需判断商品是否是上架状态;商品是否售罄;商品库存是否小于订单中的商品数量;(如有赠品赠送)需判断赠品是否库存不足;
运费
选择收获地址后,会根据后台的运费模版自动进行运费计算,并回显在【提交订单】页;提交订单时需要校验运费信息是否变动;
促销活动
需要判断当前用户适用的所有促销活动,以及这个订单中的商品。促销活动一般分为平台级和店铺级两个层次。
平台级:针对平台内商品的促销活动;店铺级:针对店铺内商品的促销活动。
通常,对此类活动有一些限制,例如
订单满多少金额才可以参与只限一定等级的会员只限某些类目,或指定商品才可以参与如果同时满足多个活动参与的条件,则只能参与优先级最高的活动;
依促销活动的数量和复杂程度而定。
会员优惠
提交订单时,需要判断会员等级和对应的优惠权益是否发生变化,可用积分数是否发生变化。
优惠券
需要判断优惠券是否已核销;是否已过期;是否在适用时段内;是否已被使用等。
提交订单后,订单即被创建。此时,订单模块还会向其他模块发出指令进行相应的配合:
订单中的商品库存需要在商品模块中进行冻结处理订单中使用的优惠券需要在优惠券模块中进行状态变更订单中使用的促销活动权利应该标记为已使用该权利订单中扣减的积分应该在用户积分中进行扣减等
当然,对于外卖,还需要确定店铺是否在休息时间,店铺是否开通了配送方式,订单价格是否符合配送价格等。提交订单时。如果有任何变化,用户会得到相应的提示。
二。订单管理
订单创建后,将进入订单管理阶段。
c面页面:
b的订单管理页面:
订单轮换流程:
关于订单状态
从客户端(买家)的角度来看,电子商务平台订单流转的中间状态一般有以下六种状态:
1)待付款:用户提交订单后,付款前,处于待付款状态,商家也处于待付款状态。
2)待发货:当用户完成支付后,订单状态变为待发货,商家端也同步更新为“待发货”状态。
3)待收:当商家在后台确认发货时,买家端订单状态显示会变为“待收”状态,卖家端显示“已发货”。这里的两个显示会有区别。
如果买家一直不确认货物,那么一般平台会有一个周期(淘宝是14天)。14天后,系统会自动确认收货,并更改为成功交易。
4)退款:共有两种情况会导致订单变为“退款”状态。
是在“待收货”状态下,即商家已经发货后,买家进行退款操作,那么订单状态会直接变成退款中;是在“待发货“状态下,买家取消订单/卖家操作全额退款,则进入退款中状态。是买家确认收货后,申请退款,则进入”退款中“状态,一般电商平台都支持确认收货后7天无理由退货
5)交易完成:有两种情况会导致订单变为“交易成功”
是用户确认收货;是买家申请部分退款,退款流程结束,且剩余商品确认收货后,订单变更为“交易成功”。
6)交易关闭:有三种情况会发生“交易关闭”。
是“交易成功”后发起全额退款,完成退款流程变更为“交易关闭”;是在”待支付“的时候买家取消订单/订单超时过期);是“待发货”的时候买家申请退款,商家确认后订单变更为“交易关闭”。
关于订单中的优先分配
为什么要考虑优先分享?如果在下单的时候使用了某种优惠活动,在订单部分退款的时候,我们当然不能直接把商品原价退给买家,这样会给卖家造成很大的损失。
因此,在生成订单时,将使用优惠活动为货物计算优惠分配。
示例
我们举个最简单的例子。买方购买了100元的商品和200元的商品。提交订单时,他参加了满100减50元的促销活动,所以最后支付了250元。
如果买家收到货后觉得A不满意,申请退款,在卖家同意并完成退款流程后,应该退多少给A?
退款金额A =100*250/(100+200)=83.33元(保留小数点后2位)
他收不到100元,因为如果收了100元,就相当于最后用150元买了B,是有瑕疵的。
再来看一个更复杂的案例:这个案例涉及平台跨店促销,店铺促销,优惠券。
示例
买方购买了一件100元的商品(A店),一件B200元的商品(A店),一件C300元的商品(B店)。
提交订单时参加了A店200加50的促销活动,也参加了2号平台200加100的促销活动。除此之外,我还用了一张150元起的平台券。
然后按照优先级,首先A+B的商品在享受了A店的活动1后变成(100+200-50)=250元,然后A+B+C继续参加平台的活动2变成(250+300-100)=450元,最后用一张平台券支付(450-150)=300元,也就是最后支付300元。
即按照活动1 >: 2 >活动:凭证优先参与。
假设退款时不能退券,订单生成时,我们来计算一下A、B、C各层折扣分配后的可退金额是多少:
级别1:分配活动1后
商品A=100-50/(100+200)*100=83.33元
商品= 200-50/(100+200) * 200 = 166.67元
C=300元
级别2:分配活动2后
商品A=83.33-100/550*83.33=68.18元
商品= 166.67-100/550 * 166.67 = 136.37元
商品= 300-100/550 * 300 = 245.46元
注:83.33+166.67+300=550元
第电影:凭证共享后
商品a = 68.18-150/450 * 68.18 = 45.45元
商品= 136.37-150/450 * 136.37 = 90.91元
商品= 245.46-150/450 * 245.46 = 163.***元
注:68.18+136.37+245.46=450元
因此,经过从最高优先级到最低优先级的三次优先分配后,A的实际可退金额为45.45元,B为90.91元,C为163.***元。
2.关于开账单。
在电商平台,只要有购物车功能,就会出现买家跨店购买商品的情况。
比如一个订单从A店买了一个产品A,从B店买了一个产品B,对于买家来说,他只是下了一个订单;但是对于平台来说,需要将A的订单信息推送至门店A,B的订单信息推送至门店B,这就需要对买家的订单进行拆包。
另外,对于提交给A店的订单,如果订单包含多种商品A、B、C,也可能涉及到**的拆卸。比如A和B一起发货,C分开发货。
本文来自再可爱一点好了投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/480383.html