本文想以极简的方式,列一下实物电商订单系统设计的关键步骤及需要注意的问题,供初做电商订单系统的同学参考。但本文是一个纲领性的文章,没有事无巨细的面面俱到,如需深入探讨某个细节,欢迎留言或查阅相关资料。
一 、订单数据构成
电商订单,一般分为:订单信息、商品信息、收货人信息、发票信息、支付及优惠信息,几部分组成。此处不展开每种信息包含的具体字段,但告诉大家在规划电商订单系统时,需要从这些方面进行考虑。
二 、判断可用优惠券及优惠券自动使用策略
在生成订单前,在订单信息提交页,一般由系统判断可用的优惠券,并按照策略自动选择最合适的优惠券。具体分两步:
首先根据有效期、满减条件、可用店铺、可用品类、使用等条件,判断出可用优惠券。
其次在可用优惠券中,根据最大优惠金额、剩余有效期最短、是否可以叠加等规则,选择本单使用的优惠券。
三、计算运费
在选择收货地址后,或在进入确认订单信息页面前,需按店铺、包邮条件、收货地址、运费规则等,计算运费。
四 、验商品状态、验库存、锁库、策略
除预售商品之外,在用户购买时,需要保证商品在售、保证有库存、保证付款后能发货。因此,在成功付款前,需要验商品状态、验库存、锁库存。一般在生成订单或支付前,验商品状态、验库存,生成订单后或支付后锁库。但是,这两个时机的优缺点都显而易见。若没有特殊情况,建议在生成订单环节执行这三个操作,这样用户体验较好。
时机
|
优点
|
缺点
|
生成订单时
|
客户体验好,不至于到付款时,突然发现无法支付了。
|
需要建立避免恶意大量下单、恶意下大数量订单的策略。
|
支付时
|
可以避免恶意占库存。
|
若无法顺利支付,造成糟糕的用户体验。 |
五 、优惠券、积分等分摊策略
为了准确的核算及避免退货时把优惠退给了用户,一般在订单生成时,需要按商品金额、优惠券、积分的使用范围,把它们分摊到每种商品上。
六、拆单策略
若用户是从购物车进行下单,当涉及到多个商家、多个发货仓库,或者预售商品与现货商品一起下单时,就涉及到拆单。一般的拆单规则是,自营商品按仓库拆单,商家商品按商家拆单;当预售商品到货期大于N天时,与现货商品拆单。
针对拆单的订单,一般会把拆单前、拆单后的信息都记录下来。并且分别包括订单信息、商品信息、收货人信息、支付信息、开票信息,主要区别在于商品信息、支付信息的明细程度不同。
若拆单前,有运费,还需考虑按商家、商品金额、重量、是否包邮等进行运费分摊,一般分摊到订单上即可,不用细化到商品力度。因为运费是一次服务,商品一旦发出,运费就不可退了。若订单中都是同一个商家的商品,也可以不分摊运费,直接计入订单。
七、合并支付策略
针对自动分拆的订单,若订单生成后,没有回退页面前提下随即支付,一般都是合并一次支付,支付后由系统自动分拆支付金额。若自动分拆订单后支付前,回退了页面,一般支持“合并支付、分单支付”两种方式。
若用户分单支付了部分订单,而另一部分订单没再支付,造成订单关闭了。这种情况,一般未支付订单分摊的优惠券,不再回退给用户。也就是说,不支持一张优惠券分次使用。这种情况下分摊的积分,可以退给用户,也可以不退。这就看每家公司的具体策略。因为积分本来是零碎的,从用户满意度的角度考虑,建议退给用户。
八、支付校验与异常排查
电商系统一般都是线上支付,用户付款后,会把订单推送到库存或商家系统,生成发货单或商家的销售订单。这个时候涉及“用户订单、发货单(商家订单)、支付平台的流水单”三者的支付状态校验,确保三者的支付状态一致。并且需要建立定时任务,定时巡查是否存在三者支付状态不一致的情况,若出现了不一致,及时发出警报。
九、订单状态及订单流转注意点
一、针对拆单的主单,在拆单后,需要终其后续状态流转;并后续按子单状态进行流转。比如:设置一个”已拆单”的状态,专门用于主单拆单。
二、需要严谨思考每个状态的流转关系、触发时机、触发动作,及约束关系。下图,通过一个不需要拆单的订单,进行简单示例。
一般情况下,在订单生成时,已经考虑按仓库、按商家、按是否预售等因素进行了拆单,这在很大程度上实现了一个订单对应一张快递单。这也是大多数电商,设置一个快递单对应一个订单的原因。
若真需要实现一个订单对应多个快递单,需要在快递单上设置每张快递单包含什么商品及商品数量。
十一 、商品下架不要影响已生成的订单
建议商品下架后,不要影响已经下单的订单,包括退货入库。也就是在订单生成时,判断商品是否下架,支付时、售后退货时不再判断上下架状态。否则,非常影响用户体验。
另外,建议支持在上线状态支持非销售属性、非价格字段的修改。这样,就可以避免一些不必要的上下架。
十二、订单拦截策略
当用户付款后,会在WMS中生成发货单。但是,用户有可能取消订单,建议在完成出库前,支持订单拦截。拦截成功后,取消发货单及未出库的出库单,取消用户订单并退款。一旦出库成功,订单拦截成本非常高,建议不再支持订单拦截。可以通过7天内无理由退货或与用户协商解决。
十三、一张订单可以设置多套订单状态
为了方便用户与后台运营人员,可以给用户订单设置多套状态,比如用户看到的一套,仓库发货一套。然后,建立两者的对应关系;以便满足他们不同角度的需要。
十四、售后处理
售后业务需生成售后单,并根据退货、换货、维修等售后方式,走不同的售后流程。针对售后运费,需在下单前明示,或与用户协商解决。退货完毕后,建议更新原订单状态、更新库存。换货业务,商家同意换货后,建议从后台生成一张金额为零的新订单。
十五、不同电商异同说明
本文是以实物电商为例,进行的总结。但是,电商商品不同,业务流程也有不少区别。比如:充值业务不需要发货,旅游订单可能支持先付定金,旅游订单的退货不需要回寄商品等。所以,本篇难以面面俱到,权作抛砖引玉。
··················END··················
作者:王晓明(微信公众号:产品人晓明,欢迎关注)。
特别申明:本站的主旨在于收集互联网运营相关的干货知识,给运营小伙伴提供便利。网站所收集到的公开内容均来自于互联网或用户投稿,并不代表本站认同其观点,也不对网站内容的真实性负责,如有侵权,请联系站长删除,转载请注明出处:有它,你也能做电商订单系统:https://www.zcly.cn/35114.html。