背景
订 单是卖家的核心数据,卖家的很多日常工作都是围绕着订单展开,应用的基本功能就是要保证订单实时、完整的展示在卖家面前。由于API请求依赖于网络,存在 着网络不稳定和同步时间长的问题,所以应用必须把淘宝的订单数据同步到本地。如何才能快速、完整的把订单同步到本地是本方案将要讨论的问题。
名词解释
在线订单:卖家三个月内已卖出的订单。
增量订单:相对已经同步到本地的订单,凡是在淘宝上发生了变更的订单就是增量订单。
消息服务:一种通过HTTP长连接实时向客户端(应用)推送数据(交易)变更的渠道。
API介绍
taobao.trades.sold.get - 获取三个月内已卖出的在线订单,适用于用户初始化的时候使用,ISV不应该用此接口来获取增量订单。不建议使用或尽量少用此接口。
taobao.trades.sold.increment.get – 获取增量订单,适用于用户初始化后,增量同步发生变更的订单,ISV不应该用此接口来获取三个月内的订单。
taobao.trade.fullinfo.get - 获取单笔订单详情。
实施方案
订单同步主要分为初始化和增量获取两个步骤:
1. 初始化是把3个月内的在线订单全部同步回来,这个需要较长的时间;
2. 增量获取则是把淘宝发生了变更的订单同步回来,这个一般需要较短的时间。
下面的方案都会围绕着如何初始化和增量获取来讲。
方案一
同步流程:
核心步骤:
u 三个月数据:通过taobao.trades.sold.get获取3个月内到现在创建的订单ID,再通过taobao.trade.fullinfo.get获取订单详情
u 增量数据:通过taobao.trades.sold.increment.get获取从现在开始的增量订单ID,再通过taobao.trade.fullinfo.get获取订单详情
适用范围:
适用于ISV测试订单同步功能或生产环境的中小卖家进行订单同步。此方案比较低效,除非老的应用更新成本很高,否则不推荐大家使用,建议采用下面的方案。
方案二
同步流程:
核心步骤:
u 三个月数据:
a) 首先,通过taobao.trades.sold.get获取3个月内到昨天23:59:59创建的订单详情
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类型的错误,应用需要记录日志以便日后排查,同时不要重试。
相关推荐
阿里妈妈 淘宝客 淘客 后台订单同步软件,维权订单同步,带创建广告位pid功能。模拟登陆,获取后妈登陆权限,抓取订单、创建广告位、抓取维权订单、三方订单、等功能。并支持接口同步到个人数据库,.net 开发。支持...
淘宝订单同步接口 淘宝订单API 淘宝商品管理API 淘宝插旗备注 丢单原因分析 一、没有检查订单同步接口的返回值是否成功。 二、只使用taobao.trades.sold.get同步订单,此接口是按照订单创建时间查询的,一个订单...
基于C#的淘宝订单打印系统源码.zip
本文使用HttpHelper 1.3版本(因为我用VS2005开发,1.3报错少)实现模拟登录淘宝联盟并且下载淘宝客订单xls文件。现提供源码下载,有不明白的可以问我,同时如果您有好的修改建议请回复。我是第一次开发Http程序,请...
淘宝订单现场java开源 网络驱动管理器 该库旨在自动化二进制文件管理。 如果你使用过,你就会知道,为了使用一些浏览器,如Chrome 、 Firefox 、 Opera 、 PhantomJS 、 Microsoft Edge或Internet Explorer ,首先你...
适用于淘宝开放平台,可方便接入如订单同步、插旗备注等API接口能力。
订单处理模块提供了以订单为线索的流程化处理功能,包括:订单下载、出库、结算、发货单和快递单批量打印、发货同步、库存同步等功能。售后服务模块可以根据用户的需要自定义售后服务流程,处理用户退货、换货、维修...
一、没有检查订单同步接口的返回值是否成功。 二、只使用taobao.trades.sold.get同步订单,此接口是按照订单创建时间查询的,一个订单创建后何时被修改(付款、发货、确认收货)是不确定的,所以采用这种方案无法...
如何通过拼多多单号转换淘宝单号,实现订单同步物流? 抖店自行寄件发货有困难?不妨试试抖音转单号工具! 无货源如何开通电子面单?让发货更加便捷! 快递单号伪造软件:危险还是便利的工具? 解密彩虹工具箱的无...
阿里妈妈 淘宝客 免费高佣接口、订单接口、维权订单接口、获取阿里妈妈登录Cookies、淘宝登录Cookies。可以调用软件接口主动获取数据。也可以设置提交到的接口。每当有数据变化时,主动提交到自己的服务器,实现同步...
帐号列表初始化,启动窗口同步库存,程序初始化,检测重复运行,连接数据库,表格初始化,本月数据初始化,显示所有订单记录,显示未打印快递单,买家用户名查询,收货人姓名查询,产品名称查询,手机地址查询,淘宝订单号查询,...
您在淘打上修改的订单,淘宝马上同步 淘打已入驻天猫聚石塔,京东云,安全稳定。 而且,为你联接云栈,打印电子面单,更快更省钱 联接云栈,让你无需沟通,就能对接12家物流快递,实现标准化电子面单打印,更快更...
管家婆淘宝网店进销存管理免费版能连接到淘宝网店, 对淘宝网店的数据进行同步管理,包含店铺数据的同步,宝贝数据的同步,订单数据的同步,退款数据的同步,还有快递单的同步。 相比多淘宝的网页版,本程序可以管理...
批量采集淘宝阿里妈妈用佣金数据 支持批量导入 高佣金申请计划
Ecshop淘宝评论采集与销售记录同步插件 1淘宝的商品评论任意抓
2.隐藏或修改订单交易日期,交易状态,评价状态; 3.支持支付宝修改,自定义修改,屏蔽模式,多种方式让操作更具通用性,便捷性 4.自定义热键修改,随时显示隐藏软件。 5.支持手机后台同步修改 6.更新不要钱,...
2.发货记录这里,更新一个ip地址的信息 谁的订单编号输入了提取,谁的订单才会发货,没有输入的订单不会发货;3.宝贝同步只有40个结果,现在可同步所有宝贝;4.下载链接和卡密 可以修改;5.支持拍一件发多个;6.修复...
2.发货记录这里,更新一个ip地址的信息 谁的订单编号输入了提取,谁的订单才会发货,没有输入的订单不会发货; 3.宝贝同步只有40个结果,现在可同步所有宝贝; 4.下载链接和卡密 可以修改; 5.支持拍一件发多个;...
平台内订单自动同步 9.多端数据互通 多平台(淘宝、京东、拼多多)数据抓取,自动更新 10.超级搜索 APP里搜索覆盖全网商品或输入商品标题链接或口令可实现自动查券 11.内置教程 可在后台加入营销素材,推广素材,...