亚马逊MWS API - SubmitFeed - OrderFulfillment - 如何设置ShipDate

时间:2015-01-23 09:13:27

标签: amazon amazon-mws

我需要将发货日期设置为当前日期,此时我正在尝试确认发货。但我不知道它在哪里设置。在文档示例中,没有此属性 我的XML代码:

<?xml version="1.0" encoding="UTF-8"?>
<AmazonEnvelope xsi:noNamespaceSchemaLocation="amzn-envelope.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Header>
        <DocumentVersion>1.02</DocumentVersion>
        <MerchantIdentifier>XXXXXXXXXXXX</MerchantIdentifier>
    </Header>
    <MessageType>OrderFulfillment</MessageType>
    <Message>
        <MessageID>1</MessageID>
        <OperationType>Update</OperationType>
        <OrderFulfillment>
            <AmazonOrderID>103-8280673-5282661</AmazonOrderID>
            <FulfillmentDate>2015-01-22T06:30:00</FulfillmentDate>
            <FulfillmentData>
                <CarrierName>USPS</CarrierName>
                <ShipperTrackingNumber>1234567890</ShipperTrackingNumber>
            </FulfillmentData>
            <Item>
                <AmazonOrderItemCode>18531427322146</AmazonOrderItemCode>
                <Quantity>1</Quantity>
            </Item>
            <Item>
                <AmazonOrderItemCode>54419133385610</AmazonOrderItemCode>
                <Quantity>1</Quantity>
            </Item>
        </OrderFulfillment>
    </Message>
</AmazonEnvelope>  

我尝试将发货日期设置为<OrderFulfillment><FulfillmentData> - 没有结果。
我试图像<ShipDate><ShippingDate><ShippedDate>那样写它 - 没有结果。
错误返回:

    <Result>
        <MessageID>1</MessageID>
        <ResultCode>Error</ResultCode>
        <ResultMessageCode>25</ResultMessageCode>
        <ResultDescription>We are unable to process the XML feed because one or more items are invalid. Please re-submit the feed.</ResultDescription>
    </Result>

也许有人知道如何设置发货日期?

3 个答案:

答案 0 :(得分:0)

我使用相同的XML Feed但没有<OperationType>Update</OperationType><item>代码,因为如果您要发送整个订单,则不需要代码。

然后我正在做以下PHP代码

$feed = trim($feed);

    $marketplaceIdArray = array("Id" => array($MARKETPLACE_ID));
    $feedHandle = @fopen('php://temp', 'rw+');
    fwrite($feedHandle, $feed);
    rewind($feedHandle); //Sets file pointer at beginning of file

    $parameters = array(
        'Merchant' => $MERCHANT_ID,
        'MarketplaceIdList' => $marketplaceIdArray,
        'FeedType' => '_POST_ORDER_FULFILLMENT_DATA_',
        'FeedContent' => $feedHandle,
        'PurgeAndReplace' => false, //Leave this PurgeAndReplace to false so that it want replace whole product in amazon inventory
        'ContentMd5' => base64_encode(md5(stream_get_contents($feedHandle), true))
    );

    rewind($feedHandle);
    $request = new MarketplaceWebService_Model_SubmitFeedRequest($parameters);

答案 1 :(得分:0)

对此不完全正面,但我们的Feed包含的内容是

<FulfillmentDate>2015-01-22T06:30:00+00:00</FulfillmentDate>

而不是

<FulfillmentDate>2015-01-22T06:30:00</FulfillmentDate>

这是唯一与我们完全不同的东西。

编辑1:我说谎了,你有一个我没有的标签。

<OperationType>Update</OperationType>

答案 2 :(得分:0)

上面应该解决它。而且,FulfillmentDate也可以是以下格式:

<FulfillmentDate>2015-01-22T06:30:00Z</FulfillmentDate>

删除此标记:

<OperationType>Update</OperationType>