电商系统之订单系统

责编:menVScode 2019-07-05 11:10 阅读(144)

概述

订单系统作为电商系统的“纽带”贯穿了整个电商系统的关键流程。其他模块都是围绕订单系统进行构建的。订单系统的演变也是随着电商平台的业务变化而逐渐演变进化着,接下来就和大家一起来解析电商平台的“生命纽带”。


上帝视角订单系统


订单系统的作用是:管理订单类型、订单状态,收集关于商品、优惠、用户、收货信息、支付信息等一系列的订单实时数据,进行库存更新、订单下发等一系列动作。订单系统业务的基本模型涉及用户、商品(库存)、订单、付款,订单基本流程是下订单——>减库存,这两步必须同时完成,不能下了订单不减库存(超卖),或者减了库存没有生成订单(少卖)。超卖商家库存不足,消费者下了单买不到东西,体验不好;少卖商家库存积压或者需要反复修改商品信息,反复麻烦,体验也不好。

---------------

订单基本概念

设计订单系统时包含几个大的方向需要考虑,这些内容决定了订单系统的稳定性和可持续性。

订单的多样性特点


主要由来源和操作的多样导致了订单多样性点。

订单字段

订单字段包含了订单中需要记录的信息,他的作用主要用于沟通其他系统,为下游系统提供信息依据。


订单信息

订单号作为订单识别的标识,一般按照某种特定规则生成,根据订单的增加进行自增,同时在设计订单号的时候考虑订单无序设置(防止竞争者或者第三方来估算订单量)。订单号后续用作订单唯一标示用于对接WMS(仓存管理系统)和TMS(运输管理系统)时的订单识别。

订单状态

订单状态在下面章节会详细描述

用户信息

指买家的相关信息,包括名称、地址、手机号。O2O还会多一种情况就是自提点,这样地址则会变为自提点的地址。地址信息在后续会作用在WMS和TMS上用于区分区域和配送安排。

商品信息

商品的基本信息和库存,金额由于比较特殊所以我把金额独立在商品信息以外说,不过逻辑上其实都属于商品信息范畴。商品信息主要影响库存更新和WMS产生。

金额信息

订单产生的商品信息,这里面除了要记录最终的金额,过程金额也需要记录。比如商品分摊的优惠金额、支付金额,应付金额等。在后续的订单结算、退换货、财务等环节都需要使用。

时间信息

记录订单每个状态节点的触发时间。

-------------

订单流程

订单流程是指整个订单从产生到完成整个流转过程,包括了正向和逆向流程的过程。

正向流程

这里面主要是涉及主流电商系统中的通用订单流程,部分细节可以根据自己平台的特殊性进行调整。

qda3

需要注意的地方

订单生成环节存在超时未支付自动取消的过程,库存的占用会在订单取消后释放。

如果选择COD(货到付款)则支付环节相应转移到订单配送之后,而过程中所有与款项相关的逻辑变为只操作金额数字,不对结算和账户进行打退款操作。

金额分摊需要到商品

订单系统审核主要对恶意用户或者刷单情况进行处理。系统可根据白名单、黑名单、消费频次、促销品购买量方面做风控规则。如果后续会进入到人工审核,则规则上可以适当从宽。当触发规则需要进行订单退订的行为。此处设计时要小心对用户体验的损害,往往前台文案上说明当前节点是审核状态或者是等待接单。

传统电商则是通过关联第三方物流的物流信息进行跟踪。

预售等货和移仓需要做成SOA服务,以便在交易页面计算预计时间和预计到货时间。移仓处理依赖仓库的情况,也会涉及到后续拆分和合并包裹的逻辑。

订单产生时先要判断报缺情况,如果出现报缺问题则要考虑整单报缺、部分报缺、换货或者换转退的情况(库存,仓促调拨和退款)。报缺情况分为系统报缺和实物报缺,这是承接但相对独立的两个环节。

电商系统要考虑7天无理由退货的情景,即订单状态完成后申请退货。此时主要涉及的是金额上的计算以及一些财务程序(如发票等)问题的处理。

逆向流程

逆向流程指订单发生取消、退货等情况时引发的订单流程过程。

触发逆向流程的触发主要有几种情况:

    (1) 用户自主取消订单(整单)

    (2) 风控系统触发取消订单(整单)

    (3) 客服接到客诉仲裁后触发取消订单(整单)

    (4) 超时未支付取消订单(整单)

    (5) 换货报缺转为退单(整单、部分报缺)

电商系统之订单系统

关注点

    订单状态(某一节点后如订单产生后不允许取消订单)

    当退单被商家拒绝后需要转入客服仲裁的环节

    部分退的订单促销一般保持享用状态,但金额按照分摊的金额进行退款

订单状态

从订单状态设计目的和存在价值去分析和理解它背后设计机制:维度及维度颗粒度大小。

1. 正向和逆向流程维度

    (1) 正向订单:已锁定、已确认、已付款、已发货、已结算、已完成、已取消等

    (2) 正向预售订单:预付款已付未确认、已确认未付尾款(变更)

    (3) 正向问题单:未确认、未锁定、未发货、部分付款、未付款等

    (4) 逆向退单:待结算、未收到货、未入库、质检不通过、部分收货、已取消、客户已收货等

    (5) 逆向换单:完成、已结算、客服已收货等

2.服务对象维度

    (1) 顾客/用户:待付款、待发货、待收货、待评价、买家已付款、交易成功/失败、卖家已发货、退款成功、交易关闭、

    (2) ERP等其他交互系统:已锁定、已确认、已分仓、已分配、已出库、已收货、已完成等

    (3) 客服:等待买家付款、待付款和待发货订单、退款中的订单、定金已付、买家已付款、卖家已发货、交易成功、交易失败、异常订单

订单推送

当状态发生变化时,需要将对应的变化情况告知给相关人员以便了解当前订单的情况,这就是订单推送的作用。

订单推送的触发依赖于状态机的变化,涉及到的信息包括:

    (1) 推送对象(用户、物流人员、商家)

    (2) 推送方式(push、短信、微信)

    (3) 推送节点(状态改变)

------------------

订单系统设计的挑战和实践

订单系统需求演变

第一步:实现购买流程

1.实现订单的创建、发货、确认等信息闭环

2.支持订单审核(初期可支持人工审核即可)

3.支持用户端显示订单相关信息

4.支持促销金额的计算

第二步:提供服务

1.提供订单分布式服务

2.支持跨平台交易单生成(即同一个大交易单内既有商家商品又有自营商品或者是多个商家的商品)

3.支持拆单、合并逻辑(配送单、支付单等)

4.提供更丰富的订单推送服务,完善订单状态

第三步:支持不同营销手段下的订单类型

平台发展到足够大的规模,提效、稳定变成一个重要的话题。可以提供不同营销场景下的订单,如:团购、预购等。


标签: 电商 订单系统
前端交流群: MVC前端网(menvscode.com)-qq交流群:551903636

邮箱快速注册

忘记密码