以实物电商为例,解读电商订单系统设计细节

本文想以极简的方式,列一下实物电商订单系统设计的关键步骤及需要注意的问题,供初做电商订单系统的同学参考。但本文是一个纲领性的文章,没有事无巨细的面面俱到,如需深入探讨某个细节,欢迎留言或查阅相关资料。

以实物电商为例,解读电商订单系统设计细节

一 、订单数据构成

电商订单,一般分为:订单信息、商品信息、收货人信息、发票信息、支付及优惠信息,几部分组成。此处不展开每种信息包含的具体字段,但告诉大家在规划电商订单系统时,需要从这些方面进行考虑。

二 、判断可用优惠券及优惠券自动使用策略

在生成订单前,在订单信息提交页,一般由系统判断可用的优惠券,并按照策略自动选择最合适的优惠券。具体分两步:

首先根据有效期、满减条件、可用店铺、可用品类、使用等条件,判断出可用优惠券。

其次在可用优惠券中,根据最大优惠金额、剩余有效期最短、是否可以叠加等规则,选择本单使用的优惠券。

三、计算运费

在选择收货地址后,或在进入确认订单信息页面前,需按店铺、包邮条件、收货地址、运费规则等,计算运费。

四 、验商品状态、验库存、锁库、策略

除预售商品之外,在用户购买时,需要保证商品在售、保证有库存、保证付款后能发货。因此,在成功付款前,需要验商品状态、验库存、锁库存。一般在生成订单或支付前,验商品状态、验库存,生成订单后或支付后锁库。但是,这两个时机的优缺点都显而易见。若没有特殊情况,建议在生成订单环节执行这三个操作,这样用户体验较好。

五 、优惠券、积分等分摊策略

为了准确的核算及避免退货时把优惠退给了用户,一般在订单生成时,需要按商品金额、优惠券、积分的使用范围,把它们分摊到每种商品上。

六、拆单策略

若用户是从购物车进行下单,当涉及到多个商家、多个发货仓库,或者预售商品与现货商品一起下单时,就涉及到拆单。一般的拆单规则是,自营商品按仓库拆单,商家商品按商家拆单;当预售商品到货期大于N天时,与现货商品拆单。

针对拆单的订单,一般会把拆单前、拆单后的信息都记录下来。并且分别包括订单信息、商品信息、收货人信息、支付信息、开票信息,主要区别在于商品信息、支付信息的明细程度不同。

若拆单前,有运费,还需考虑按商家、商品金额、重量、是否包邮等进行运费分摊,一般分摊到订单上即可,不用细化到商品力度。因为运费是一次服务,商品一旦发出,运费就不可退了。若订单中都是同一个商家的商品,也可以不分摊运费,直接计入订单。

七、合并支付策略

针对自动分拆的订单,若订单生成后,没有回退页面前提下随即支付,一般都是合并一次支付,支付后由系统自动分拆支付金额。若自动分拆订单后支付前,回退了页面,一般支持“合并支付、分单支付”两种方式。

若用户分单支付了部分订单,而另一部分订单没再支付,造成订单关闭了。这种情况,一般未支付订单分摊的优惠券,不再回退给用户。也就是说,不支持一张优惠券分次使用。这种情况下分摊的积分,可以退给用户,也可以不退。这就看每家公司的具体策略。因为积分本来是零碎的,从用户满意度的角度考虑,建议退给用户。

八、支付校验与异常排查

电商系统一般都是线上支付,用户付款后,会把订单推送到库存或商家系统,生成发货单或商家的销售订单。这个时候涉及“用户订单、发货单(商家订单)、支付平台的流水单”三者的支付状态校验,确保三者的支付状态一致。并且需要建立定时任务,定时巡查是否存在三者支付状态不一致的情况,若出现了不一致,及时发出警报。

九、订单状态及订单流转注意点

需注意两个问题。

一、针对拆单的主单,在拆单后,需要终其后续状态流转;并后续按子单状态进行流转。比如:设置一个”已拆单”的状态,专门用于主单拆单。

二、需要严谨思考每个状态的流转关系、触发时机、触发动作,及约束关系。下图,通过一个不需要拆单的订单,进行简单示例。

十、发货策略

一般情况下,在订单生成时,已经考虑按仓库、按商家、按是否预售等因素进行了拆单,这在很大程度上实现了一个订单对应一张快递单。这也是大多数电商,设置一个快递单对应一个订单的原因。

若真需要实现一个订单对应多个快递单,需要在快递单上设置每张快递单包含什么商品及商品数量。

十一 、商品下架不要影响已生成的订单

建议商品下架后,不要影响已经下单的订单,包括退货入库。也就是在订单生成时,判断商品是否下架,支付时、售后退货时不再判断上下架状态。否则,非常影响用户体验。
另外,建议支持在上线状态支持非销售属性、非价格字段的修改。这样,就可以避免一些不必要的上下架。

十二、订单拦截策略

当用户付款后,会在WMS中生成发货单。但是,用户有可能取消订单,建议在完成出库前,支持订单拦截。拦截成功后,取消发货单及未出库的出库单,取消用户订单并退款。一旦出库成功,订单拦截成本非常高,建议不再支持订单拦截。可以通过7天内无理由退货或与用户协商解决。

十三、一张订单可以设置多套订单状态

为了方便用户与后台运营人员,可以给用户订单设置多套状态,比如用户看到的一套,仓库发货一套。然后,建立两者的对应关系;以便满足他们不同角度的需要。

十四、售后处理

售后业务需生成售后单,并根据退货、换货、维修等售后方式,走不同的售后流程。针对售后运费,需在下单前明示,或与用户协商解决。退货完毕后,建议更新原订单状态、更新库存。换货业务,商家同意换货后,建议从后台生成一张金额为零的新订单。

十五、不同电商异同说明

本文是以实物电商为例,进行的总结。但是,电商商品不同,业务流程也有不少区别。比如:充值业务不需要发货,旅游订单可能支持先付定金,旅游订单的退货不需要回寄商品等。所以,本篇难以面面俱到,权作抛砖引玉。

本文由 新媒体之家 作者: 王晓明 发表,其版权均为原作者所有,文章内容系作者个人观点,不代表 新媒体之家 对观点赞同或支持,未经许可,请勿转载,题图来自Unsplash,基于CC0协议。
0

发表评论