我正在使用订单确认 Feed 取消亚马逊订单。下面是我用来取消亚马逊订单的 xml feed 格式。
我已成功将此 Feed 提交到 MWS,但每次检查 Feed 提交结果时总是出现此错误
'The XML you submitted is ill-formed at the Amazon Envelope XML level at (or near) line 1, column 485'.
我根据这个Selling on Amazon: Guide to XML创建了xml格式。
<?xml version="1.0"?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
<Header>
<DocumentVersion>1.01</DocumentVersion>
<MerchantIdentifier>M_xxxxxx_108291953</MerchantIdentifier>
</Header>
<MessageType>OrderAcknowledgment</MessageType>
<Message>
<MessageID>1</MessageID>
<OrderAcknowledgement>
<AmazonOrderID>123-1234567-1234567</AmazonOrderID>
<StatusCode>Failure</StatusCode>
<CancelReason>BuyerCanceled</CancelReason>
</OrderAcknowledgment>
</Message>
</AmazonEnvelope>
任何人都可以帮我解决我在 xml 格式中缺少的内容吗?
最佳答案
您的 XML 代码有两个问题:
- 亚马逊使用“OrderAcknowledgement”,而不是“OrderAcknowledgment”。虽然该选择可能是 debatable ,但 XSD 不会为不同的拼写留下任何空间。 (这适用于
MessageType
以及开始和结束 XML 标记,您的拼写仅对于开始标记是正确的) -
CancelReason
仅在<Item>
子结构内有效。
以下 XML 验证:
<?xml version="1.0"?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
<Header>
<DocumentVersion>1.01</DocumentVersion>
<MerchantIdentifier>M_xxxxxx_108291953</MerchantIdentifier>
</Header>
<MessageType>OrderAcknowledgement</MessageType>
<Message>
<MessageID>1</MessageID>
<OrderAcknowledgement>
<AmazonOrderID>123-1234567-1234567</AmazonOrderID>
<StatusCode>Failure</StatusCode>
<Item>
<AmazonOrderItemCode>12345678901234</AmazonOrderItemCode>
<CancelReason>BuyerCanceled</CancelReason>
</Item>
<Item>
<AmazonOrderItemCode>12345678901235</AmazonOrderItemCode>
<CancelReason>BuyerCanceled</CancelReason>
</Item>
<Item>
<AmazonOrderItemCode>12345678901237</AmazonOrderItemCode>
<CancelReason>BuyerCanceled</CancelReason>
</Item>
</OrderAcknowledgement>
</Message>
</AmazonEnvelope>
关于amazon-mws - 亚马逊订单确认 feed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18254327/