Как отменить ОДИН пункт, используя ленту корректировки заказа amazon mws? - PullRequest
0 голосов
/ 21 мая 2018

Я пытался отменить один элемент из заказа амазонки, используя их канал корректировки заказа, но каждый раз, когда я отправляю запрос, я получаю:

ОШИБКА 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, и кажется,быть действительным в соответствии со схемой Amazon XSD.

Буду признателен, если кто-то с подобной проблемой сможет поделиться своим опытом.

1 Ответ

0 голосов
/ 30 мая 2018

TLDR: попробуйте установить для ActionType значение Возврат вместо Отмена .

Это касается торговцев, которые выполняют свои собственные задачи.

На ум приходят два сценария, заказ с:

  1. два предмета, каждый с количеством 1
  2. один предмет с количеством 2

Логично, что частичная отмена включает в себя выполнение одного элемента и отмену второго.

Поскольку MWS API не имеет ни одной операции для частичной отмены, приложение должно сначала выполнить второй элемент, а затем вернуть его.

Это означает, что сначала отправьте сообщение OrderFulfillment для второго элемента, а затем отправьте OrderAdjustment для него.

Я обнаружил, что ActionType of Cancel выдает то же сообщение об ошибке, что и в исходном сообщении.в то время как значение возврата успешно обрабатывается.

...