Java生鲜电商平台-订单配送模块的架构与设计

Java生鲜电商平台-订单配送模块的架构与设计算法

 

生鲜电商系统最终的目的仍是用户下单支付购买,小程序

因此订单管理系统是电商系统中最为复杂的系统,其做为中枢决定着整个商城的运转,架构

本文将对于生鲜类电商平台的订单设计作一个完整的分析,也对前阶段工做作一个复盘总结优化

 
 

订单系统设计的好坏,决定了平台的可用性、后期的功能拓展和商城价值;订单系统贯穿于整个商城系统,其余各个系统的设计也是为订单系统提供数据支撑。从用户提交订单的那一刻到订单完成,到售后,都须要订单管理系统来管理。设计

订单管理系统从流程生成过程,大体分为三部分:orm

1.阶段1、订单生成过程:用户经过平台选择商品,选择添加至购物车(某些平台下单过程无加入购物车流程),生成订单价格,提交订单,后台根据优惠信息、活动信息、会员价等生成订单金额,通常具体到每一个商品订单实付金额。资源

2.阶段2、订单配送过程:用户支付完成,从仓储发货、配送、用户收货后订单完成,如无提起售后流程,通常订单到此就算完成,正常的订单到阶段二流程即结束了。io

3.阶段3、订单异常、售后流程:用户在前两个阶段过程当中发起支付取消、提起商品售后流程,通常在订单商品配送过程当中是不容许用户发起退款,等用户收到货物后才可发起售后,对于生鲜类平台,可能不会作退货的功能。社区

1、订单生成过程

首先,是用户在商城内选购商品,这个阶段能够叫作用户购物行为。form

而后,是系统调取各个系统的数据,计算订单的最终价格,这个阶段能够叫作数据处理过程。

最后,是将订单价格在用户端显示,这个阶段叫作表现层显示。

 
订单数据流程

一、订单提交生成过程

用户下单后系统须要生成订单,生成订单过程需获取商品信息,商品是否涉及相关优惠活动;获取用户会员信息(因为小程序作了付费会员,付费会员与普通会员购物部分商品有不一样优惠力度和商品价格差别)。

用户提交商品订单时须要考虑商品库存问题:1.用户提交订单时锁定商品库存,即下单减库存。2.用户付款后锁定商品库存。什么时候锁定商品库存得看具体状况,我的感受下单锁库存在商品库存很少,商品畅销状况下用户体验更好,避免在用户支付完成后商家无库存发货。因为社区生鲜类商品,货损较严重,因此设计为用户付款后锁定库存。

二、支付订单后是否须要拆单/合单

订单拆单:客户同时在多家店铺下单,不一样的店铺的商品在正常状况下是要拆开的;自营平台商品的订单是否须要拆单根据发货仓是否相同,发货仓不一样,也是须要根据商品发货单进行拆单。总之同一个订单,会有多个包裹多个运单发货,就须要将订单查看。

订单合单:同一个用户不一样订单须要考虑是否合单发货,需根据实际状况而定,订单合单后,多个订单生成一个发货单发货。

三、订单商品优惠分摊

1. 为何要对订单金额进行分摊?

首要因素是退款,在订单付款成功以后,若是不针对单个商品进行金额分摊,那么若是用户须要退订单中的部分商品,无法计算须要退的金额。一样若是只是单一商品品类券,则根据符合优惠券使用条件的商品进行分摊,其余商品按照商品售卖价格。

财务对帐:将优惠金额分摊到每一个商品上,能核算统一订单下的每一个商品分别分摊的优惠金额,好比:平台券,一个使用平台券的订单最终须要计算每一个商品分摊的优惠金额,以肯定每一个商品的实际付款金额和享受平台优惠的金额。

核算成本:经过把优惠金额分摊到每一个商品上去,运营,财务或采购人员能够评估营销活动的成本。

2. 优惠金额分摊逻辑

按照最小维度进行分摊:即优惠金额须要分摊到每一个商品,且同一个商品采购数量大于1时,该商品最终只能有一个分摊后的价格

优惠分摊比例:按照商品金额分摊对应比例的优惠,保证不一样商品享受优惠的公平性,不然会出现商品应分摊的优惠大于商品的销售价或影响用户体验。

偏差处理:减少偏差主要途径是在算法层面上进行优化,同时也没法避免偏差,多余的偏差须要按照不一样的优惠活动分别存储起来,在财务对帐和退款的时候须要用到。

这里必须提一下,这里订单商品优惠分摊的前提是订单中商品符合优惠条件,订单中不符合优惠条件的商品不参与优惠分摊。

2、订单配送过程

用户在下单完成后,限制了用户退款订单状态,只容许用户在订单状态为:待发货和配送完成状态下才能够申请退款。支付完成后订单发货状态共分为:待发货、分拣中、配送中、商品到达代收点、配送完成、用户已取货这几个状态。

 
订单生成配送过程

一、针对有缺货/无货状况

避免生鲜水果类商品的货损过大问题,仓储通常备货较少,有时需及时从生产商拿货,就可能会出现商品不足、无货的状况,如发生缺货、无货的状况,是否补单发货,仍是直接退款给用户

生成补货单发货或者退款:在仓储发货分拣发现缺货、无货状况时可发起异常配送流程,针对缺货、无货的商品按照订单生成时间判断影响了具体哪些用户订单,在缺货、无货商品订单中操做想应的补货或者退款操做

这里须要说明一点,咱们强调的是客服主动跟受影响的用户进行沟通,而非系统自动发起补货或退款。

二、用户同一天下单屡次的订单是否须要合单发货

针对同一用户同一天内的订单是否须要合成一个发货单发货,须要根据具体场景具体考虑,若是作了合成一个发货单,几单包裹在一块儿是否一个包裹能装下,若是是须要两三个包裹装的话,只有一个发货单如何处理,都是须要考虑解决方案。

3、订单异常、售后流程

订单售后通常包括未支付订单取消、下单完成后未配送前发起退款申请,配送完成后的订单申请售后过程,未支付订单的取消和下单完成后未配送前发起的退款申请,系统在接收到退款申请时会自动给用户订单退款;配送完成后的订单因为商品性质的缘由,限定了不支持无理由退货退款,而且没有作退货流程的处理,主要考虑到商品退回至仓库已无价值。

订单系统逆流程的分支不少,须要兼顾业务场景,通常在从0到1的过程当中,售后流程会先经过线下的方式解决,以便能把资源集中在更核心的部分。

相关文章
相关标签/搜索