我已经阅读了很多关于Amazon API的文档,仍然不清楚我收到的错误,文档没有提供有帮助的示例。
我正在使用此更新我的inventoy:
我读过不同的文档,每个文档都说明了一个新的服务URL,我对此真的很困惑。
config.ServiceURL = "https://mws.amazonservices.co.uk/FulfillmentInventory/2011-10-01";
config.ServiceURL = "https://secure.amazon.co.uk/exec/panama/seller-admin/catalog-upload/modify-only";
我的代码来启动进程和发送请求是:
String accessKeyId = "#";
String secretAccessKey = "#";
String merchantId = "#";
String marketplaceId = "#";
MemoryStream stream = new MemoryStream();
stream = GenerateInventoryDocument(txtxSku.Text, merchantId, txtQuantity.Text);
const string applicationName = "C#";
const string applicationVersion = "4";
MarketplaceWebServiceConfig config = new MarketplaceWebServiceConfig();
MarketplaceWebService.MarketplaceWebService service = new MarketplaceWebServiceClient(accessKeyId, secretAccessKey, applicationName, applicationVersion, config);
MarketplaceWebService.Model.SubmitFeedResponse response = new MarketplaceWebService.Model.SubmitFeedResponse();
MarketplaceWebService.Model.SubmitFeedRequest request = new MarketplaceWebService.Model.SubmitFeedRequest();
request.Merchant = merchantId;
request.MarketplaceIdList = new MarketplaceWebService.Model.IdList();
request.MarketplaceIdList.Id = new List<string>(new string[] { marketplaceId });
request.FeedContent = stream;
request.ContentMD5 = MarketplaceWebServiceClient.CalculateContentMD5(request.FeedContent);
request.FeedContent.Position = 0;
request.FeedType = "_POST_INVENTORY_AVAILABILITY_DATA_";
SubmitFeedSample.InvokeSubmitFeed(service, request);
GenerateInventoryDocument()
函数为:
MemoryStream myDocument = new MemoryStream();
string myString;
//Add the document header.
myString = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>";
this.AddStringToStream(ref myString, myDocument);
myString = "<AmazonEnvelope xsi:noNamespaceSchemaLocation=\"amzn-envelope.xsd\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">";
this.AddStringToStream(ref myString, myDocument);
myString = "<Header>";
this.AddStringToStream(ref myString, myDocument);
myString = "<DocumentVersion>1.01</DocumentVersion>";
this.AddStringToStream(ref myString, myDocument);
myString = "<MerchantIdentifier>" + merchantID + "</MerchantIdentifier>";
this.AddStringToStream(ref myString, myDocument);
myString = "</Header>";
this.AddStringToStream(ref myString, myDocument);
myString = "<MessageType>Inventory</MessageType>";
this.AddStringToStream(ref myString, myDocument);
myString = "<Message>";
this.AddStringToStream(ref myString, myDocument);
myString = "<MessageID>1</MessageID>";
this.AddStringToStream(ref myString, myDocument);
myString = "<OperationType>Update</OperationType>";
this.AddStringToStream(ref myString, myDocument);
myString = "<Inventory>";
this.AddStringToStream(ref myString, myDocument);
myString = "<SKU>" + sku + "</SKU>";
this.AddStringToStream(ref myString, myDocument);
myString = "<FulfillmentLatency>1</FulfillmentLatency>";
this.AddStringToStream(ref myString, myDocument);
myString = "<Quantity>" + quantity + "</Quantity>";
this.AddStringToStream(ref myString, myDocument);
myString = "</Inventory>";
this.AddStringToStream(ref myString, myDocument);
myString = "</Message>";
this.AddStringToStream(ref myString, myDocument);
myString = "</AmazonEnvelope>";
this.AddStringToStream(ref myString, myDocument);
return myDocument;
当我使用此URL时:
config.ServiceURL = "https://mws.amazonservices.co.uk/FulfillmentInventory/2011-10-01";
我收到以下错误响应:
<ErrorResponse xmlns="http://mws.amazonaws.com/FulfillmentInventory/2011-10-01/">
<Error>
<Type>Sender</Type>
<Code>NoSuchVersion</Code>
<Message>The requested version ( 2010-01-01 ) is not valid.</Message>
<Detail/>
</Error>
<RequestID>f35d1eb0-b8e7-40c0-8394-027619fb0762</RequestID>
</ErrorResponse>
当我使用这个服务URL时,我在另一个文档中读到:
config.ServiceURL = "https://secure.amazon.co.uk/exec/panama/seller-admin/catalog-upload/modify-only";
我收到以下错误响应:
<BusinessLogicError>CUSTOMER_UNAUTHORIZED</BusinessLogicError>
请让我知道,如果有什么错误的代码,因为我完全按照文件。
这些都是些小问题,我想不通。
1条答案
按热度按时间c0vxltue1#
你的代码有一些错误。我假设你想更新库存,你正在履行自己(而不是FBA)。我还假设你是一个专业商家,这是亚马逊要求使用任何MWS API。
适用于英国的正确
serviceUrl
为https://mws.amazonservices.co.uk
。适用于更新/添加库存的正确feedType
为_POST_FLAT_FILE_LISTINGS_DATA_
。您还可以使用其他源类型。请参阅Feeds API reference的“源类型枚举”部分。此源类型是制表符分隔的文件,您可以找到模板(s)here。也有XML类型的提要,但您必须有正确的帐户才能使用此类型的提要提交。这些类型的帐户只能通过邀请。假设你已经下载了C# Feeds API,你应该看一下MarketplaceWebServiceSamples.cs文件,它包含在MarketplaceWebServiceSamples.cs项目中。这个文件有很多部分已经被注解掉了。找到一个处理Submit Feed动作的文件,用它来学习如何提交feed。
您应该花更多的时间阅读Feeds API documentation,尤其是Feed Type Enumeration部分,因为还有其他类型的提要可以使用(仅限制表符分隔)。