亚马逊 MWS 确定产品是否在 BuyBox 中
Amazon MWS determine if product is in BuyBox
我正在整合 MWS Amazon API。对于导入产品,我需要一个重要字段,例如卖家产品是否是 buybox 赢家。我需要在我们的数据库中设置标志。
我已经检查了 Amazon scratchpad 中所有可能的 API 产品,但不知道如何获得这些信息。
Buy Box 的获胜者可以(并且确实)经常变化,具体取决于产品的卖家数量。获取产品购买框状态的最新通知的最佳方式是订阅 AnyOfferChangedNotification
:https://docs.developer.amazonservices.com/en_US/notifications/Notifications_AnyOfferChangedNotification.html
您可以使用这些通知来更新您的数据库。另一种选择是 Products API which has a GetLowestPricedOffersForASIN
operation which will tell you if your ASIN is currently in the buy box. http://docs.developer.amazonservices.com/en_US/products/Products_GetLowestPricedOffersForASIN.html
寻找 IsBuyBoxWinner
.
虽然这个问题很老,但对于对产品 api 解决方案有正确答案的人来说,它仍然有用。
在产品 api 中有 GetLowestPricedOffersForSKU(与 GetLowestPricedOffersForASIN 略有不同),除了“IsBuyBoxWinner”信息外,还有“MyOffer”信息。这两个值的组合可以判断您是否拥有购买箱。
请记住,api 两者的调用限制非常严格(每小时最多 200 个请求),因此在报价数量非常多的情况下,订阅“AnyOfferChangedNotification”是唯一真实的选项。不过,它需要进一步开发才能使用这些通知,因此开发起来绝非易事。
需要考虑的一件事是 AnyOfferChangedNotification 不是可以推送到 SQS 队列的服务,SQS 队列是 FIFO(先进先出)样式的缓冲区。您只能推送到标准 - 随机顺序 sqs 队列。当我在我的应用程序中设置两个线程时,我认为我很聪明,一个用于下载消息,一个用于处理它们。但是,当您从 download these messages 下载消息时,您可以从 SQS 队列中的任何位置获取消息。要想成功,您至少需要
将所有消息下载到本地 cache/buffer/db 直到亚马逊 returns 'there are no more messages'
运行 你的进程离开了你从亚马逊
返回的最后一个 'no more message' 时建立的和当前的本地缓冲区
亚马逊文档中并不清楚,但我担心我尚未证明但值得研究。如果 asin 快速重新定价两到三次,则不清楚消息是否会乱序进入队列(或者任何一条消息可能会延迟)。 'out of order' 我的意思是,对于一个 sku/asin 来说,目前还不清楚您是否可以在收到较早 'Time of Offer Change' 的消息之前收到一条较新的消息 'Time of Offer Change' 如果这样的话,可以创建一个1) 您的 ASIN 在 12:00:00 重新定价并在 12:00:01(报价更改时间)重新定价。 2) 在 12:01:00 轮询队列,后来 12:00:01 的价格变化在那里,但没有来自 12:00:00 的较早的价格变化。 3)你迭代 sqs 队列直到你清除它然后你做你的事情(重新定价或发送消息或其他)。然后在下一次传递时再次轮询队列,您会得到这个更早的 AnyOfferChangeNotification。我在我的代码中添加了逻辑来跟踪任何 asin/sku 的 'Time of Offer Change' 并在它向后滚动时发出警报。
其他需要考虑的事情。
1) 如果您在 ASIN/SKU 上缺货,您将停止收到消息 2) 在您第一次发货之前,您不会在 ASIN/SKU 上收到消息,只需将其添加到 FBA 库存即可不够。如果您需要定价以更早更新(或当您缺货时),您还需要轮询 GetLowestPricedOffersForASIN
我正在整合 MWS Amazon API。对于导入产品,我需要一个重要字段,例如卖家产品是否是 buybox 赢家。我需要在我们的数据库中设置标志。
我已经检查了 Amazon scratchpad 中所有可能的 API 产品,但不知道如何获得这些信息。
Buy Box 的获胜者可以(并且确实)经常变化,具体取决于产品的卖家数量。获取产品购买框状态的最新通知的最佳方式是订阅 AnyOfferChangedNotification
:https://docs.developer.amazonservices.com/en_US/notifications/Notifications_AnyOfferChangedNotification.html
您可以使用这些通知来更新您的数据库。另一种选择是 Products API which has a GetLowestPricedOffersForASIN
operation which will tell you if your ASIN is currently in the buy box. http://docs.developer.amazonservices.com/en_US/products/Products_GetLowestPricedOffersForASIN.html
寻找 IsBuyBoxWinner
.
虽然这个问题很老,但对于对产品 api 解决方案有正确答案的人来说,它仍然有用。 在产品 api 中有 GetLowestPricedOffersForSKU(与 GetLowestPricedOffersForASIN 略有不同),除了“IsBuyBoxWinner”信息外,还有“MyOffer”信息。这两个值的组合可以判断您是否拥有购买箱。
请记住,api 两者的调用限制非常严格(每小时最多 200 个请求),因此在报价数量非常多的情况下,订阅“AnyOfferChangedNotification”是唯一真实的选项。不过,它需要进一步开发才能使用这些通知,因此开发起来绝非易事。
需要考虑的一件事是 AnyOfferChangedNotification 不是可以推送到 SQS 队列的服务,SQS 队列是 FIFO(先进先出)样式的缓冲区。您只能推送到标准 - 随机顺序 sqs 队列。当我在我的应用程序中设置两个线程时,我认为我很聪明,一个用于下载消息,一个用于处理它们。但是,当您从 download these messages 下载消息时,您可以从 SQS 队列中的任何位置获取消息。要想成功,您至少需要
将所有消息下载到本地 cache/buffer/db 直到亚马逊 returns 'there are no more messages'
运行 你的进程离开了你从亚马逊
返回的最后一个 'no more message' 时建立的和当前的本地缓冲区亚马逊文档中并不清楚,但我担心我尚未证明但值得研究。如果 asin 快速重新定价两到三次,则不清楚消息是否会乱序进入队列(或者任何一条消息可能会延迟)。 'out of order' 我的意思是,对于一个 sku/asin 来说,目前还不清楚您是否可以在收到较早 'Time of Offer Change' 的消息之前收到一条较新的消息 'Time of Offer Change' 如果这样的话,可以创建一个1) 您的 ASIN 在 12:00:00 重新定价并在 12:00:01(报价更改时间)重新定价。 2) 在 12:01:00 轮询队列,后来 12:00:01 的价格变化在那里,但没有来自 12:00:00 的较早的价格变化。 3)你迭代 sqs 队列直到你清除它然后你做你的事情(重新定价或发送消息或其他)。然后在下一次传递时再次轮询队列,您会得到这个更早的 AnyOfferChangeNotification。我在我的代码中添加了逻辑来跟踪任何 asin/sku 的 'Time of Offer Change' 并在它向后滚动时发出警报。
其他需要考虑的事情。 1) 如果您在 ASIN/SKU 上缺货,您将停止收到消息 2) 在您第一次发货之前,您不会在 ASIN/SKU 上收到消息,只需将其添加到 FBA 库存即可不够。如果您需要定价以更早更新(或当您缺货时),您还需要轮询 GetLowestPricedOffersForASIN