Ejemplo n.º 1
0
        public override void ProcessProduct()
        {
            foreach(var row in Source_CSV)
               {
                if (row[headerType.Where(h => h.HeaderName == "InStock").SingleOrDefault().ColumnNumber].ToLower() == "true")
                {
                    Product _product = new Product();

                    _product.Handle = row[headerType.Where(h => h.HeaderName == "Handle").SingleOrDefault().ColumnNumber];
                    _product.Title = row[headerType.Where(h => h.HeaderName == "Title").SingleOrDefault().ColumnNumber];
                    _product.BodyHTML = row[headerType.Where(h => h.HeaderName == "BodyHTML").SingleOrDefault().ColumnNumber];
                    _product.EAN = row[headerType.Where(h => h.HeaderName == "Barcode").SingleOrDefault().ColumnNumber];
                    _product.Vendor = row[headerType.Where(h => h.HeaderName == "Vendor").SingleOrDefault().ColumnNumber];
                    _product.Type = row[headerType.Where(h => h.HeaderName == "Type").SingleOrDefault().ColumnNumber];
                    _product = GetImages(_product, row);
                    _product = GetOptions(_product, row);
                    _product = GetVariant(_product, row);
                    _products.Add(_product);
                }
                else
                {
                    Product _product = new Product();
                    _product.Handle = row[headerType.Where(h => h.HeaderName == "Handle").SingleOrDefault().ColumnNumber];
                    OutOfStock.Add(_product);
                    Product_OutStock = Product_OutStock + 1;
                    _products.Add(_product);
                }
            }
        }
Ejemplo n.º 2
0
        //Product with Variants.
        public void UpdateProduct(Product product, string id, Shopify_Product_Loader_ShopifyClass.Product shofiy_product)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("{ \"product\": {");
            sb.Append("\"id\":\"" + id + "\"");
            sb.Append(",\"published\":\"true\"");
            //  sb.Append(",\"tags\":\"" + product.Tags + "\"");

            sb.Append(",\"variants\": [");

            int loopVariants = 0;

            foreach (var variants in shofiy_product.variants)
            {
                ProductVariant TempVariant = null;

                if (!string.IsNullOrEmpty(variants.option1) && product.ProductVariantList.Count > 1 && product.Options != null)
                {
                    TempVariant = (from _p in product.ProductVariantList where _p.Options.Where(pp => pp == variants.option1) != null select _p).FirstOrDefault();
                }
                else
                {
                    TempVariant = product.ProductVariantList.FirstOrDefault();
                }

                if (loopVariants == 0)
                {
                    sb.Append("{");
                    loopVariants = loopVariants + 1;
                }
                else
                {
                    sb.Append(",{");
                }
                sb.Append("\"id\":\"" + variants.id + "\"");
                sb.Append(",\"price\":\"" + TempVariant.Price + "\"");
                sb.Append(",\"barcode\":\"" + TempVariant.barcode + "\""); // EAN
                sb.Append("}");
            }

            sb.Append("]");
            sb.Append("}");
            sb.Append("}");

            string json = sb.ToString();

            Shopify_Put("/admin/products/" + id + ".json", json, id);
        }
Ejemplo n.º 3
0
        //Product with no Variants
        public void UpdateProduct(Product product, string id, string variantId)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("{ \"product\": {");
            sb.Append("\"id\":\"" + id + "\"");
            sb.Append(",\"published\":\"true\"");
            //sb.Append(",\"tags\":\"" + product.Tags + "\"");
            sb.Append(",\"variants\": [{");
            sb.Append("\"id\":\"" + variantId + "\"");
            sb.Append(",\"price\":\"" + product.ProductVariantList[0].Price + "\"");
            sb.Append(",\"barcode\":\"" + product.EAN + "\""); // EAN
            sb.Append("}]");
            sb.Append("}");
            sb.Append("}");

            string json = sb.ToString();

            Shopify_Put("/admin/products/" + id + ".json", json, id);
        }
Ejemplo n.º 4
0
        public void CreateNewProduct(Product product)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("{ \"product\": {");
            sb.Append("\"title\":\"" + product.Title + "\"");
            sb.Append(",\"body_html\":\"" + product.BodyHTML.Replace("\t", "").Replace("'", "").Replace("Â", "") + "\"");
            sb.Append(",\"vendor\":\"" + product.Vendor + "\"");
            sb.Append(",\"handle\":\"" + product.Handle + "\"");
            sb.Append(",\"tags\":\"" + product.Tags + "\"");
            sb.Append(",\"product_type\":\"" + product.Type + "\"");

            sb.Append(",\"images\": [ ");

            sb.Append("{\"src\":\"" + product.Image_Src + "\"}");

            //Add more then one images.

            foreach (string image in product.Other_Images)
            {
                sb.Append(",{\"src\":\"" + image + "\"}");
            }

            sb.Append("]");

            if (product.Options != null && product.Options.Count() > 0)
            {

                int optionLoop = 0;
                sb.Append(",\"options\":[");

                foreach (var tempVendor in product.Options)
                {

                    if (optionLoop == 0)
                    {
                        sb.Append("{");

                    }
                    else
                    {
                        sb.Append(",{");
                    }

                    optionLoop = optionLoop + 1;

                    sb.Append("\"name\":\"" + tempVendor.Name + "\"");
                    sb.Append(",\"position\":" + optionLoop);
                    sb.Append(",\"title\":\"" + tempVendor.Name + "\"");

                    int valuesLoop = 0;

                    sb.Append(",\"values\":[");

                    foreach (var tempValue in tempVendor.OptionValue)
                    {
                        if (valuesLoop == 0)
                        {
                            sb.Append("\"" + tempValue + "\"");
                            valuesLoop = valuesLoop + 1;
                        }
                        else
                        {

                            sb.Append(",\"" + tempValue + "\"");
                        }
                    }

                    sb.Append("]");

                    sb.Append("}");
                }

                sb.Append("]");
            }

            sb.Append(",\"variants\" : [");

            int variantsloop = 0;

            if (product.ProductVariantList != null)
            {

                foreach (var vendor in product.ProductVariantList)
                {
                    if (variantsloop == 0)
                    {
                        sb.Append("{");
                        variantsloop = variantsloop + 1;
                    }
                    else
                    {
                        sb.Append(",{");
                    }
                    sb.Append("\"price\":\"" + vendor.Price + "\"");
                    sb.Append(",\"barcode\":\"" + vendor.barcode + "\""); // EAN
                    sb.Append(",\"title\":\"" + vendor.Title + "\"");

                    if (vendor.Options != null)
                    {
                        for (int i = 0; i < vendor.Options.Count(); i++)
                        {
                            sb.Append(",\"option" + (i + 1) + "\":\"" + vendor.Options[i] + "\"");
                        }
                    }

                    sb.Append("}");
                }
            }

            sb.Append("]");
            sb.Append("}");
            sb.Append("}");

            string json = sb.ToString();

            json = Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(json));

            Shopify_Post("/admin/products.json", json, product.Handle);
        }
Ejemplo n.º 5
0
        protected override Product GetVariant(Product _product, List<string> row)
        {
            _product.ProductVariantList = new List<ProductVariant>();

            if(_product.Options.Count() == 0)
            {
                ProductVariant variant = new ProductVariant();
                variant.Price = Working_Sale_Price(row[headerType.Where(h => h.HeaderName == "Price").SingleOrDefault().ColumnNumber],row[headerType.Where(h => h.HeaderName == "DeliveryCost").SingleOrDefault().ColumnNumber]);
                variant.barcode = _product.EAN;
                _product.ProductVariantList.Add(variant);

            }
            else
            {
               var optionOrder =  _product.Options.OrderByDescending(s => s.OptionValue.Count);

               var option_1 = optionOrder.Take(1).SingleOrDefault();

                foreach (var orderValue in option_1.OptionValue)
                {
                    switch (_product.Options.Count())
                    {
                        case 1:
                            ProductVariant variant = new ProductVariant();
                            variant.Price = Working_Sale_Price(row[headerType.Where(h => h.HeaderName == "Price").SingleOrDefault().ColumnNumber], row[headerType.Where(h => h.HeaderName == "DeliveryCost").SingleOrDefault().ColumnNumber]);
                            variant.barcode = _product.EAN;
                            variant.Options = new List<string>();
                            variant.Title = option_1.Name;
                            variant.Options.Add(orderValue);
                            _product.ProductVariantList.Add(variant);
                            break;
                        case 2:
                            var option_2 = optionOrder.Skip(1).Take(1).SingleOrDefault();
                            foreach (var optionOrder_2 in option_2.OptionValue)
                            {
                                variant = new ProductVariant();
                                variant.Price = Working_Sale_Price(row[headerType.Where(h => h.HeaderName == "Price").SingleOrDefault().ColumnNumber], row[headerType.Where(h => h.HeaderName == "DeliveryCost").SingleOrDefault().ColumnNumber]);
                                variant.barcode = _product.EAN;
                                variant.Options = new List<string>();
                                variant.Title = option_1.Name + "_" + option_2.Name;
                                variant.Options.Add(orderValue);
                                variant.Options.Add(optionOrder_2);
                                _product.ProductVariantList.Add(variant);

                            }
                            break;
                        case 3:
                            option_2 = optionOrder.Skip(1).Take(1).SingleOrDefault();
                            foreach (var optionOrder_2 in option_2.OptionValue)
                            {
                                var option_3 = optionOrder.Skip(2).Take(1).SingleOrDefault();
                                foreach (var optionOrder_3 in option_3.OptionValue)
                                {
                                    variant = new ProductVariant();
                                    variant.Price = Working_Sale_Price(row[headerType.Where(h => h.HeaderName == "Price").SingleOrDefault().ColumnNumber], row[headerType.Where(h => h.HeaderName == "DeliveryCost").SingleOrDefault().ColumnNumber]);
                                    variant.barcode = _product.EAN;
                                    variant.Options = new List<string>();
                                    variant.Title = option_1.Name + "_" + option_2.Name + "_" + option_3.Name;
                                    variant.Options.Add(orderValue);
                                    variant.Options.Add(optionOrder_2);
                                    variant.Options.Add(optionOrder_3);
                                    _product.ProductVariantList.Add(variant);
                                }
                            }
                            break;
                    }

                }

            }

            return _product;
        }
Ejemplo n.º 6
0
        protected override Product GetOptions(Product _product, List<string> row)
        {
            string optionList = System.Configuration.ConfigurationManager.AppSettings["Variant_Column"];

            _product.Options = new List<Option>();

            if (optionList.Count() > 0)
            {
                List<string> optionToAdd = optionList.Split(',').ToList();

                foreach (var lOptions in optionToAdd)
                {

                    Option _options = new Option();

                    _options.OptionValue = new List<string>();

                    _options.Name = lOptions;

                    List<string> optionValues = row[headerType.Where(h => h.HeaderName == lOptions).SingleOrDefault().ColumnNumber].Split(System.Configuration.ConfigurationSettings.AppSettings["Variant_Separator"][0]).ToList();

                    foreach (var _value in optionValues)
                    {
                        _options.OptionValue.Add(_value);
                    }

                    _product.Options.Add(_options);
                }
            }

            return _product;
        }
Ejemplo n.º 7
0
        protected override Product GetImages(Product _product, List<string> row)
        {
            _product.Other_Images = new List<string>();

            _product.Image_Src = row[headerType.Where(h => h.HeaderName == "Image_1").SingleOrDefault().ColumnNumber];
            _product.Other_Images.Add(row[headerType.Where(h => h.HeaderName == "Image_2").SingleOrDefault().ColumnNumber]);
            _product.Other_Images.Add(row[headerType.Where(h => h.HeaderName == "Image_3").SingleOrDefault().ColumnNumber]);

            return _product;
        }
Ejemplo n.º 8
0
 protected virtual Product GetVariant(Product _product, List<string> row)
 {
     throw new NotImplementedException();
 }