通过UPC进行项目查找的Amazon Web服务

时间:2010-03-05 07:06:47

标签: c# amazon amazon-product-api

我的工作环境是Visual Studio 2008 + C#

我正在使用Amazon WebService,我想使用SOAP从Amazon获取数据,但是当我尝试传递IDType = UPC时,它会给出以下错误消息,那么我该怎么做呢?

错误:

  

036725229884不是ItemId的有效值。请更改此值并重试您的请求

mycode的:

ItemLookupRequest request1 = new ItemLookupRequest();
request1.IdType = ItemLookupRequestIdType.UPC;
request1.IdTypeSpecified = true;
request1.ItemId = new string[] { ProductID };
request1.ResponseGroup = new string[] { "Request", "Large", "OfferFull", "BrowseNodes" };
request1.MerchantId = "All";
request1.Condition = Condition.All;
request1.SearchIndex = "Books";

注意: 如何添加多个SearchIndex(“书籍”,“照片”,“视频”)?

我使用了以下WebService: http://webservices.amazon.com/AWSECommerceService/2009-11-01/US/AWSECommerceService.wsdl

2 个答案:

答案 0 :(得分:2)

还要对UPC和EAN之间的区别感到厌倦。

  

UPC = 12位数,    EAN = 13位

如果您只是将UPC 738678251584(12位数)或EAN 3253581057803(13位数)打入Amazon.com,它将在说明中显示为UPC,但使用API搜索时必须指定EAN。

我们有两种产品,您需要相应地指定搜索类型,否则无法找到它。

编辑:或者您可以将0添加到任何12位数字,并始终搜索EAN。这可能是最好的解决方案。根据定义"0" + UPC = EAN

此请求对我有用(searchType为UPC或EAN):

        ItemLookup itemLookup = new ItemLookup()
        {
            AssociateTag = "XXXXX-20",
        };
        itemLookup.AWSAccessKeyId = ACCESS_ID;

        ItemLookupRequest itemLookupRequest = new ItemLookupRequest();
        itemLookupRequest.IdTypeSpecified = true;
        itemLookupRequest.IdType = searchType;
        itemLookupRequest.SearchIndex = "All";
        itemLookupRequest.ItemId = upcEanList;
        itemLookupRequest.ResponseGroup = new[] { "OfferSummary", "ItemAttributes" };
        itemLookup.Request = new ItemLookupRequest[] { itemLookupRequest };

答案 1 :(得分:0)

我认为亚马逊不支持跨多个搜索索引的查询。但是,您可以使用special index named All进行UPC查找。此索引使用的参数存在一些限制,但由于您为AllMerchantId指定了Condition,因此可能会有效。如果没有,您可以在没有这些参数的情况下进行查询,然后在获得您感兴趣的UPC的ASIN后发出新查询。