如何使用Amazon MWS订单调整Feed取消单个商品?报错18028求助
解决Amazon MWS OrderAdjustment Feed 18028错误的经验分享
我之前也踩过这个18028错误的坑——明明XML过了XSD校验,提交却一直报数据无效,给你几个实际排查的方向:
确认调整原因的有效性:虽然
NoInventory是官方列出的原因值,但部分站点或特定订单类型可能对取消原因有更严格的限制。可以先试试CustomerCanceled这种通用型原因值,看是否能成功提交,排除原因值不兼容的问题。检查订单和商品的状态:单个商品取消操作仅支持**未发货(Unshipped)**的商品,如果该商品已经部分或全部发货,这个Feed就会报错。先去卖家后台确认下目标订单的发货状态,以及该商品的剩余可取消数量。
核对
QuantityCancelled的准确性:这个值必须和该商品未发货的数量完全匹配,比如买家买了3件、已经发了1件,那你只能填2,填多了就会触发数据无效的错误。补充隐性必填字段:有时候XSD里没标记为必填,但实际提交时需要额外字段。比如尝试在
AdjustedItem节点里添加商品的价格信息,示例如下:
<AdjustedItem> <AmazonOrderItemCode>209XXXXXXXXXXX</AmazonOrderItemCode> <AdjustmentReason>NoInventory</AdjustmentReason> <QuantityCancelled>1</QuantityCancelled> <ItemPrice> <CurrencyCode>USD</CurrencyCode> <Amount>XX.XX</Amount> </ItemPrice> </AdjustedItem>
(记得替换成订单里该商品的实际货币代码和金额)
- 校验
AmazonOrderItemCode的正确性:这个编码是区分单个商品的关键,一定要直接从卖家后台的订单详情页复制,避免手动输入时出现空格、字符缺失或错误。
附上你提供的原始请求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>XXXXXXXXX</MerchantIdentifier> </Header> <MessageType>OrderAdjustment</MessageType> <Message> <MessageID>1</MessageID> <OperationType>Update</OperationType> <OrderAdjustment> <AmazonOrderID>305-XXXXXXX-XXXXXXX</AmazonOrderID> <ActionType>Cancel</ActionType> <AdjustedItem> <AmazonOrderItemCode>209XXXXXXXXXXX</AmazonOrderItemCode> <AdjustmentReason>NoInventory</AdjustmentReason> <QuantityCancelled>1</QuantityCancelled> </AdjustedItem> </OrderAdjustment> </Message> </AmazonEnvelope>
内容的提问来源于stack exchange,提问作者theroppex
相关产品推荐
相关产品推荐

