Веб-сервис Amazon с поиском предметов по UPC - PullRequest
4 голосов
/ 05 марта 2010

Моя рабочая среда - Visual Studio 2008 + C #

Я работаю в Amazon WebService, я хочу получить данные из Amazon, используя SOAP, но когда я пытаюсь передать 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 ]

2 голосов
/ 21 октября 2011

Также надо знать разницу между 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 };
0 голосов
/ 11 января 2011

Я не думаю, что Amazon поддерживает запросы по нескольким поисковым индексам. Однако существует специальный индекс с именем All, который можно использовать с поиском UPC. Существуют некоторые ограничения на параметры, используемые с этим индексом, но, поскольку вы указываете All для MerchantId и Condition, он может работать Если нет, вы можете выполнить запрос без этих параметров, а затем выполнить новый запрос, как только у вас есть ASIN для интересующих вас UPC.

...