`
jaychang
  • 浏览: 734806 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

淘宝订单同步

 
阅读更多


  背景

 

订 单是卖家的核心数据,卖家的很多日常工作都是围绕着订单展开,应用的基本功能就是要保证订单实时、完整的展示在卖家面前。由于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类型的错误,应用需要记录日志以便日后排查,同时不要重试。

  • 大小: 62.8 KB
  • 大小: 18.1 KB
  • 大小: 51.2 KB
  • 大小: 21.7 KB
分享到:
评论

相关推荐

    阿里妈妈 淘宝客 淘客 后台订单同步软件 维权订单同步 创建广告位pid功能,支持API接口调用,支持同步到自己的数据库

    阿里妈妈 淘宝客 淘客 后台订单同步软件,维权订单同步,带创建广告位pid功能。模拟登陆,获取后妈登陆权限,抓取订单、创建广告位、抓取维权订单、三方订单、等功能。并支持接口同步到个人数据库,.net 开发。支持...

    淘宝官方商品、交易、订单、物流、插旗接口接入说明

    淘宝订单同步接口 淘宝订单API 淘宝商品管理API 淘宝插旗备注 丢单原因分析 一、没有检查订单同步接口的返回值是否成功。 二、只使用taobao.trades.sold.get同步订单,此接口是按照订单创建时间查询的,一个订单...

    基于C#的淘宝订单打印系统源码.zip

    【标题】"基于C#的淘宝订单打印系统源码.zip" 涉及到的核心技术是C#编程语言,主要用于开发一个订单打印系统,该系统能够处理淘宝平台上的订单信息。C#是一种由微软公司推出的面向对象的编程语言,常用于Windows应用...

    老虎淘客订单同步助手

    因此,“老虎淘客订单同步助手”的出现,便为淘宝客们提供了一个全面、自动化的解决方案。 首先,订单自动同步功能彻底解决了淘宝客手动刷新更新订单信息的繁琐工作。该功能可实时或定时从淘宝联盟等各大电商平台...

    淘宝订单系统

    淘宝订单系统是电子商务领域中的核心组成部分,它负责处理商家与消费者之间的交易流程,确保每一笔订单的准确无误。在深入了解淘宝订单系统之前,我们首先需要理解电子商务的基本概念和订单处理的基本流程。 订单...

    NET淘宝订单打印系统含CS文件源码对接淘宝的打印功能在线批量订单打印系统.rar

    .NET淘宝订单打印系统是一款专为电商商家设计的高效订单处理工具,主要针对使用淘宝平台的商家。该系统包含了CS(客户端)文件源码,允许用户根据自身需求进行定制化开发,以实现与淘宝平台的无缝对接,从而进行在线...

    网站商城B2C轻松电子商务SHOPEX-店掌柜.ppt

    SHOPEX-店掌柜具备淘宝订单同步下载和处理能力,商家可以快速响应来自淘宝平台的订单,避免订单积压和延误。此外,系统还支持订单状态跟踪,确保每个订单的顺利进行。 3. 综合的会员管理功能: 会员管理是维护客户...

    淘宝开放平台订单推送架构.pptx

    3. 数据同步和一致性:淘宝开放平台订单推送架构使用了数据同步和一致性机制,确保订单数据在淘宝平台和供应商系统之间保持一致,避免数据不一致和数据丢失。 4. 安全性和可靠性:淘宝开放平台订单推送架构使用了...

    淘宝订单抽取java源码-MohammedAbdallahDepositSolutionsTest:MohammedAbdallahDepos

    淘宝订单现场java开源 网络驱动管理器 该库旨在自动化二进制文件管理。 如果你使用过,你就会知道,为了使用一些浏览器,如Chrome 、 Firefox 、 Opera 、 PhantomJS 、 Microsoft Edge或Internet Explorer ,首先你...

    淘宝订单&插旗备注API接入说明.zip

    适用于淘宝开放平台,可方便接入如订单同步、插旗备注等API接口能力。

    网店管家 进销存 冠都EC-ERP 破解版 淘宝订单管理系统

    订单处理模块提供了以订单为线索的流程化处理功能,包括:订单下载、出库、结算、发货单和快递单批量打印、发货同步、库存同步等功能。售后服务模块可以根据用户的需要自定义售后服务流程,处理用户退货、换货、维修...

    免费财务软件哪个好.docx

    - **淘宝数据同步**:对于淘宝商家,软件可以自动将淘宝订单同步到系统中生成销售单,简化了记账流程,减轻了工作负担。 - **手机数据同步**:兼容苹果和安卓设备,用户可以通过手机随时查看资金、库存和销售情况...

    淘宝api发货处理(不用订单增量API)

    这样,买家可以在淘宝订单详情页查看到最新的物流状态,提升购物体验。同样,调用此接口也需要正确的API凭证,并且提供订单号和物流信息作为参数。 除了这两个核心API,还有其他辅助文件在处理发货流程中发挥作用。...

    淘宝API接口详解

    淘宝提供了三种主要的订单同步接口: 1. **`taobao.trades.sold.get`**:根据订单创建时间查询3个月内已卖出的订单。这个接口适合首次同步或者定期全面同步所有订单。 2. **`taobao.trades.sold.increment.get`**...

    各大包裹快递查询小助手

    为了适应淘宝等电商平台的用户,该小助手可能集成了与淘宝订单同步的功能。用户可以将淘宝账号绑定到软件中,系统会自动抓取已购买商品的快递信息,无需手动输入单号,进一步简化了查询流程。这种功能的实现依赖于...

    淘宝联盟数据(订单查看工具)V1.0绿色免费版

    4. **实时更新**:实时同步淘宝联盟后台的数据,确保用户获取到最新的订单信息。 5. **报表导出**:支持将查询结果导出为Excel或其他格式的文件,方便进一步的数据分析和报表制作。 在提供的文件列表中,我们可以...

    淘宝 API 源码 Demo6-同步商品库存

    这些API包括但不限于商品管理、订单处理、用户信息查询等,旨在帮助商家和开发者构建基于淘宝的数据应用。 在这个Demo中,`TopSpace-同步商品库存-使用说明文档.docx`应该包含详细的步骤和指南,指导用户如何运行和...

    易语言取淘宝订单模块

    在本主题中,我们关注的是一个特定的模块——“易语言取淘宝订单模块”。这个模块主要用于从淘宝电商平台获取订单信息,是电子商务系统或者自动化处理订单流程的一个重要组成部分。 淘宝是中国最大的在线购物平台,...

Global site tag (gtag.js) - Google Analytics