亚马逊MWS API:我们下载订单时缺少一些订单

问题描述:

我已经实施了一个系统来下载亚马逊卖家的订单。该系统的工作原理是这样的:亚马逊MWS API:我们下载订单时缺少一些订单

  • 我们开始想从下午12:00下载订单 - 下午2:00,所以我告诉亚马逊(通过他们的Java客户端):“给我所有的订单从12:02到2 :00(两分钟的时间差是为了适应亚马逊在其API中描述的挂单)
  • 我们完全下载这些订单:如果有超过一百个,我们使用下一个标记,一旦我们拥有它们全部我们对每个订单使用listOrderItems操作来获取订单项

其中一些订单正在等待处理,如果是,我们将它们存储在我们的数据库中并检查它们是否为nex看看他们是否准备好下载。我们的下一份工作将在接下来的两个小时内完成,要求所有订单从2点到3点58分。

此操作运行正常,但我们的客户开始报告缺失订单。显然,每隔一段时间,一个订单就会滑过这个众所周知的裂缝,我们不知道为什么。为了解决这个问题,我们设置了30分钟的重叠时间,以便每次下载订单时,我们都会在过去30分钟内查看。除了下载冗余订单的惩罚之外,我们必须检查数据库以查看订单是否已经处理完毕,所以它会减慢相当多的事情。

and在伤口擦盐,它仍然还没有解决问题!这种情况并不常见,但平均每天缺货0-4份。

+0

你的应用程序调用MWS ListOrders完全使用哪些参数?您可以选择“LastUpdatedAfter/Before”和“CreatedAfter/Before”。顺便说一句,我没有看到挂单如何需要“两分钟的时间差”,因为他们可以待在几天的状态? – Hazzit

+0

我们在 – IcedDante

通过ListOrders获取订单似乎有一些陷阱。

以下是MWS support staff的响应,

请注意,为了在ListOrders数据 只填入当它清除了一些内部的检查(大多为欺诈 订单)。这意味着在创建订单 之间以及在API查询中显示(或者在SellerCentral中, 中)之间会有延迟。这种延迟通常是几分钟,偶尔会有 半小时,而很少会有多个小时

而且一些订单可以从非常 很快挂起状态未发货状态移动。订单ID ---是一直处于挂起状态只持续7秒 和所有你提出的要求是这个顺序是 实际可用的API在ListOrders来填充时间之前。甚至 秩序---是未决的17秒的状态和你之前做的 请求。一旦收到电子邮件通知,他们就是 不再处于未决状态。

既然你被他们创建日期选择订单,你可以很容易错过创建的订单,而没有通过暂停状态。

根据我的经验,获取所有订单的可靠方法是致电GetReportList,要求所有_GET_ORDERS_DATA_尚未得到确认的报告 - 然后确认您存储在系统中的报告。亚马逊系统中的“已确认”标志使两个系统保持同步。这个解决方案的优点是你不必担心时间戳。

+0

之前/之后使用** Created **该解决方案唯一的缺点是订单不能按需提供。我认为这两个API调用的混合是最好的方法。感谢所有伟大的信息 – IcedDante

+0

@IcedD​​ante可能是我迟到了请求你,但似乎我陷入了与你一样的情况......你能指导我解决你的问题吗? –