public void AddProduct(Product product) { var variants = product.Variants; product.Variants = null; product.Options = variants[0].Options; variants[0].Options = null; product.VariantsAttributes = new[] { variants[0] }; var x = product.ToXElement(); var data = downloadWebPage(getFullUrl("/admin/products.xml"), HttpMethod.POST, x.ToString()); var xx = XDocument.Parse(data).Root; product.LoadXElement(xx); if (variants.Length > 1) { for (int i = 1; i < variants.Length; i++) { var variant = variants[i]; for (int j = 0; j < variant.Options.Length; j++) { variant.Options[j].OptionNameID = product.Variants[0].OptionValues[j].OptionNameID; } AddVariant(variant, product.ID); } } }
public IEnumerable<Product> GetProducts(int? categoryID = null, int? collectionID = null, int? page = null, int limit = 50) { var url = "admin/products.xml"; var currentPage = page ?? 1; if (categoryID != null) url += "?category_id=" + categoryID; if (collectionID != null) url += "?collection_id=" + collectionID; while (true) { var data = downloadWebPage(getFullUrl(url + "?page=" + currentPage + "&limit=" + limit), HttpMethod.GET); var x = XDocument.Parse(data); if (x.Root.Elements().Count() == 0) break; foreach (var item in x.Root.Elements()) { var prod = new Product(); prod.LoadXElement(item); yield return prod; } if (page != null) break; currentPage++; } }
public void UpdateProduct(Product product) { var x = product.ToXElement(false); var data = downloadWebPage(getFullUrl("/admin/products/" + product.ID + ".xml"), HttpMethod.PUT, x.ToString()); var xx = XDocument.Parse(data).Root; product.LoadXElement(xx); }
public Product GetProduct(int productID) { var data = downloadWebPage(getFullUrl("admin/products/" + productID + ".xml"), HttpMethod.GET); var x = XDocument.Parse(data).Root; var prod = new Product(); prod.LoadXElement(x); return prod; }