京东后台:订单履约系统设计(上)
笔者以京东为例,详述了订单履约和订单拆分系统以及相关流程。
一、订单履约概述
1. 什么是订单履约?
订单是一次交易的生命周期,交易开始生成订单,结束的时候完成订单。在天猫或者京东上买东西,最终都会生成一张订单。
其实,这个订单就是消费者与平台的一个简单的契约,而契约上的东西都是平台履约内容,包括订单上的信息:发票(增票还是普票)、运费、时效、预约、优惠等等。
比如,订单预计在前端就会显示你的订单会在什么时间送达。京东现在对于时效来说,有自己的211(2011年开始),京东在是中国第一家做出211这么一个时效的公司。
为了承载这些履约内容,如何把客户的一个诉求,最终以按时的效果交付到用户手中,就产生了一个系统—OFC(Order Fulfillment Center)简单来说,订单履约中心就是连接的用户下单,和订单在库房生产的一个系统。
2. 什么是211?
211就是上午11点前下单,然后当天晚上11点前送达。晚上11点前下单,次日上午11点送达。
除了211以外,京东还有次日达,隔日达,极速达——即411。411即3小时送达,这个也是刷新业内的一个预约时效。
3. 什么是预约?
预约就是约时间的一个管理,在京东买东西就会发现,京东有一个预约日历。在未来的7天内,可以选择每天3个不同时段来送达,如北京上海等的一些城市,还支持夜间配送。
4. OFC在什么环节出现?
直白一点说就是用户在京东前台选完商品进入购物车,到结算页并点击提交订单按钮的时候,就进入了OFC这个环节,直到这个订单由京东实际发给库房(京东自有100个,协同仓+特殊仓可能将近200个)。
怎么把京东每天这么多订单量,发给具体的每一个库房,就是OFC在做的事情。
其实,正常买东西都是从“网站的注册–>搜索商品–>选商品购买–>仓储生产、物流配送”。其中OFC是在购买和仓储生产这个环节之中的一个履约系统。
二、订单拆分
1. 拆分维度
什么是订单拆分?
不知道大家在京东下单的时候,都遇到过这个情况:用户下完单后,在我的订单详情页会看到这么一句话,即‘您的订单由于不在同一部分,或者不在同一个商家需要拆分’这么一句话。
而在拆分原因会显示:因为不在同一库房,或不是同一商家,订单被拆成多个子单分开配送。
这个会对客户带来什么?尤其像双11或者618等这种大促的时候,我们的购物车可能一次性会有10个甚至有若干个东西要购买。然而,为什么会拆这个订单?
哪些订单需要拆分,哪些不需要?
京东订单主要分为虚拟订单和实物订单。
实物订单:京东自营商品,pop商家商品等都是实物订单。
实物订单是指订单中为实物商品,发货需要物流的一些商品订单,比如订单中有冰箱,笔记本,手表,那么这个订单就是实物订单,全部需要通过OCS服务和拆分系统进行处理。
虚拟订单:商品可以是Q币,手机充值,服务产品点卡,礼品卡等。
相比实物订单,虚拟订单由于没有物流状态,所以订单流转和结算流程相对简单一些。仅通过OCS服务进行数据保存,不通过新的拆分系统处理。
2. 拆分引擎
维度1:库房
首先,京东有不同品类的库房,京东的库房现在依然是以品类仓为主,就算有亚洲一号,但订单拆分最关注的还是品类仓。因为不同的品类,比如像大家电、图书、IT、3C类产品、食品母婴类产品,在仓储间要求上有不同的生产特点。
比如,食品母婴类产品在京东有自己的恒温仓,诸如奶粉等此类商品要保持一定的温度,而有一些生鲜要符合保持低温仓的特点,再比如大件的摆放和图书的摆放是完全不同。
维度2:商家
另外一个维度就是商家,京东两大类业务自营和POP,而POP里边有不同的商家,京东为了让不同商家的商品由不同的商家配送,最后给不同的商家进行结算,不可能在一张订单上同时存在两个商家的商品。因而,京东会根据商家去进行拆单。
维度3:支付方式
后款订单在点击提交订单的按钮以后,立即进入拆分。而先款订单是在付款完成之后做拆分的操作。
先款订单:先款后货;后款订单:先货后款。
后款订单两类来源:京东自营、POP有中的FBP订单。
当然,除了以上3类主要维度,还包括其他的拆分维度和规则。
3. 拆分流程
三、金额拆分
1. 拆分定义
在京东买过东西,基本365天都会有不同类型的促销,最简单的直降,还有满减、用自己的东卷、京豆,还有各种各样的促销。
比如买个东西,满199减 100(活动预热),大家都会凑单凑到199。用户就会买食品凑够199然后减掉100。
假如用户买了10件商品,减了100元,那么具体这100块钱怎么减呢?
对于客户来说,他们不理会京东怎么操作这个优惠折扣,只要这100块钱在自己结算的时候抵扣即可。
但对于京东来说,这100块钱并不是直接减100这样来登记的,其不在订单里,是以商品的金额订单里,商品金额的比例分拆优惠的,这就是金额拆分系统在做的一个工作。
2. 拆分规则
OCS的基本原则就是按SKU的金额比例去分摊并取整数,这里面不光包括优惠,还有各种运费,虚拟资产(如京豆)等。
比如这次花了1000京豆来抵扣10元,这1000个京豆抵的这10块钱就会分摊到用户具体的每一个SKU上。其实,现在前台会直接显示减几块钱几块,记得不是特别细,在后台都是会具体的记录每行减多少钱,包括运费。
我们在北京,买自营的商品体验不是特别深,如果在偏远山区,在京东是要收特殊的运费,或者买商家的商品会收运费,运费怎么分摊也都是在这里计算的。
3. 对外服务
- 金额包含订单上的运费、优惠、现金、用户实际支付等所有类型的金额;
- 金额拆分的基本原则是按sku金额比例分摊,优先按元取整;
- 拆分系统处理完成后,将拆分结果发送到MQ,金额拆分系统订阅消息,接收消息并将计算结果存入DB,并发送计算结果到MQ;
- 对外提供查询服务。售后、EBS、发票、广告联盟、采销、客服、数据仓库、计费、等30多个系统使用该服务;
作者:接蒜君 ,微信公众号:接蒜君。一个专注结算方向的互联网产品。
本文由 @接蒜君 原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自Pixabay,基于CC0协议。
作者暂无likerid, 赞赏暂由本网站代持,当作者有likerid后会全部转账给作者(我们会尽力而为)。Tips: Until now, everytime you want to store your article, we will help you store it in Filecoin network. In the future, you can store it in Filecoin network using your own filecoin.
Support author:
Author's Filecoin address:
Or you can use Likecoin to support author: