-1

我正在尝试自动执行亚马逊订单的发货确认,但提交提要显示“我们无法处理 XML 提要,因为一件或多件商品无效。请重新提交提要。”。

我已经根据此处找到的文档对其进行了检查:https ://images-na.ssl-images-amazon.com/images/G/01/rainier/help/XML_Documentation_Intl.pdf

你能看看吗?

<?xml version="1.0" encoding="UTF-8"?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
   <Header>
      <DocumentVersion>1.01</DocumentVersion>
      <MerchantIdentifier>MY-MERCHANT-ID</MerchantIdentifier>
   </Header>
   <MessageType>OrderFulfillment</MessageType>
   <Message>
      <MessageID>1</MessageID>
      <OrderFulfillment>
         <AmazonOrderID>116-8390288-9796217</AmazonOrderID>
         <MerchantOrderID>877399</MerchantOrderID>
         <FulfillmentDate>2016-12-28T22:55:27-08:00</FulfillmentDate>
         <FulfillmentData>
            <CarrierName>USPS</CarrierName>
            <ShippingMethod>Standard</ShippingMethod>
         <ShipperTrackingNumber>9400110200830414375387</ShipperTrackingNumber>
         </FulfillmentData>
         <Item>
            <AmazonOrderItemCode>40322771766298</AmazonOrderItemCode>
            <Quantity>1</Quantity>
         </Item>
      </OrderFulfillment>
   </Message>
</AmazonEnvelope>

4

1 回答 1

1

您的 XML 不会针对 XSD 进行验证。OrderFulfillment.xsd包含以下段落:

<xsd:choice>
     <xsd:element ref="AmazonOrderID"/>
     <xsd:element ref="MerchantOrderID"/>
</xsd:choice>

意思是,您只能提交anyour . 仅当您在上一步中向亚马逊公开了自己的信息时,才允许使用后者。由于您的系统似乎两者都知道,因此没有理由不使用.AmazonOrderID MerchantOrderIDMerchantOrderIDAmazonOrderID

以下 XML 提要经过验证,因此应该可以工作:

<?xml version="1.0" encoding="UTF-8"?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
   <Header>
      <DocumentVersion>1.01</DocumentVersion>
      <MerchantIdentifier>MY-MERCHANT-ID</MerchantIdentifier>
   </Header>
   <MessageType>OrderFulfillment</MessageType>
   <Message>
      <MessageID>1</MessageID>
      <OrderFulfillment>
         <AmazonOrderID>116-8390288-9796217</AmazonOrderID>

         <FulfillmentDate>2016-12-28T22:55:27-08:00</FulfillmentDate>
         <FulfillmentData>
            <CarrierName>USPS</CarrierName>
            <ShippingMethod>Standard</ShippingMethod>
         <ShipperTrackingNumber>9400110200830414375387</ShipperTrackingNumber>
         </FulfillmentData>
         <Item>
            <AmazonOrderItemCode>40322771766298</AmazonOrderItemCode>
            <Quantity>1</Quantity>
         </Item>
      </OrderFulfillment>
   </Message>
</AmazonEnvelope>
于 2016-12-29T15:13:40.013 回答