2016-12-28 2 views
-1

Я пытаюсь автоматизировать подтверждение доставки наших заказов Amazon, но в корме отправки говорится: «Мы не можем обработать XML-канал, потому что один или несколько элементов недействительны. Повторите отправку фида».Ошибка Amazon MWS 25 - Вы видите ошибку с моим 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>

ответ

1

Ваш XML не проверяет против XSDs. OrderFulfillment.xsd содержит следующий пассаж:

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

значение, вы можете подать только либоAmazonOrderIDили ваш MerchantOrderID. Последнее разрешено только в том случае, если вы сделали свой собственный MerchantOrderID, известный Amazon на предыдущем шаге. Поскольку ваша система, похоже, знает оба, нет причин не использовать AmazonOrderID.

следующие подающий 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> 
+0

Это решило его. – billabrian6

Смежные вопросы