来源:https://mp.weixin.qq.com/s/bGBhC3T4emcsse4hNtH11w

    京东后台:订单履约系统设计(上)这是第一篇

    此篇以京东为例,详述了订单转移、订单履约工作流、订单风控等相关流程。

    京东后台:订单履约系统设计(下) - 图1

    一、订单转移
    **

    1. 什么是订单转移
      订单转移可以理解为订单的计划。通过数据可以看到,一分钟就要接几百万万单。不同的订单通过不同的渠道下单,比如,京东有PC端,app端,微信端等等各种不同的渠道下的订单,统一都堆积在京东OFC的大池子里。京东通过怎样的方式和客户履约,其实转移是履约的一个核心环节。以什么样的方式和客户履约,而客户约定是什么,京东要分给谁都是在订单转移这个环节进行的。

    说白了,它是订单的一个分发机制,或者说订单的分发一个计划,订单要给哪个库房去生产,怎么生产都是在订单转移中进行的。在订单转移环节,才实际上和库存打交道,看订单的状态,看订单库存,具体去看订单是要在哪个地方生产,这就是订单的转移。

    1. 什么是库存
      1)一级库存
      最早就是一个一级库存—全国几个大的中心仓,北京的订单就看北京的库存,上海的订单看上海的库存。
      当京东发展到一定体量的时候,会发现这种一级库存的概念无法正常的满足这么庞大的一个订单体量。

    2)二级库存
    RDC是中心仓,也叫综合仓。FDC是前置仓。举个例子:济南就是一个FDC,天津也是一个FDC。
    京东现在有7大区域:北上广重武沈西(北京、上海、广州、成都、武汉、西安、沈阳)。比如,济南是属于北京这个区域的。如果济南的用户下单,首先看济南本地的有没有货,如果济南本地有货,就从本地区发货,如果本地没货就从北京去查看——这样的支援关系。

    3)为什么要有支援关系?
    京东前期最早的业务都会在一线城市,比如北上广深这些城市下单的比较多,随着现在体量的不断的增加,我们在做渠道下沉也好,我们再向下探,更多的去满足二三线城市的一些用户下单。所以,我们要有FDC——我们不是备全量的货,根据二八原则,有一些比较畅销的商品,能满足基本满足这片区域(如:济南)、这个覆盖范围的用户的下单。但是,有一些比较长尾的商品怎么办?——就从北京去发,由北京支援济南。
    京东后台:订单履约系统设计(下) - 图2

    1. 订单转移的关键是什么
      订单转移的主要目标是为订单做生产计划,快速转却的讲不通类别的订单,转移到对应的生产系统。核心系统分为:订单转移服务和订单计划引擎。为使用户达到快速下单的目的,对于全部现货的订单,均采用快速转移的策略,简化转移系统中的复杂流程,以尽可能快的方式,实现订单转移。

    1)订单转移服务系统
    释义:订单转移系统是制定生产计划的核心为:订单如何生产,去哪儿生产,何时生产提供解决方案。
    目标:主要为上游系统OFW提供服务,订单数据由OFW推送,订单的转移则由中间件的调用来完成。
    职责:现货的非预约订单的快速通道;
    范围:自营、POP;
    周边依赖:OFW、配送中西配置、库存、大家电调度、中间件。
    京东后台:订单履约系统设计(下) - 图3
    2)订单计划引擎系统
    释义:订单生产计划是为了实现订单履约,而制定的生产方案。一个合理的生产计划,能在保证时效承诺的前提下,起到优化生产,降低成本的作用。
    目标:主要解决非现货和预约订单的转移,对于多配、FDC、平行库存等复杂流程进行处理。
    职责:非现货及预约订单,处理引擎;
    范围:自营,POP;
    周边依赖:配送中心配置,库存,商品,大家电调度,Promise,VPR,中间件,OFW-COI。
    京东后台:订单履约系统设计(下) - 图4
    4. 怎么转移
    转移的整个流程就是要去判断库存,因为在刚开始说到拆分环节是不看库存的,看的只是这个订单能在哪儿生产。
    在订单转移环节,才实际上和库存打交道,看订单的状态,看订单库存,具体去看订单是要在哪个地方生产,这就是订单的转移。

    这要说到一个京东有货和备货。备货就是说,这个商品备在济南这个地方了,证明在济南是可以生产的,即可以进入济南库存,然后从济南库出,但是具体有没有货不确定。
    前台库存规则和OFC库存规则是不一样的。
    前台:SKU的维度去看这个库存。
    OFC:OFC里是以订单的维度看库存。
    京东后台:订单履约系统设计(下) - 图5
    二、订单履约工作流

    1. 订单履约工作流
      主要做的一个操作就是从订单管道过来以后先负责接单,然后去调用拆分服务、转移服务等下游系统的服务。(回传系统、下传系统是它的主要两块内容)
      接收管道、订单中间件及订单下发任务推送的订单
      订单进入库房前,获取订单生产需要的数据以及控制订单业务流程
      推送订单数据至全国库房
      处理库房发起的订单重拆分流程处理
      处理订单取消流程业务
      处理订单修改业务
      处理订单退货流程业务
      回传库房订单生产状态数据回传ERP系统及相关流程控制
      回传库房订单生产非状态数据
      提供订单promise系统和BI系统需要的下传库房订单数据
      提供OFW日常运营工具
      实时监控OFW系统运营,有异常立即报警

    2. 主要 职责
      订单工作流系统的有两块内容:一块是叫做订单信息回传,另一个是订单信息的下传。

    订单状态数据回传流程
    把订单库房生产状态实时回传给ERP系统(等待打印状态、打印集合单、打包状态、出库状态);同时某状态下,判断是否需要进行调用库存服务、出管服务、全程跟踪服务以及给客户发送手机短信。

    订单非状态业务数据回传流程
    实时回传订单在库房产生过程中产生的包裹数量、包裹重量、承运商信息以及发票信息给对应的WMS(仓储管理系统)、TMS(运输管理系统)及DMS(配送管理)系统。

    1. 工作流程
      订单信息下传即刚才说到的OFC系统是连接上游和下游的一个中心的系统。

    京东要接全国100多个将近200个库房,每一个库房是怎么接,订单是怎么推给库房,都是由OFW系统去做的。

    订单工作流系统主要做的一个操作就是从订单管道过来以后先负责接单,然后去调用拆分服务、转移服务等下游系统的服务。比如,给下游系统封装数据,封装面单的数据,封装发票的数据。
    京东后台:订单履约系统设计(下) - 图6

    三、订单风控

    1. 什么是风控
      风控主要做的一个事就是防止恶意的套赠。京东有很多促销,比如一些赠品、满减、抵用劵等。一些人发现京东系统漏洞,从而去套一些赠品。

    举个例子:一些用户知道京东的订单要拆分,在下单的时候,买了一个冰箱,而冰箱赠送一个插线板,冰箱是在大家电的库房,而插线板是在小家电的库房/3C库房。因为库房不同,要拆成两个单生产,而插线板是赠送,京东记录时候记得是0元,即没有价值。拆成两个订单对于京东来说,配送的时候也不知道哪个先哪个后,尤其大家电好多都是第三方配送的,经常会有赠品签到了,大家电没配送的。

    就会出现一个问题:赠品收了,大家电取消了。直接在网站前台订单取消了,或者说拒收了。这样就叫做恶意套赠。

    1. 怎么实现风控
      风控的核心思想就是联动取消。

    再举个例子:用户一共买了ABCD4个商品啊。B这个商品是买A赠的,相当于用户买了ACD这3个商品赠了一个B的商品。

    而京东有不同的库房,A商品在第一个库房,BCD商品的第二个库房,正常拆的话,A商品肯定是单独的一个订单,因为它在自己的一个库房里,而BCD商品按说应该是在一起的,因为是在第二个库房里。但是,B商品是一个赠品,他是一个赠单,因而就会把B的商品和CD的商品单独拆出来。然后,去记录一个关系叫做:A商品是主单,B是赠单——即第一张订单和第三张订单之间的赠品关系。这样的话,如果用户收到了B,想退A的话,这些相关联的商品会联动取消。这就是一个主赠关系的记录。
    京东后台:订单履约系统设计(下) - 图7