4

私の作業環境は Visual Studio 2008 + C# です

Amazon WebService に取り組んでいます。SOAP を使用して Amazon からデータをフェッチしたいのですが、IDType = UPC を渡そうとすると、以下のエラー メッセージが表示されます。

エラー:

036725229884 は ItemId の有効な値ではありません。この値を変更して、リクエストを再試行してください

マイコード:

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";

注: ("Books","Photo","Video") のように複数の SearchIndex を追加するにはどうすればよいですか?

次の WebService を使用しました: http://webservices.amazon.com/AWSECommerceService/2009-11-01/US/AWSECommerceService.wsdl

4

2 に答える 2

2

また、UPC と EAN の違いにもうんざりしてください。

UPC=12桁、EAN=13桁

738678251584UPC (12 桁) または EAN (13 桁) を Amazon.com に打ち込むだけ3253581057803では、説明に両方とも UPC として表示されますが、API を使用して、検索時に EAN を指定する必要があります。

両方の製品があり、それに応じて検索タイプを指定する必要があります。そうしないと、見つかりません。

編集: または、任意の 12 桁の数字の先頭に 0 を追加して、常に 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 };
于 2011-10-21T09:03:47.573 に答える
0

Amazon が複数の検索インデックスにまたがるクエリをサポートしているとは思いません。ただし、UPC ルックアップで使用できる名前の特別なインデックスがあります。Allこのインデックスで使用されるパラメーターにはいくつかの制限がありますが、指定AllMerchantIdているためCondition機能する可能性があります。そうでない場合は、これらのパラメーターを指定せずにクエリを実行し、関心のある UPC の ASIN を取得したら、新しいクエリを発行することができます。

于 2011-01-11T06:10:15.693 に答える