/** * Convert GetMatchingProductRequest to name value pairs */ private IDictionary <String, String> ConvertGetMatchingProduct(GetMatchingProductRequest request) { IDictionary <String, String> parameters = new Dictionary <String, String>(); parameters.Add("Action", "GetMatchingProduct"); if (request.IsSetSellerId()) { parameters.Add("SellerId", request.SellerId); } if (request.IsSetMarketplaceId()) { parameters.Add("MarketplaceId", request.MarketplaceId); } if (request.IsSetASINList()) { ASINListType getMatchingProductRequestASINList = request.ASINList; List <String> ASINListASINList = getMatchingProductRequestASINList.ASIN; int ASINListASINListIndex = 1; foreach (String ASINListASIN in ASINListASINList) { parameters.Add("ASINList" + "." + "ASIN" + "." + ASINListASINListIndex, ASINListASIN); ASINListASINListIndex++; } } return(parameters); }
public GetMatchingProductResponse InvokeGetMatchingProduct() { // Create a request. GetMatchingProductRequest request = new GetMatchingProductRequest(); request.SellerId = sellerId; request.MWSAuthToken = mwsAuthToken; request.MarketplaceId = marketplaceId; ASINListType asinList = new ASINListType(); request.ASINList = asinList; return this.client.GetMatchingProduct(request); }
public GetMatchingProductResponse InvokeGetMatchingProduct(string sellerId, string mwsAuthToken, string marketplaceId, out APIResults results) { try { // Create a request. GetMatchingProductRequest request = new GetMatchingProductRequest(); request.SellerId = sellerId; request.MWSAuthToken = mwsAuthToken; request.MarketplaceId = marketplaceId; ASINListType asinList = new ASINListType(); request.ASINList = asinList; GetMatchingProductResponse output = this.productClient.GetMatchingProduct(request); results = new APIResults((IMWSResponse)output); return(output); } catch (MarketplaceWebServiceProductsException ex) { results = new APIResults(ex); throw ex; } }
public GetMatchingProductResponse GetMatchingProduct(GetMatchingProductRequest request) { return(newResponse <GetMatchingProductResponse>()); }
// Public API ------------------------------------------------------------// /// <summary> /// Get Matching Product /// </summary> /// <param name="request">Get Matching Product request</param> /// <returns>Get Matching Product Response from the service</returns> /// <remarks> /// GetMatchingProduct will return the details (attributes) for the /// given ASIN. /// /// </remarks> public GetMatchingProductResponse GetMatchingProduct(GetMatchingProductRequest request) { return(Invoke <GetMatchingProductResponse>(ConvertGetMatchingProduct(request))); }
public GetMatchingProductResponse GetMatchingProduct(GetMatchingProductRequest request) { return(connection.Call( new MarketplaceWebServiceProductsClient.Request <GetMatchingProductResponse>("GetMatchingProduct", typeof(GetMatchingProductResponse), servicePath), request)); }
// Public API ------------------------------------------------------------// /// <summary> /// Get Matching Product /// </summary> /// <param name="request">Get Matching Product request</param> /// <returns>Get Matching Product Response from the service</returns> /// <remarks> /// GetMatchingProduct will return the details (attributes) for the /// given ASIN. /// /// </remarks> public GetMatchingProductResponse GetMatchingProduct(GetMatchingProductRequest request) { return(Invoke <GetMatchingProductResponse>("GetMatchingProductResponse.xml")); }
/// <summary> /// GetMatchingProduct will return the details (attributes) for the /// given ASIN. /// /// </summary> /// <param name="service">Instance of MarketplaceWebServiceProducts service</param> /// <param name="request">GetMatchingProductRequest request</param> public static void InvokeGetMatchingProduct(MarketplaceWebServiceProducts service, GetMatchingProductRequest request) { try { GetMatchingProductResponse response = service.GetMatchingProduct(request); Console.WriteLine("Service Response"); Console.WriteLine("============================================================================="); Console.WriteLine(); Console.WriteLine(" GetMatchingProductResponse"); List <GetMatchingProductResult> getMatchingProductResultList = response.GetMatchingProductResult; foreach (GetMatchingProductResult getMatchingProductResult in getMatchingProductResultList) { Console.WriteLine(" GetMatchingProductResult"); if (getMatchingProductResult.IsSetASIN()) { Console.WriteLine(" ASIN"); Console.WriteLine(); Console.WriteLine(" {0}", getMatchingProductResult.ASIN); Console.WriteLine(); } if (getMatchingProductResult.IsSetstatus()) { Console.WriteLine(" status"); Console.WriteLine(); Console.WriteLine(" {0}", getMatchingProductResult.status); Console.WriteLine(); } if (getMatchingProductResult.IsSetProduct()) { Console.WriteLine(" Product"); Product product = getMatchingProductResult.Product; if (product.IsSetIdentifiers()) { Console.WriteLine(" Identifiers"); IdentifierType identifiers = product.Identifiers; if (identifiers.IsSetMarketplaceASIN()) { Console.WriteLine(" MarketplaceASIN"); ASINIdentifier marketplaceASIN = identifiers.MarketplaceASIN; if (marketplaceASIN.IsSetMarketplaceId()) { Console.WriteLine(" MarketplaceId"); Console.WriteLine(" {0}", marketplaceASIN.MarketplaceId); } if (marketplaceASIN.IsSetASIN()) { Console.WriteLine(" ASIN"); Console.WriteLine(" {0}", marketplaceASIN.ASIN); } } if (identifiers.IsSetSKUIdentifier()) { Console.WriteLine(" SKUIdentifier"); SellerSKUIdentifier SKUIdentifier = identifiers.SKUIdentifier; if (SKUIdentifier.IsSetMarketplaceId()) { Console.WriteLine(" MarketplaceId"); Console.WriteLine(" {0}", SKUIdentifier.MarketplaceId); } if (SKUIdentifier.IsSetSellerId()) { Console.WriteLine(" SellerId"); Console.WriteLine(" {0}", SKUIdentifier.SellerId); } if (SKUIdentifier.IsSetSellerSKU()) { Console.WriteLine(" SellerSKU"); Console.WriteLine(" {0}", SKUIdentifier.SellerSKU); } } } if (product.IsSetAttributeSets()) { Console.WriteLine(" Attributes"); foreach (var attribute in product.AttributeSets.Any) { Console.WriteLine(ProductsUtil.FormatXml((System.Xml.XmlElement)attribute)); } } if (product.IsSetRelationships()) { Console.WriteLine(string.Empty); Console.WriteLine(" Relationships"); foreach (var relationship in product.Relationships.Any) { Console.WriteLine(ProductsUtil.FormatXml((System.Xml.XmlElement)relationship)); } } if (product.IsSetCompetitivePricing()) { Console.WriteLine(" CompetitivePricing"); CompetitivePricingType competitivePricing = product.CompetitivePricing; if (competitivePricing.IsSetCompetitivePrices()) { Console.WriteLine(" CompetitivePrices"); CompetitivePriceList competitivePrices = competitivePricing.CompetitivePrices; List <CompetitivePriceType> competitivePriceList = competitivePrices.CompetitivePrice; foreach (CompetitivePriceType competitivePrice in competitivePriceList) { Console.WriteLine(" CompetitivePrice"); if (competitivePrice.IsSetcondition()) { Console.WriteLine(" condition"); Console.WriteLine(); Console.WriteLine(" {0}", competitivePrice.condition); Console.WriteLine(); } if (competitivePrice.IsSetsubcondition()) { Console.WriteLine(" subcondition"); Console.WriteLine(); Console.WriteLine(" {0}", competitivePrice.subcondition); Console.WriteLine(); } if (competitivePrice.IsSetbelongsToRequester()) { Console.WriteLine(" belongsToRequester"); Console.WriteLine(); Console.WriteLine(" {0}", competitivePrice.belongsToRequester); Console.WriteLine(); } if (competitivePrice.IsSetCompetitivePriceId()) { Console.WriteLine(" CompetitivePriceId"); Console.WriteLine(" {0}", competitivePrice.CompetitivePriceId); } if (competitivePrice.IsSetPrice()) { Console.WriteLine(" Price"); PriceType price = competitivePrice.Price; if (price.IsSetLandedPrice()) { Console.WriteLine(" LandedPrice"); MoneyType landedPrice = price.LandedPrice; if (landedPrice.IsSetCurrencyCode()) { Console.WriteLine(" CurrencyCode"); Console.WriteLine(" {0}", landedPrice.CurrencyCode); } if (landedPrice.IsSetAmount()) { Console.WriteLine(" Amount"); Console.WriteLine(" {0}", landedPrice.Amount); } } if (price.IsSetListingPrice()) { Console.WriteLine(" ListingPrice"); MoneyType listingPrice = price.ListingPrice; if (listingPrice.IsSetCurrencyCode()) { Console.WriteLine(" CurrencyCode"); Console.WriteLine(" {0}", listingPrice.CurrencyCode); } if (listingPrice.IsSetAmount()) { Console.WriteLine(" Amount"); Console.WriteLine(" {0}", listingPrice.Amount); } } if (price.IsSetShipping()) { Console.WriteLine(" Shipping"); MoneyType shipping = price.Shipping; if (shipping.IsSetCurrencyCode()) { Console.WriteLine(" CurrencyCode"); Console.WriteLine(" {0}", shipping.CurrencyCode); } if (shipping.IsSetAmount()) { Console.WriteLine(" Amount"); Console.WriteLine(" {0}", shipping.Amount); } } } } } if (competitivePricing.IsSetNumberOfOfferListings()) { Console.WriteLine(" NumberOfOfferListings"); NumberOfOfferListingsList numberOfOfferListings = competitivePricing.NumberOfOfferListings; List <OfferListingCountType> offerListingCountList = numberOfOfferListings.OfferListingCount; foreach (OfferListingCountType offerListingCount in offerListingCountList) { Console.WriteLine(" OfferListingCount"); if (offerListingCount.IsSetcondition()) { Console.WriteLine(" condition"); Console.WriteLine(); Console.WriteLine(" {0}", offerListingCount.condition); Console.WriteLine(); } if (offerListingCount.IsSetValue()) { Console.WriteLine(" Value"); Console.WriteLine(); Console.WriteLine(" {0}", offerListingCount.Value); } } } if (competitivePricing.IsSetTradeInValue()) { Console.WriteLine(" TradeInValue"); MoneyType tradeInValue = competitivePricing.TradeInValue; if (tradeInValue.IsSetCurrencyCode()) { Console.WriteLine(" CurrencyCode"); Console.WriteLine(" {0}", tradeInValue.CurrencyCode); } if (tradeInValue.IsSetAmount()) { Console.WriteLine(" Amount"); Console.WriteLine(" {0}", tradeInValue.Amount); } } } if (product.IsSetSalesRankings()) { Console.WriteLine(" SalesRankings"); SalesRankList salesRankings = product.SalesRankings; List <SalesRankType> salesRankList = salesRankings.SalesRank; foreach (SalesRankType salesRank in salesRankList) { Console.WriteLine(" SalesRank"); if (salesRank.IsSetProductCategoryId()) { Console.WriteLine(" ProductCategoryId"); Console.WriteLine(" {0}", salesRank.ProductCategoryId); } if (salesRank.IsSetRank()) { Console.WriteLine(" Rank"); Console.WriteLine(" {0}", salesRank.Rank); } } } if (product.IsSetLowestOfferListings()) { Console.WriteLine(" LowestOfferListings"); LowestOfferListingList lowestOfferListings = product.LowestOfferListings; List <LowestOfferListingType> lowestOfferListingList = lowestOfferListings.LowestOfferListing; foreach (LowestOfferListingType lowestOfferListing in lowestOfferListingList) { Console.WriteLine(" LowestOfferListing"); if (lowestOfferListing.IsSetQualifiers()) { Console.WriteLine(" Qualifiers"); QualifiersType qualifiers = lowestOfferListing.Qualifiers; if (qualifiers.IsSetItemCondition()) { Console.WriteLine(" ItemCondition"); Console.WriteLine(" {0}", qualifiers.ItemCondition); } if (qualifiers.IsSetItemSubcondition()) { Console.WriteLine(" ItemSubcondition"); Console.WriteLine(" {0}", qualifiers.ItemSubcondition); } if (qualifiers.IsSetFulfillmentChannel()) { Console.WriteLine(" FulfillmentChannel"); Console.WriteLine(" {0}", qualifiers.FulfillmentChannel); } if (qualifiers.IsSetShipsDomestically()) { Console.WriteLine(" ShipsDomestically"); Console.WriteLine(" {0}", qualifiers.ShipsDomestically); } if (qualifiers.IsSetShippingTime()) { Console.WriteLine(" ShippingTime"); ShippingTimeType shippingTime = qualifiers.ShippingTime; if (shippingTime.IsSetMax()) { Console.WriteLine(" Max"); Console.WriteLine(" {0}", shippingTime.Max); } } if (qualifiers.IsSetSellerPositiveFeedbackRating()) { Console.WriteLine(" SellerPositiveFeedbackRating"); Console.WriteLine(" {0}", qualifiers.SellerPositiveFeedbackRating); } } if (lowestOfferListing.IsSetNumberOfOfferListingsConsidered()) { Console.WriteLine(" NumberOfOfferListingsConsidered"); Console.WriteLine(" {0}", lowestOfferListing.NumberOfOfferListingsConsidered); } if (lowestOfferListing.IsSetSellerFeedbackCount()) { Console.WriteLine(" SellerFeedbackCount"); Console.WriteLine(" {0}", lowestOfferListing.SellerFeedbackCount); } if (lowestOfferListing.IsSetPrice()) { Console.WriteLine(" Price"); PriceType price1 = lowestOfferListing.Price; if (price1.IsSetLandedPrice()) { Console.WriteLine(" LandedPrice"); MoneyType landedPrice1 = price1.LandedPrice; if (landedPrice1.IsSetCurrencyCode()) { Console.WriteLine(" CurrencyCode"); Console.WriteLine(" {0}", landedPrice1.CurrencyCode); } if (landedPrice1.IsSetAmount()) { Console.WriteLine(" Amount"); Console.WriteLine(" {0}", landedPrice1.Amount); } } if (price1.IsSetListingPrice()) { Console.WriteLine(" ListingPrice"); MoneyType listingPrice1 = price1.ListingPrice; if (listingPrice1.IsSetCurrencyCode()) { Console.WriteLine(" CurrencyCode"); Console.WriteLine(" {0}", listingPrice1.CurrencyCode); } if (listingPrice1.IsSetAmount()) { Console.WriteLine(" Amount"); Console.WriteLine(" {0}", listingPrice1.Amount); } } if (price1.IsSetShipping()) { Console.WriteLine(" Shipping"); MoneyType shipping1 = price1.Shipping; if (shipping1.IsSetCurrencyCode()) { Console.WriteLine(" CurrencyCode"); Console.WriteLine(" {0}", shipping1.CurrencyCode); } if (shipping1.IsSetAmount()) { Console.WriteLine(" Amount"); Console.WriteLine(" {0}", shipping1.Amount); } } } if (lowestOfferListing.IsSetMultipleOffersAtLowestPrice()) { Console.WriteLine(" MultipleOffersAtLowestPrice"); Console.WriteLine(" {0}", lowestOfferListing.MultipleOffersAtLowestPrice); } } } if (product.IsSetOffers()) { Console.WriteLine(" Offers"); OffersList offers = product.Offers; List <OfferType> offerList = offers.Offer; foreach (OfferType offer in offerList) { Console.WriteLine(" Offer"); if (offer.IsSetBuyingPrice()) { Console.WriteLine(" BuyingPrice"); PriceType buyingPrice = offer.BuyingPrice; if (buyingPrice.IsSetLandedPrice()) { Console.WriteLine(" LandedPrice"); MoneyType landedPrice2 = buyingPrice.LandedPrice; if (landedPrice2.IsSetCurrencyCode()) { Console.WriteLine(" CurrencyCode"); Console.WriteLine(" {0}", landedPrice2.CurrencyCode); } if (landedPrice2.IsSetAmount()) { Console.WriteLine(" Amount"); Console.WriteLine(" {0}", landedPrice2.Amount); } } if (buyingPrice.IsSetListingPrice()) { Console.WriteLine(" ListingPrice"); MoneyType listingPrice2 = buyingPrice.ListingPrice; if (listingPrice2.IsSetCurrencyCode()) { Console.WriteLine(" CurrencyCode"); Console.WriteLine(" {0}", listingPrice2.CurrencyCode); } if (listingPrice2.IsSetAmount()) { Console.WriteLine(" Amount"); Console.WriteLine(" {0}", listingPrice2.Amount); } } if (buyingPrice.IsSetShipping()) { Console.WriteLine(" Shipping"); MoneyType shipping2 = buyingPrice.Shipping; if (shipping2.IsSetCurrencyCode()) { Console.WriteLine(" CurrencyCode"); Console.WriteLine(" {0}", shipping2.CurrencyCode); } if (shipping2.IsSetAmount()) { Console.WriteLine(" Amount"); Console.WriteLine(" {0}", shipping2.Amount); } } } if (offer.IsSetRegularPrice()) { Console.WriteLine(" RegularPrice"); MoneyType regularPrice = offer.RegularPrice; if (regularPrice.IsSetCurrencyCode()) { Console.WriteLine(" CurrencyCode"); Console.WriteLine(" {0}", regularPrice.CurrencyCode); } if (regularPrice.IsSetAmount()) { Console.WriteLine(" Amount"); Console.WriteLine(" {0}", regularPrice.Amount); } } if (offer.IsSetFulfillmentChannel()) { Console.WriteLine(" FulfillmentChannel"); Console.WriteLine(" {0}", offer.FulfillmentChannel); } if (offer.IsSetItemCondition()) { Console.WriteLine(" ItemCondition"); Console.WriteLine(" {0}", offer.ItemCondition); } if (offer.IsSetItemSubCondition()) { Console.WriteLine(" ItemSubCondition"); Console.WriteLine(" {0}", offer.ItemSubCondition); } if (offer.IsSetSellerId()) { Console.WriteLine(" SellerId"); Console.WriteLine(" {0}", offer.SellerId); } if (offer.IsSetSellerSKU()) { Console.WriteLine(" SellerSKU"); Console.WriteLine(" {0}", offer.SellerSKU); } } } } if (getMatchingProductResult.IsSetError()) { Console.WriteLine(" Error"); Error error = getMatchingProductResult.Error; if (error.IsSetType()) { Console.WriteLine(" Type"); Console.WriteLine(" {0}", error.Type); } if (error.IsSetCode()) { Console.WriteLine(" Code"); Console.WriteLine(" {0}", error.Code); } if (error.IsSetMessage()) { Console.WriteLine(" Message"); Console.WriteLine(" {0}", error.Message); } } } if (response.IsSetResponseMetadata()) { Console.WriteLine(" ResponseMetadata"); ResponseMetadata responseMetadata = response.ResponseMetadata; if (responseMetadata.IsSetRequestId()) { Console.WriteLine(" RequestId"); Console.WriteLine(" {0}", responseMetadata.RequestId); } } Console.WriteLine(" ResponseHeaderMetadata"); Console.WriteLine(" RequestId"); Console.WriteLine(" " + response.ResponseHeaderMetadata.RequestId); Console.WriteLine(" ResponseContext"); Console.WriteLine(" " + response.ResponseHeaderMetadata.ResponseContext); Console.WriteLine(" Timestamp"); Console.WriteLine(" " + response.ResponseHeaderMetadata.Timestamp); Console.WriteLine(); } catch (MarketplaceWebServiceProductsException ex) { Console.WriteLine("Caught Exception: " + ex.Message); Console.WriteLine("Response Status Code: " + ex.StatusCode); Console.WriteLine("Error Code: " + ex.ErrorCode); Console.WriteLine("Error Type: " + ex.ErrorType); Console.WriteLine("Request ID: " + ex.RequestId); Console.WriteLine("XML: " + ex.XML); Console.WriteLine("ResponseHeaderMetadata: " + ex.ResponseHeaderMetadata); } }
public GetMatchingProductResponse GetMatchingProduct(GetMatchingProductRequest request) { return(this.connection.Call( new ImwsProductsServiceClient.Request <GetMatchingProductResponse>("GetMatchingProduct", typeof(GetMatchingProductResponse), this.servicePath), request)); }
public List <Listing> GetAllListingsForAsin(IEnumerable <string> asins) { List <Listing> foundListings = new List <Listing>(); foreach (IEnumerable <string> asinBatch in asins.Distinct().Batch(c_maxBatchAmount)) { List <string> enumeratedASINs = asinBatch.ToList(); List <GetLowestOfferListingsForASINResult> lowestOfferListingsResults = null; GetLowestOfferListingsForASINRequest lowestOfferListingsRequest = new GetLowestOfferListingsForASINRequest { ASINList = new ASINListType { ASIN = enumeratedASINs }, MarketplaceId = m_marketPlaceId, SellerId = m_sellerId }; List <GetMatchingProductResult> matchingProductResult = null; GetMatchingProductRequest matchingProductRequest = new GetMatchingProductRequest { ASINList = new ASINListType { ASIN = enumeratedASINs }, MarketplaceId = m_marketPlaceId, SellerId = m_sellerId }; // Attempt 5 times to issue requests to Amazon, since throttling causes exceptions. for (int i = 0; i < 5; i++) { try { GetLowestOfferListingsForASINResponse lowestOfferListingsResponse = m_productClient.GetLowestOfferListingsForASIN(lowestOfferListingsRequest); lowestOfferListingsResults = lowestOfferListingsResponse.GetLowestOfferListingsForASINResult; GetMatchingProductResponse matchingProductResponse = m_productClient.GetMatchingProduct(matchingProductRequest); matchingProductResult = matchingProductResponse.GetMatchingProductResult; // If we get to here without an exception, then we don't have to issue the request again. break; } catch (MarketplaceWebServiceProductsException e) { Console.WriteLine(e.Message); Thread.Sleep(10000); } } if (lowestOfferListingsResults != null && matchingProductResult != null) { foreach (string asin in enumeratedASINs) { GetLowestOfferListingsForASINResult lowestOfferListing = lowestOfferListingsResults .Where(w => w.Product != null) .FirstOrDefault(w => w.Product.Identifiers.MarketplaceASIN.ASIN == asin); GetMatchingProductResult matchingProduct = matchingProductResult .Where(w => w.Product != null) .FirstOrDefault(f => f.Product.Identifiers.MarketplaceASIN.ASIN == asin); if (lowestOfferListing != null && matchingProduct != null) { List <LowestOfferListingType> lowestofferListingTypes = lowestOfferListing .Product .LowestOfferListings .LowestOfferListing; int numberOfMerchantFulfilledOffers = lowestofferListingTypes .Where(w => w.Qualifiers.ItemCondition == "New") .Count(c => c.Qualifiers.FulfillmentChannel == FulfillmentChannel.Merchant.ToString()); int numberOfAmazonFulfilledOffers = lowestofferListingTypes .Where(w => w.Qualifiers.ItemCondition == "New") .Count(c => c.Qualifiers.FulfillmentChannel == FulfillmentChannel.Amazon.ToString()); decimal?lowestPrice = null; if (lowestofferListingTypes.Any()) { lowestPrice = lowestofferListingTypes .Where(w => w.Qualifiers.ItemCondition == "New") .Select(s => s.Price.ListingPrice.Amount + (s.Price.Shipping == null ? 0m : s.Price.Shipping.Amount)) // s.Price.Shipping can be null. .Where(w => w > 0) .OrderBy(o => o) .FirstOrDefault(); } var salesRank = matchingProduct .Product .SalesRankings .SalesRank .Select(s => new { Rank = (decimal?)s.Rank, ProductCategory = s.ProductCategoryId }) .FirstOrDefault() ?? new { Rank = (decimal?)null, ProductCategory = string.Empty }; foundListings.Add(new Listing { ASIN = asin, SellersRank = salesRank.Rank, SellersRankCategory = salesRank.ProductCategory, LowestPrice = lowestPrice, NumberOfMerchantFulfilledOffers = numberOfMerchantFulfilledOffers, NumberOfAmazonFulfilledOrders = numberOfAmazonFulfilledOffers, }); } } } } return(foundListings); }