2016-12-28 3 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은 XSD를 상대로 확인하지 않습니다. 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