2010-03-05 16 views
4

Mon travail envirnment est Visual Studio 2008 + C#service Web Amazon avec l'article recherche par UPC

Je travaille sur WebService Amazon, je veux récupérer les données d'Amazon en utilisant SOAP mais quand je suis en train de passer idtype = UPC il me donne ci-dessous message d'erreur, alors que puis-je faire pour cela?

Erreur:

036725229884 is not a valid value for ItemId. Please change this value and retry your request

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

Note: Comment puis-je ajouter plusieurs SearchIndex comme ("Books", "Photo", "vidéo")?

J'ai utilisé à la suite WebService: http://webservices.amazon.com/AWSECommerceService/2009-11-01/US/AWSECommerceService.wsdl

Répondre

0

Je ne pense pas que Amazon prend en charge les requêtes sur plusieurs indices de recherche. Cependant, il existe un special index named All que vous pouvez utiliser avec les recherches UPC. Il y a quelques limitations sur les paramètres utilisés avec cet index mais puisque vous spécifiez All pour MerchantId et Condition cela peut fonctionner. Si non, vous pouvez faire la requête sans ces paramètres et ensuite émettre une nouvelle requête une fois que vous avez les ASIN pour les CUP qui vous intéressent.

2

Également être lassé de la différence entre UPC et EAN.

UPC = 12 digits, EAN = 13 digits

Si vous percez juste un code CUP 738678251584 (12 chiffres) ou EAN 3253581057803 (13 chiffres) à Amazon.com il indique à la fois comme UPC dans la description, mais en utilisant l'API, vous devez spécifier EAN lorsque recherche.

Nous avons des produits avec les deux et vous devez spécifier le type de recherche en conséquence ou il ne sera pas trouvé.

Édition: OU vous pouvez ajouter un 0 à un nombre de 12 chiffres et toujours chercher EAN. C'est probablement la meilleure solution. Par définition "0" + UPC = EAN

Cette demande a fonctionné pour moi (searchType est soit UPC ou 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

lire cela aussi: http://en.wikipedia.org/wiki/Universal_Product_Code en particulier la section EAN –

+0

"Un code à barres UPC XXXXXXXXXXXX est donc le code à barres EAN-13 0XXXXXXXXXXXX" –