平台简介 新手指南 应用权限说明 移动应用-互动到店业务 TVOS游戏业务 YUNOS开放业务 阿里百川业务 第三方IT工具 商家后台系统应用 服务商后台系统应用 千牛开放业务 阿里.去哪儿业务 WMS(仓储管理系统) 业务接入指南 天猫品牌会员 淘宝客 云盾魔方 API列表 平台技术-API调用协议 平台技术-用户授权介绍 平台技术-应用环境介绍 平台技术-Java SDK使用说明 平台技术-.NET SDK使用说明 平台技术-API调用示例 平台技术-消息服务使用介绍 平台技术-API批量调用简介 平台技术-SPI服务接入文档 平台功能-沙箱环境说明 平台功能-支付宝API开发帮助 平台功能-API文档其他查看方式 平台功能-多店铺管理 平台功能-应用安全保障设置 平台功能-聚石塔塔外测试方法 平台功能-子账号授权流程介绍(新) 平台功能-子账号授权改造升级介绍 平台功能-子账号授权改造升级影响范围 平台功能-Q&A 平台功能-API报表功能介绍 平台功能-API监控预警解释 常用工具-问题反馈系统 API异常排查方法 API相关工具使用说明 消息服务问题自助排查 2015大促保障 商品发布 类目属性度量衡 商品信息修改 库存同步 预扣库存 订单同步 天猫预售业务 拆单/子订单发货 物流发货 退款退货场景 关联营销场景介绍 客服绩效考核 电子凭证签名加密和解密 电子凭证发码sign验证 淘宝客API使用说明 直通车API介绍 DSP-API使用说明 云栈电子面单 多媒体平台API优化建议 数据加密简介 数据加密接入指南 账号体系接入方案 应用代码开发方案 密文字段检索方案 历史数据迁移方案 API字段加密文档 常见问题 数据加密培训视频 名词解释 名词解释-交易类型 名词解释-交易状态 授权签名与SDK API相关问题 沙箱问题解答 淘客和xtao ONS客户端 服务商帮助中心-服务商入驻 审核 服务市场 违规 新业务 质检服务 电商托管业务 自助服务 API技术服务费发票 我要投诉 流量申请 服务商身份变更

平台简介

媒体广告

其他

淘宝开放平台开发文档

浏览26273
更新时间2022-04-11

 背景

订单是卖家的核心数据,卖家的很多日常工作都是围绕着订单展开,应用的基本功能就是要保证订单实时、完整的展示在卖家面前。由于API请求依赖于网络,存在着网络不稳定和同步时间长的问题,所以应用必须把淘宝的订单数据同步到本地。如何才能快速、完整的把订单同步到本地是本方案将要讨论的问题。

订单同步有两种方式:1、通过api 同步  2、基于rds订单同步服务 。本文主要分析使用api 同步订单的场景,有关rds订单同步使用方法,可参考 //open.taobao.com/docs/doc.htm.htm?articleId=101587&docType=1&treeId=2

 

名词解释

在线订单:卖家三个月内已卖出的订单。

增量订单:相对已经同步到本地的订单,凡是在淘宝上发生了变更的订单就是增量订单。

消息服务:一种通过HTTP长连接实时向客户端(应用)推送数据(交易)变更的渠道。

 

API介绍

taobao.trades.sold.get - 获取三个月内已卖出的在线订单,适用于用户初始化的时候使用,ISV不应该用此接口来获取增量订单。不建议使用或尽量少用此接口。

taobao.trades.sold.increment.get – 获取增量订单,适用于用户初始化后,增量同步发生变更的订单,ISV不应该用此接口来获取三个月内的订单。

taobao.trade.fullinfo.get - 获取单笔订单详情。

实施方案

订单同步主要分为初始化和增量获取两个步骤:

1. 初始化是把3个月内的在线订单全部同步回来,这个需要较长的时间;

2. 增量获取则是把淘宝发生了变更的订单同步回来,这个一般需要较短的时间。

下面的方案都会围绕着如何初始化和增量获取来讲。

 

 

1 

2 

方案一

 

同步流程:

T1cRo6XidbXXb1upjX.jpg

核心步骤:

T1j8o5XixeXXb1upjX.jpg

u  三个月数据:通过taobao.trades.sold.get获取3个月内到现在创建的订单ID,再通过taobao.trade.fullinfo.get获取订单详情

 

u 增量数据:通过taobao.trades.sold.increment.get获取从现在开始的增量订单ID,再通过taobao.trade.fullinfo.get获取订单详情

 

 

适用范围:

适用于ISV测试订单同步功能或生产环境的中小卖家进行订单同步。此方案比较低效,除非老的应用更新成本很高,否则不推荐大家使用,建议采用下面的方案。

 

 

 

 

 

方案二

 

同步流程:

TB13fTQGXXXXXbdXFXXSutbFXXX.jpg

核心步骤: 

TB1HOv3GXXXXXaNXXXXSutbFXXX.jpg

a)  首先,通过taobao.trades.sold.get获取3个月内到昨天23:59:59创建的订单详情

u  三个月数据:

b)  然后,通过taobao.trades.sold.increment.get获取从今天00:00:00到现在的增量订单ID,再通过taobao.trade.fullinfo.get获取订单详情

u  增量数据:通过消息服务客户端实时监听订单变更消息,再通过taobao.trade.fullinfo.get获取订单详情

 

适用范围:

适用于所有类型的卖家,是所有方案中相对复杂,但效率最高的方案,推荐所有ISV采用。

经验分享

漏单问题:

M  通过taobao.trades.sold.get和taobao.trades.sold.increment.get获取订单时,交易类型type入参默认只查询部分类型的订单,要查询所有类型的订单,必须显式提供所有交易类型作为type入参。

M  通过taobao.trades.sold.increment.get获取增量订单时,返回结果是按订单修改时间倒序排序的,分页必须从后往前翻,防止正向翻页过程中订单发生变更而导致漏单。

M  通过taobao.trades.sold.increment.get获取增量订单时,每次获取的起始时间适当前移10分钟左右(11大促时建议前移30分钟左右),防止极端情况下由于淘宝系统压力而导致订单延迟更新到数据库而产生的漏单。

M  通过主动通知接收订单变更消息时,需要处理服务器重启或网络断开连接而导致的消息丢失问题,详细内容请查看消息服务。

性能问题:

M  taobao.trades.sold.get获取三个月已卖家的订单

n  采用入参use_has_next=true的分页方式可以避免每次API请求对淘宝数据库产生的count(*),从而显著提升速度和稳定性。

n  由于获取三个月内的订单接口是用创建时间过滤的,而创建时间是不可变的,所以从前往后翻页也不会导致漏单,因而可以省掉第一步的count(*),而直接采用入参use_has_next=true的方式分页获取,直到返回结果中has_next=false时终止翻页。

n  如果接口返回的字段无法满足应用的需要,则强烈建议只获取fields=tid这一个字段,然后再通过taobao.trade.fullinfo.get获取订单详情。

n  由于卖家三个月订单量比较大,建议把三个月的订单切分成按天获取,减少单次请求对淘宝数据库的记录扫描量,以提升效率。

M  taobao.trades.sold.increment.get获取增量订单

n  采用入参use_has_next=true的分页方式可以避免每次API请求时对淘宝数据库产生的count(*),从而显著提升速度和稳定性。

n  由于获取增量订单接口是用修改时间过滤的,而修改时间是可变的,所以需要从后往前翻页才能避免漏单。从后往前翻页必须要知道最后一页,所以必须在首次API请求时采用use_has_next=false方式统计订单总数,计算出总页数,然后再设置use_has_next=true终止订单统计,从后往前翻页。

n  如果接口返回的字段无法满足应用的需要,则强烈建议只获取fields=tid这一个字段,然后再通过taobao.trade.fullinfo.get获取订单详情。

M  使用taobao.trades.sold.get/taobao.trades.sold.increment.get只获取tid字段时,建议设置page_size为最大值,减少API请求次数,提升效率。获取多个字段时可根据自身的网络情况设置page_size,建议设置为50左右。

异常处理:

M  同步订单一般会采用多线程处理,由于API请求对APP是有频率限制的,所以设置线程池大小时,需要根据TOP允许的API调用频率来设置,避免限流后导致应用长时间无法调用API。

M  对于API返回的ISP类型的错误或网络连接错误,应用线程应该在休眠片刻中自动重试。而对于API返回的ISV类型的错误,应用需要记录日志以便日后排查,同时不要重试。

FAQ

  • 关于此文档暂时还没有FAQ

相关视频

更多

免费

php8,我来也
初级php8,我来也

34万次学习

收藏

免费

Thinkphp6.0正式版视频教程
中级Thinkphp6.0正式版视频教程

39.6万次学习

收藏

免费

细说PHP第一季
中级细说PHP第一季

31万次学习

收藏

精品课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

64.9万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

41.2万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

76.6万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

64.1万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

24.3万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

36.2万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

133.1万人学习

热门下载

更多
phpStudy 2018最新版
phpStudy 2018最新版

集成PHP7,16种组合,超全大合集

下载

VC9 32位
VC9 32位

VC9 32位 phpstudy集成安装环境运行库

下载

VC11 32位
VC11 32位

VC11 32位 phpstudy集成安装环境运行库​

下载

php程序员工具箱完整版
php程序员工具箱完整版

程序员工具箱 v1.0 php集成环境

下载

VC14 32位
VC14 32位

VC14 32位 phpstudy安装环境运行库

下载

SublimeText3汉化版
SublimeText3汉化版

中文版,非常好用

下载

Notepad++ Windows版
Notepad++ Windows版

Notepad++ 8.9.7 Windows版官方安装包,适合 Windows 用户进行代码编辑、文本处理、语法高亮和插件扩展配置。

下载