【问题标题】:Add multiple tracking numbers to an amazon order using MWS API使用 MWS API 向亚马逊订单添加多个跟踪号
【发布时间】:2018-09-06 21:08:52
【问题描述】:

我正在尝试使用 PHP 中的 MWS API 将多个跟踪号上传到亚马逊订单,但不知道对此的 XML 请求是什么。这是我正在使用的 XML,它最终会上传最后一个跟踪号。

$feed = <<<EOD
<?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.01</DocumentVersion>
        <MerchantIdentifier>XXX</MerchantIdentifier>
        </Header>
        <MessageType>OrderFulfillment</MessageType>
        <Message>
        <MessageID>1</MessageID>
        <OrderFulfillment>
            <AmazonOrderID>$orderId</AmazonOrderID>
            <FulfillmentDate>$FulfillmentDate</FulfillmentDate>
            <FulfillmentData>
                <CarrierCode>$carrierCode</CarrierCode>
                <ShipperTrackingNumber>'1Z7X887R0370783509'</ShipperTrackingNumber>
            </FulfillmentData>
            <Item>
            <Quantity>1</Quantity>
        </Item>

        </OrderFulfillment>
        </Message>
        <MessageID>2</MessageID>
        <OrderFulfillment>
            <AmazonOrderID>$orderId</AmazonOrderID>
            <FulfillmentDate>$FulfillmentDate</FulfillmentDate>
            <FulfillmentData>
                <CarrierCode>$carrierCode</CarrierCode>
                <ShipperTrackingNumber>'1Z7X887R0075127492'</ShipperTrackingNumber>
            </FulfillmentData>
            <Item>
            <Quantity>1</Quantity>
        </Item>
        </OrderFulfillment>
        </Message>
        <MessageID>3</MessageID>
        <OrderFulfillment>
            <AmazonOrderID>$orderId</AmazonOrderID>
            <FulfillmentDate>$FulfillmentDate</FulfillmentDate>
            <FulfillmentData>
                <CarrierCode>$carrierCode</CarrierCode>
                <ShipperTrackingNumber>'1Z7X887R0375972085'</ShipperTrackingNumber>
            </FulfillmentData>
            <Item>
            <Quantity>1</Quantity>
           </Item>

        </OrderFulfillment>
        </Message>
    </AmazonEnvelope>
EOD;

感谢任何帮助!

【问题讨论】:

    标签: amazon-mws


    【解决方案1】:

    试试下面的 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>My Store</MerchantIdentifier>
    </Header>  
    <MessageType>OrderFulfillment</MessageType>
    <Message>     
       <MessageID>1</MessageID>     
       <OrderFulfillment>         
       <MerchantOrderID>1234567</MerchantOrderID>        
       <MerchantFulfillmentID>1234567</MerchantFulfillmentID>         
       <FulfillmentDate>2002-05-01T15:36:33-08:00</FulfillmentDate>         
       <FulfillmentData>            
          <CarrierCode>UPS</CarrierCode>            
          <ShippingMethod>Second Day</ShippingMethod>             
          <ShipperTrackingNumber>1Z7X887R0075127492</ShipperTrackingNumber>        
       </FulfillmentData>          
       <Item>            
          <MerchantOrderItemID>11</MerchantOrderItemID>              
          <MerchantFulfillmentItemID>11</MerchantFulfillmentItemID>            
          <Quantity>2</Quantity>         
       </Item>     
       </OrderFulfillment>
    </Message>
    <Message>     
       <MessageID>2</MessageID>     
       <OrderFulfillment>         
       <MerchantOrderID>1234567</MerchantOrderID>        
       <MerchantFulfillmentID>1234567</MerchantFulfillmentID>         
       <FulfillmentDate>2002-05-01T15:36:33-08:00</FulfillmentDate>         
       <FulfillmentData>            
          <CarrierCode>UPS</CarrierCode>            
          <ShippingMethod>Second Day</ShippingMethod>             
          <ShipperTrackingNumber>1Z7X887R0075127492</ShipperTrackingNumber>        
       </FulfillmentData>          
       <Item>            
          <MerchantOrderItemID>22</MerchantOrderItemID>              
          <MerchantFulfillmentItemID>22</MerchantFulfillmentItemID>            
          <Quantity>2</Quantity>         
       </Item>     
       </OrderFulfillment>
    </Message>
    </AmazonEnvelope>
    

    更多关于XSD的信息,可以参考Amazon order Fulfilment XSD

    【讨论】:

    • 抱歉,我这几天忙于另一个项目。我尝试了这个 XML,但它似乎不起作用。系统也不会返回任何错误,因此您永远不会知道自己错在哪里。
    • 我无法在我的帐户中找到 MerchantOrderItemID 和 MerchantFulfillmentItemID。知道我们从哪里得到的吗?
    【解决方案2】:

    您似乎没有正确打开邮件。

    试试这个:

    </Message>
      Add this -->  <Message>
            <MessageID>2</MessageID>    
    
     </Message>
    Add this -->  <Message>
            <MessageID>3</MessageID>
    

    【讨论】:

      【解决方案3】:

      我意识到这是一篇旧帖子,但如果其他人正在寻找并且无法让 XML 工作,我最终确实为自己找到了答案,即将提要作为平面文件而不是 XML 提交.我的解决方案是 C# 而不是 PHP,但基本上 FeedType 必须设置为“POST_FLAT_FILE_FULFILLMENT_DATA

        request.FeedType = "_POST_FLAT_FILE_FULFILLMENT_DATA_";
      

      而不是“POST_ORDER_FULFILLMENT_DATA”,然后以此处定义的格式提交一个制表符分隔的文本文件(来自他们的欧洲站点,但我在美国市场使用这个):

      https://sellercentral-europe.amazon.com/gp/help/external/help.html?itemID=13491

      我反复尝试让 XML 与几个不同的变体一起工作,但根本无法使其工作。亚马逊在这方面的文档很糟糕,并且没有描述如何为多个跟踪号设置 XML 格式。当我切换到平面文件提要时,它立即起作用。如果有人对 XML 版本有任何运气,我会很感兴趣。很长一段时间以来,我与 Amazon 有一个未决案例,试图从他们那里获取这些信息,他们一直坚持说我是在要求他们为我编写代码,而实际上我只是想要有关如何为他们的系统正确格式化 XML 的指导。我怀疑没有办法让两个跟踪号码和 XML 提要一起工作,而且它只适用于平面文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-03
        相关资源
        最近更新 更多