笔者以京东为例,详述了订单履约和订单拆分系统以及相关流程。

一、订单履约概述 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. 对外服务

  1. 金额包含订单上的运费、优惠、现金、用户实际支付等所有类型的金额;

  2. 金额拆分的基本原则是按sku金额比例分摊,优先按元取整;

  3. 拆分系统处理完成后,将拆分结果发送到MQ,金额拆分系统订阅消息,接收消息并将计算结果存入DB,并发送计算结果到MQ;

  4. 对外提供查询服务。售后、EBS、发票、广告联盟、采销、客服、数据仓库、计费、等30多个系统使用该服务;

出处:https://www.sohu.com/a/332049800_114819

京东后台:订单履约系统设计(上)相关推荐

  1. 电商之下:服务类商品订单履约系统如何设计

    http://www.woshipm.com/pd/2361524.html http://www.woshipm.com/pd/2361524.html https://zhuanlan.zhihu ...

  2. 线上问题-OMS订单履约系统调用服务接口超时

    1.现象: OMS订单履约系统调用服务接口超时(图1) 图1 2.调用链查看: 服务这段时间内存在一定的接口超时(图2) 图2 根据以往经验首先想到是服务有频繁FULLGC,查看服务是否频繁fullg ...

  3. 应对618,京东到家订单系统高可用架构的迭代实战

    闫文广 京东到家后台研发部架构师 从事支付系统.计费系统和订单履约系统等后台领域的研发,现专注于订单中心架构优化和研发相关的工作. 大家好,我是京东到家后台研发部的架构师闫文广,今天将给大家分享京东到 ...

  4. 日均5亿查询量,京东到家订单中心的ES架构演进

    点击上方蓝色"猿芯"关注我们,输入1024,你懂的 来源:https://blog.csdn.net/zhuguanghalo/article/details/86552394 京 ...

  5. asp毕业设计——基于asp+access的订单管理系统设计与实现(毕业论文+程序源码)——订单管理系统

    基于asp+access的订单管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的订单管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. 文章目录 ...

  6. java计算机毕业设计干洗店订单管理系统设计与实现MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计干洗店订单管理系统设计与实现MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计干洗店订单管理系统设计与实现MyBatis+系统+LW文档+源码+调试部署 本源 ...

  7. 订单履约:商品配送时效如何展示?

    本文将为大家介绍不同平台计算配送时效的方式,以及订单履约过程中的种种与配送时效相关的问题. 天天问问题:<"次日达"."半日达"和"1小时达&q ...

  8. 基于javaweb的前台+后台精品水果商城系统设计和实现(java+springboot+ssm+mysql+jsp)

    基于javaweb的前台+后台精品水果商城系统设计和实现(java+springboot+ssm+mysql+jsp) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/ ...

  9. java计算机毕业设计干洗店订单管理系统设计与实现(附源码、数据库)

    java计算机毕业设计干洗店订单管理系统设计与实现(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Ec ...

  10. 计算机毕业设计Java干洗店订单管理系统设计与实现(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java干洗店订单管理系统设计与实现(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java干洗店订单管理系统设计与实现(源码+系统+mysql数据库+lw文档) 本源码技术栈 ...

最新文章

  1. 矩阵的直接LU分解法
  2. 【转】Windows消息传递机制详解
  3. 网络爬虫--19.【Scrapy-Redis实战】分布式爬虫爬取房天下--环境准备
  4. css如何插入动态图,css动态图(作业)
  5. 【原】获取数据库(SQL SERVER 2005)的所有信息 Get all database information from SQL Server 2005 测试通过...
  6. 计算机文化基础课程实验,山东经贸职业学院计算机文化基础课程实验教学大纲.doc...
  7. 国家网信办:督促知乎、豆瓣等20家知识社区问答平台开展自查自纠
  8. Matlab —— 电路仿真
  9. 数据挖掘中特征选择算法的基本综述
  10. 基于stc15f2k60s2芯片单片机编程(串口超声波时间)
  11. SQLsever --数据库置疑
  12. android设备连接打印机,【Android快讯】教你通过Android设备直接连接打印机打印文件...
  13. el-table render-header 实现多级 表头
  14. Android中打开浏览器更新App的最新版本
  15. SSRF利用 Gopher |Gopher攻击mysql及内网
  16. win7开机后桌面黑屏,提示副本不是正版的解决办法
  17. Oracle 数据压缩(Compression) 技术 说明
  18. pycharm怎么快速注释-块注释
  19. (附源码)Python云顶之弈数据分析系统 毕业设计451545
  20. SLAM--VICP(Velocity Updating Iterative Closest Point Algorithm)学习笔记

热门文章

  1. 南京大学LANDS组
  2. sap设置默认登录语言
  3. 正则表达式之邮箱地址格式+非法字符+后缀长度的验证
  4. android root 升级失败怎么办,手机root失败怎么办 安卓手机root失败原因分析
  5. h5 标签video和audio标签的下载按钮
  6. 国内有哪些不错的CV(计算机视觉)团队
  7. 实验室设备管理系统C语言——课程设计实习
  8. 联想Lenovo拯救者 Legion R9000P 2021H 触控板失灵
  9. “21 天好习惯”第一期-2 2021牛客暑期多校训练营10 F、Train Wreck
  10. 电容有哪些用途?常见的九大作用