如何使用amazon mws订单调整Feed取消一个项目?

时间:2018-05-21 10:58:40

标签: amazon-mws

我一直在尝试使用订单调整Feed从亚马逊订单中取消单个商品,但每次我提交请求时都会收到:

  

错误18028:您使用此项目提交的数据不完整或无效。请重新提交包含所有必填字段的项目,并填写有效数据。

我在我的请求中使用了这个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>

我已经仔细检查了我的xml,根据亚马逊的xsd架构它似乎是有效的。

如果有类似问题的人可以分享他们的经验,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

TLDR:尝试将ActionType设置为退款,而不是取消

这涉及商家自己的实现。

我想到了两个场景,一个订单:

  1. 两个项目,每个项目的数量为1
  2. 一件数量为2的物品
  3. 逻辑上,部分取消涉及完成一项并取消第二项。

    由于MWS API对部分取消没有单一操作,因此应用程序必须先完成第二项并退款。

    这意味着首先为第二个项目发送OrderFulfillment消息,然后为其发送OrderAdjustment。

    我发现取消的ActionType提供了与原始帖子中看到的相同的错误消息,同时成功处理了退款值。