Amazon Services China
亚马逊商城网络服务(亚马逊 MWS)文档
亚马逊 MWS 文档

您应了解的亚马逊 MWS 上传数据 API 部分的相关内容

概述

您可以通过亚马逊商城网络服务 (亚马逊 MWS)API 的亚马逊MWS 上传数据 API 部分将库存和订单数据上传至亚马逊。您还可以使用亚马逊MWS 上传数据 API 部分来获取上传数据的相关处理信息。

上传数据的提交过程如下:

  1. 通过 SubmitFeed 操作以及加密标头和所有必需的元数据提交 XML 或库存模板文件,其中包括 FeedType 的值。正如所有提交的亚马逊MWS 内容一样,您还必须将验证信息包含在内。该 SubmitFeed 操作可返回 FeedSubmissionId,而其可用于定期检查上传数据的状态(使用 GetFeedSubmissionList 操作)。
  2. 如果亚马逊MWS 仍在处理请求,则 FeedProcessingStatus 元素(GetFeedSubmissionList 操作)返回 _IN_PROGRESS_ 的状态。如果处理已完成,则返回 _DONE_ 的状态。
  3. 上传数据处理完成后,您可以通过 GetFeedSubmissionResult 操作来接收处理报告,该处理报告会指明上传数据中的哪些记录已成功处理,而哪些记录已生成错误。请注意:您必须设置 亚马逊MWS用于编写报告的流(提交 GetFeedSubmissionResult 操作时)。使用亚马逊MWS上传数据 API部分客户端库代码(GetFeedSubmissionResult 操作)以创建流。
  4. 分析处理报告,更正文件中或传送中的错误,然后通过 SubmitFeed 操作重新提交上传数据。不断重复此过程,直到处理报告中不再有错误。当处理报告无任何错误时,传送即完成。

下面的流程图展示了提交上传数据的过程:

上传数据 API 部分包含以下操作:

操作 简短说明
SubmitFeed 上传上传数据以供亚马逊MWS处理。
GetFeedSubmissionList 返回过去 90 天内提交的所有上传数据提交列表。
GetFeedSubmissionListByNextToken 返回使用 NextToken 参数的上传数据提交列表。
GetFeedSubmissionCount 返回过去 90 天内提交的上传数据计数。
CancelFeedSubmissions 取消一个或多个上传数据提交,并返回已取消的上传数据提交计数。
GetFeedSubmissionResult 返回上传数据处理报告及 Content-MD5 标头。

上传数据类型

上传数据类型分为两种:一种是库存模板文件(可通过电子表格应用程序进行创建),另一种则是 XML 文档。您可以在所在国家的卖家平台中,找到用于创建库存和订单的库存模板文件及 XML 文件的模板:
  • 加拿大: https://sellercentral.amazon.ca/gp/help/
  • 中国: https://mai.amazon.cn/gp/help/
  • 德国: https://sellercentral.amazon.de/gp/help/
  • 西班牙: https://sellercentral.amazon.es./gp/help/
  • 法国: https://sellercentral.amazon.fr/gp/help/
  • 印度: https://sellercentral.amazon.in/gp/help/
  • 意大利: https://sellercentral.amazon.it/gp/help/
  • 日本: https://sellercentral-japan.amazon.com/gp/help/home.html
  • 英国: https://sellercentral.amazon.co.uk/gp/help/
  • 美国: https://sellercentral.amazon.com/gp/help/

如果您使用 XML 格式的上传数据,请参阅 《我要开店 XML 指南》,了解各种上传数据类型架构的详情。例如,该指南的第 12 页介绍了商品上传数据架构。如果您需要确定上传数据的相应 ItemType,请参阅卖家平台帮助中心指定类别的 XSD 表

使用 SubmitFeed 和 GetFeedSubmissionResult 操作的 Content-MD5 标头

Content-MD5 标头用来检查消息的完整性,以验证所收到的已解码数据是否与最初发送的数据相同。当您通过 SubmitFeed 操作提交上传数据时,或当您通过 GetFeedSubmissionResult 操作接收上传数据报告时,您必须使用 Content-MD5 标头。

当您使用 SubmitFeed 操作时,必须创建 Content-MD5 标头,该标头包含 HTTP 实体的 MD5 散列值,与此同时,您还必须在您的请求中将其包含其中。这样便可让亚马逊MWS 将您所创建的 MD5 散列值与接收上传数据时所创建的 MD5 散列值加以比较。还可以通过该过程让亚马逊MWS 来确定所提交的待处理上传数据是否与所接收到的上传数据完全相同。该过程可阻止已损坏的描述数据或定价商品数据显示在亚马逊上。

当您使用 GetFeedSubmissionResult 操作时,必须计算所收到上传数据报告的 MD5 散列值,并将其与响应中所包含的 Content-MD5 标头加以比较。如果二者相符,则报告在传送过程中未发生损坏。

通过亚马逊MWS客户端库,可以很轻松地传入每个亚马逊MWS请求 的 Content-MD5 标头,只要您所发送的数据已存储在磁盘中且已经创建数据的 MD5 散列值。要获取使用 Content-MD5 标头的更多相关信息,请参阅亚马逊MWS开发者指南

上传数据处理

以下内容可以帮助您更好的了解上传数据是如何处理的:
  • 库存上传数据(商品、价格、库存、关系、图片或配送修改上传数据)以及订单上传数据均单独处理;但可同时提交这两种上传数据。
  • _POST_PRODUCT_DATA_ 上传数据可以与价格、库存和其他 XML 上传数据同时处理。 但是,如果价格、库存和其他上传数据引用了商品上传数据尚未完成处理的 SKU,则处理这些上传数据将失败。您应在完成商品上传数据后,再按顺序处理价格、库存和图片更新。
  • 可以同时提交所有库存上传数据(除 _POST_PRODUCT_DATA_ 之外)。例如,可以同时提交所有价格、库存状况、关系和图片上传数据。
  • 系统将按顺序处理相同类型的上传数据。这适用于所有库存上传数据类型。例如,如果您提交两份价格上传数据,则每次只能处理一份上传数据。
  • 优化上传数据的提交内容。每隔几秒钟就上传很多份较小的上传数据是非常低效的,还可能导致系统任务积压,从而妨碍处理其他上传数据,并强制您取消某些之前提交的上传数据。
  • 上传数据处理报告存储在使用请求所设置的输出流中。例如,在 Java 客户端库中,您可以调用 GetFeedSubmissionResultRequest#setFeedSubmissionResultOutputStream() 来控制存储处理报告的位置。因为对于较大的上传数据,处理报告可能会非常大。

使用多个商城

如果某一亚马逊卖家在多个商城进行注册,则该卖家的卖家编号将会对应多个商城编号。例如,这些商城编号可能是提供相应服务的亚马逊卖家账户、亚马逊 WebstoreCheckout by Amazon。此类卖家可以提交适用于一个或多个商城编号的上传数据。欧洲 (EU) 地区的亚马逊卖家可以提交支持多个欧洲商城(使用一个统一的卖家账户注册)的上传数据。

注册了多个商城的卖家可以在这些商城中使用相同的 SKU 来管理库存商品。这就无需卖家在多个商城中手动同步库存商品。例如,还具有亚马逊 Webstore的亚马逊卖家可以管理用于两个商城的同个商品。

由于卖家可以注册使用多个商城,进而产生了“默认商城”的概念。“默认商城”即您首次作为卖家注册的国家。例如,如果您是在德国 (DE) 卖家平台网站注册的,则默认商城为 DE,默认商城编号为 A1PA6795UKMFR9(卖家商城编号值见下表)。请注意:如果卖家只希望在其默认商城销售商品,则上传数据流程没有任何变化。

如果未指定任何商城,则出于向后兼容性,上传数据将应用于默认国家内的所有商城。

注: 卖家可以使用 MWS 卖家 API 来确定其卖家编号对应的商城编号。

如何使用商城编号

您可以指定要应用上传数据的商城,方法是:当调用 SubmitFeed 操作时,将商城编号列表应用到可选的 MarketplaceIdList 参数。例如,注册了多个欧洲 (EU) 商城的卖家可以按以下格式指定 MarketplaceIdList 参数,从而将上传数据应用于其法国 (FR) 和德国 (DE)商城:

 
  &MarketplaceIdList.Id.1=A13V1IB3VIYZZH&MarketplaceIdList.Id.2=A1PA6795UKMFR9
  
      

在请求中,不要将可选的 MarketplaceIdList 参数和 Marketplace 参数相混淆。 Marketplace 参数已停止使用,不再用于验证,但出于向后兼容性,仍保留在请求中。

对于 EU 卖家而言,无需使用某一国家端点(如 https://mws.amazonservices.de)来指定应用上传数据的商城。通过在提交上传数据时指定某一商城编号,EU 卖家即可对该商城进行更新。

下表列出了 EU 商城编号值:

表 1. EU 商城编号值
商城 网址 商城编号
法国 www.amazon.fr A13V1IB3VIYZZH
德国 www.amazon.de A1PA6795UKMFR9
意大利 www.amazon.it APJ6JRA9NG5V4
西班牙 www.amazon.es A1RKKUPIHCS9HS
英国 www.amazon.co.uk A1F83G8C2ARO7P

您还可以提供 Webstore 商城编号或 Checkout By Amazon 商城编号。

提交多个商城编号时上传数据的处理方式

如果在提交上传数据请求时包括了多个商城编号,则上传数据处理的过程会比较复杂。以下介绍了使用多个商城编号提交上传数据时的一般规则:
  • 库存模板文件上传数据只能应用于一个国家。例如,如果商城编号是针对 UK 卖家账户和 UK WebStore 账户,则系统可以接受库存模板文件上传数据;但如果商城编号是针对 DE 卖家账户和 FR 卖家账户,则系统无法接受。
  • 根据 FeedType 和所提交的商城编号的不同,上传数据处理方式也会有所不同。下表介绍了提交多个商城编号时具体 FeedType 的处理方式。
  • 如果提交了多个商城编号,但一个或多个编号由于某种原因验证失败(货币不一致、语言不一致、国家不一致,或者一个被阻止而另一个有效),则亚马逊MWS将返回错误,提交失败。
  • 请注意:亚马逊MWS将先验证所提交的上传数据,然后将其归入处理队列。如果提交的上传数据所包含的商城编号与提交的 FeedType 是相对应的,则上传数据将通过验证。但是,通过验证并不意味着上传数据的格式正确或将成功处理。
  • 提交 SubmitFeed 时,如果将 PurgeAndReplace 设置为 true,则将对 EU 卖家指定的所有 EU 商城应用清空操作。如果未指定任何 EU 商城,则出于向后兼容性,将更新某个国家内的所有商城。

下表中的所有商品上传数据的处理方式均相同。如果所提交的某个上传数据包含多个商城编号,则该上传数据必须提供使用相同语言代码的所有商城,否则上传数据在提交时将被拒绝。如果未指定商城编号,则上传数据将应用于卖家注册的所有商城,以及使用卖家默认商城语言代码的所有商城。对于此类型的上传数据,亚马逊物流 (FBA) 商城编号无效。

表 2. 提交多个商城编号时商品上传数据的处理方式
上传数据类型 描述 文件类型
_POST_PRODUCT_DATA_ 商品上传数据 XML
_POST_PRODUCT_RELATIONSHIP_DATA_ 商品关系上传数据 XML
_POST_ITEM_DATA_ 商品上传数据 XML
_POST_OFFER_ONLY_DATA_ 仅含价格的上传数据 XML
_POST_WEBSTORE_ITEM_DATA_ WebStore 商品上传数据 XML

下表中的所有图片上传数据都具有相同的处理方式。在所提供的商城中,图片上传数据将图片与 ASIN 一一对应。如果未指定商城编号,则上传数据将应用于卖家注册的所有商城,以及位于卖家首次注册的国家中的所有商城。

表 3. 提交多个商城编号时图片上传数据的处理方式
上传数据类型 描述 文件类型
_POST_PRODUCT_IMAGE_DATA_ 图片上传数据 XML

下表中的所有价格上传数据都具有相同的处理方式。如果所提交的某个价格上传数据包含多个商城编号,则该上传数据必须提供使用相同货币代码的所有商城,否则上传数据在提交时将被拒绝。如果未指定商城编号,则上传数据将应用于卖家注册的所有商城,以及使用卖家默认商城的货币代码的所有商城。对于此类型的上传数据,亚马逊物流 (FBA) 商城编号无效。

表 4. 提交多个商城编号时价格上传数据的处理方式
上传数据类型 描述 文件类型
_POST_PRODUCT_PRICING_DATA_ 价格上传数据 XML

下表中的所有库存情况上传数据都具有相同的处理方式。在涉及 SKU 时,数量是一个整体值,因此,库存更改将应用于销售该 SKU 的所有商城。如果在多个商城中对同一 SKU 处理了多个库存上传数据,则卖家最后上传的库存数据的数量即为整体的库存数量。如果将商品库存数量设置为 0,则会在所有商城中将该数量设置为 0,且买家无法 购买该商品。但是该商品信息仍保留在系统中。对于此类型的上传数据,亚马逊物流 (FBA) 商城编号无效。

表 5. 提交多个商城编号时库存情况上传数据的处理方式
上传数据类型 描述 文件类型
_POST_INVENTORY_AVAILABILITY_DATA_ 库存上传数据 XML

下表中的所有订单配送上传数据都具有相同的处理方式。所有下单后上传数据(订单确认、发货确认、退款)都将引用亚马逊订单编号,该编号为全球唯一编号。因此,下单后上传数据并不是某个商城所特有的。

表 6. 提交多个商城编号时下单后上传数据的处理方式
上传数据类型 描述 文件类型
_POST_ORDER_FULFILLMENT_DATA_ 发货确认 XML

尽管所有订单配送取消上传数据只能应用于一个国家,但是它们可以应用于该国家的多个商城,如亚马逊卖家商城编号、亚马逊 Webstore商城编号以及Checkout by Amazon商城编号。对于此类型的上传数据,亚马逊物流 (FBA) 商城编号无效。

表 7. 提交多个商城编号时订单配送取消上传数据的处理方式
上传数据类型 描述 文件类型
_POST_FULFILLMENT_ORDER_CANCELLATION_REQUEST_DATA_ 配送订单取消请求 XML

下表中的所有配送调整上传数据都具有相同的处理方式。只能对这些上传数据指定一个商城。对于此类型的上传数据,亚马逊物流 (FBA) 商城编号无效。

表 8. 提交多个商城编号时配送调整上传数据的处理方式
上传数据类型 描述 文件类型
_POST_PRODUCT_OVERRIDES_DATA_ 商品配送调整上传数据 XML
_POST_SHIPPING_OVERRIDE_DATA_ 配送调整上传数据 XML

下表中的所有库存模板文件上传数据都具有相同的处理方式。尽管库存模板文件上传数据只能应用于一个国家,但是它们可以应用于该国家的多个商城,如亚马逊卖家商城编号、商城亚马逊 Webstore编号、Checkout by Amazon商城编号。但是,在涉及 SKU 时,数量是一个整体值,因此,库存更改将应用于销售该 SKU 的所有商城。如果在多个商城中对同一 SKU 处理了多个库存上传数据,则卖家最后上传的库存数据的数量即为整体的库存数量。如果将商品库存数量设置为 0,则会在所有商城中将该数量设置为 0,且买家无法购买该商品。但是该商品信息仍保留在系统中。对于此类型的上传数据,亚马逊物流 (FBA) 商城编号无效。

表 9. 提交多个商城编号时库存模板文件上传数据的处理方式
上传数据类型 描述 文件类型
_POST_FLAT_FILE_LISTINGS_DATA_ 库存加载工具 库存模板文件
_POST_FLAT_FILE_INVLOADER_DATA_ 合并的库存模板文件库存加载工具 库存模板文件
_POST_FLAT_FILE_BOOKLOADER_DATA_ 图书加载工具 库存模板文件
_POST_FLAT_FILE_PRICEANDQUANTITYONLY_ UPDATE_DATA_ 仅含价格和数量的加载工具 库存模板文件
_POST_FLAT_FILE_CONVERGENCE_LISTINGS_DATA_ 合并商品信息 库存模板文件
_POST_UIEE_BOOKLOADER_DATA_ UIEE 图书加载工具 库存模板文件

提交多个商城编号时的新错误消息

新增了在提交多个商城编号时显示的错误消息:

错误消息 描述
对此上传数据类型提供的所有商城都必须具有相同的默认语言代码。[ABCD] 和 [EFGH] 的默认语言代码不相同。 某些上传数据(如 _POST_PRODUCT_DATA_ 上传数据)只能应用于使用相同语言的商城。所提供的商城编号使用的语言不相同。
对此上传数据类型提供的所有商城都必须具有相同的默认货币代码。[ABCD] 和 [EFGH] 的默认货币代码不相同。 某些上传数据(尤其是与价格相关,如 _POST_PRODUCT_PRICING_DATA_上传数据)只能应用于使用相同货币的商城。所提供的商城编号使用的货币不同。
对此上传数据类型提供的所有商城都必须位于相同的国家。[ABCD] 和 [EFGH] 的默认国家代码不相同。 库存模板文件上传数据只能应用于在同一国家注册的商城编号。所提供的商城编号的默认国家不同。
所提供的商城与您的账户相对应,但是系统不允许您在以下商城中执行此操作:[ABCD] 和 [ABCD]。请联系您的默认商城的卖家支持团队,了解账户的更多信息。 您所提供的的账户和商城编号出现问题。导致此错误消息的原因有多种,包括没有完成商城注册。请联系您的默认商城的卖家支持团队,解决此问题。
提供的一个或多个商城是亚马逊物流 (FBA) 商城,无法用于此上传数据/报告类型:[ABCD] 和 [ABCD]。 对于此类型的上传数据,亚马逊物流 (FBA) 商城编号无效。
您的上传数据无法应用于任何商城。 由于您未提供商城编号,因此亚马逊 MWS 尝试确定要使用的相应商城。无法找到与可用于完成请求的账户相对应的商城。