Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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));
        }