public static void SetAvailiableQuantity(Article article, Int32 quantity) { try { var articleNumber = article.MasterArticle == null ? article.ArticleNumber : article.MasterArticle.ArticleNumber; SellingManagerProductType ebayProduct = EbayController.GetSellingManagerProductTypeByArticle(articleNumber); if (ebayProduct != null) { ReviseSellingManagerProductRequestType request = new ReviseSellingManagerProductRequestType(); request.SellingManagerProductDetails = ebayProduct.SellingManagerProductDetails; request.SellingManagerProductDetails.QuantityAvailable = quantity; request.SellingManagerProductSpecifics = new SellingManagerProductSpecificsType(); ReviseSellingManagerProductCall call = new ReviseSellingManagerProductCall(EbayController.GetApiContext()); call.ExecuteRequest(request); } } catch (Exception ex) { throw new Exception("Can set ebay quantity availiable for " + article.ArticleNumber, ex); } }
private static SellingManagerProductType GetSellingManagerProductTypeByArticle(String articleNumber) { SellingManagerProductType result = null; try { GetSellingManagerInventoryCall c2 = new GetSellingManagerInventoryCall(EbayController.GetApiContext()); c2.Search = new SellingManagerSearchType(); c2.Search.SearchType = SellingManagerSearchTypeCodeType.CustomLabel; c2.Search.SearchValue = articleNumber; c2.Execute(); result = c2.SellingManagerProductList.Count > 0 ? c2.SellingManagerProductList[0] : null; } catch (Exception ex) { throw new Exception("Can read ebay product by article id " + articleNumber, ex); } return(result); }
public static EbayStockInfo GetEbayStockInfo(Article article) { Int32 active = 0; Int32 availiable = 0; Int32 template = 0; try { var articleNumber = article.MasterArticle == null ? article.ArticleNumber : article.MasterArticle.ArticleNumber; SellingManagerProductType ebayProduct = EbayController.GetSellingManagerProductTypeByArticle(articleNumber); if (article.MasterArticle != null) { var variation = ebayProduct.SellingManagerProductSpecifics.Variations.Variation .ToArray() .FirstOrDefault(runner => runner.SKU == article.ArticleNumber); var status = variation.SellingManagerProductInventoryStatus; active = variation.SellingManagerProductInventoryStatus.QuantityActiveSpecified ? variation.SellingManagerProductInventoryStatus.QuantityActive : 0; availiable = variation.UnitsAvailable; } else { if (ebayProduct != null) { active = ebayProduct.SellingManagerProductInventoryStatus.QuantityActiveSpecified ? ebayProduct.SellingManagerProductInventoryStatus.QuantityActive : 0; availiable = ebayProduct.SellingManagerProductDetails.QuantityAvailableSpecified ? ebayProduct.SellingManagerProductDetails.QuantityAvailable : 0; if (ebayProduct.SellingManagerTemplateDetailsArray.Count > 0) { GetSellingManagerTemplatesCall call = new GetSellingManagerTemplatesCall(apiContext); GetSellingManagerTemplatesRequestType request = new GetSellingManagerTemplatesRequestType(); request.Version = Assembly.GetExecutingAssembly().GetName().Version.ToString(); request.SaleTemplateID = new Int64Collection(); foreach (SellingManagerTemplateDetailsType item in ebayProduct.SellingManagerTemplateDetailsArray) { request.SaleTemplateID.Add(Convert.ToInt64(item.SaleTemplateID)); } GetSellingManagerTemplatesResponseType response = new GetSellingManagerTemplatesResponseType(); response = (GetSellingManagerTemplatesResponseType)call.ExecuteRequest(request); if (response.Ack == AckCodeType.Success) { foreach (SellingManagerTemplateDetailsType item in response.SellingManagerTemplateDetailsArray) { template += item.Template.Quantity; } } } } } } catch (Exception ex) { throw new Exception("Can set ebay template amount for " + article.ArticleNumber, ex); } return(new EbayStockInfo(template, active, availiable)); }