如何使用MWS将亚马逊订单状态更新为Shipped

时间:2016-06-14 15:39:28

标签: amazon amazon-mws

我是亚马逊MWS的新手,我有订单号,我需要更新订单,如亚马逊发货,我读过我们可以使用SubmitFeed Api来做,我在项目中有一个参考MWSOrders_2013 -09-01_v2013-09-01.dll但我无法访问SubmitFeed,请有人能让我知道我的代码应该如何吗?

3 个答案:

答案 0 :(得分:1)

我想知道更多信息来回答这个问题,但是如果你只想找到如何做的XML布局,你可以参考Selling on Amazon Guide to XML

基本上布局是:

<xsd:complexType>
<xsd:sequence>
<xsd:element ref="AmazonOrderID"/>
<xsd:element ref="MerchantOrderID" minOccurs="0"/>
<xsd:element name="StatusCode">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Success"/>
<xsd:enumeration value="Failure"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Item" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="AmazonOrderItemCode"/>
<xsd:element ref="MerchantOrderItemID" minOccurs="0"/>
<xsd:element name="CancelReason" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="NoInventory"/>
<xsd:enumeration value="ShippingAddressUndeliverable"/>
<xsd:enumeration value="CustomerExchange"/>
<xsd:enumeration value="BuyerCanceled"/>
<xsd:enumeration value="GeneralAdjustment"/>
<xsd:enumeration value="CarrierCreditDecision"/>
<xsd:enumeration value="RiskAssessmentInformationNotValid"/>
<xsd:enumeration value="CarrierCoverageFailure"/>
<xsd:enumeration value="CustomerReturn"/>
<xsd:enumeration value="MerchandiseNotReceived"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

这是一个例子:

<?xml version="1.0"?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
<Header>
 <DocumentVersion>1.01</DocumentVersion>
 <MerchantIdentifier> M_IDENTIFIER</MerchantIdentifier>
</Header>
<MessageType>OrderAcknowledgement</MessageType>
<Message>
 <MessageID>1</MessageID>
 <OrderAcknowledgement>
 <AmazonOrderID>050-1234567-1234567</AmazonOrderID>
 <MerchantOrderID>1234567</MerchantOrderID>
 <StatusCode>Success</StatusCode>
 <Item>
 <AmazonOrderItemCode>12345678901234</AmazonOrderItemCode>
 <MerchantOrderItemID>1234567</MerchantOrderItemID>
 </Item>
 </OrderAcknowledgement>
</Message>
</AmazonEnvelope> 

我正在使用Ruby on Rails编写我的应用程序来执行此操作。所以,如果你也是,你可以看看宝石Peddler与api互动,我也使用Nokogiri(你可以google,因为我不够酷,发布超过2个链接:)来创建xml。如果您希望我可以分享我的代码,但这对我和Ruby on Rail来说非常特别。

答案 1 :(得分:0)

我会根据你的问题猜测你是一个C#程序员,虽然你没有说你正在使用什么库/平台。你说你有MWS dll,但你需要的一切都包含在其中,所以也许你没有正确的东西。亚马逊拥有您在几分钟内开始使用和提交Feed所需的一切,只需在此处下载C#客户端库:https://developer.amazonservices.com/doc/bde/feeds/v20090101/cSharp.html/175-9415024-6151568

解压缩src文件夹,在Visual Studio中打开,一切都在那里,包括客户端库以及示例代码。在您的情况下,请查看MarketplaceWebServiceSamples.cs文件的MarkletplaceWebService.Samples项目。填写您的访问密钥,然后搜索SubmitFeed。取消注释并填写您的请求所需的内容并运行它。

如果您不是C#程序员,请查看其他客户端库。它真的很容易上手。 https://developer.amazonservices.com/gp/mws/api.html/175-9415024-6151568?ie=UTF8&group=bde&section=feeds&version=latest

答案 2 :(得分:0)

最后这是我的vb.net代码,它运行正常。

Public Function UpdateOrderStatusInAmazonWebSite(ByRef AmazonEntity As NSAmazonEntity,ByVal amazonOrder As NSAmazonMWSOrder)As SubmitFeedResponse
        昏暗的响应As SubmitFeedResponse         尝试

from pkg_resources import parse_version

## Install numpy if it is not found or too old
try:
    import numpy
    if parse_version(numpy.__version__) < parse_version('1.10'):
        print("numpy {} was found but is too old. Upgrading.".format(numpy.__version__))
        raise ImportError
    print("Numpy was found. Build extensions.")
except ImportError:
    print("Building Cython extensions requires numpy. Installing numpy.")
    import pip
    pip_args = ['install', numpy_req]
    pip.main(pip_args)
    import numpy

结束功能