Для тех, кто желает создать свой магазин и начитать файлы в формате YML в ASP.NET, мы пишем код, для начитывания YML файлов на C#
using System.Collections.ObjectModel;
using System.Xml.Serialization;
[Serializable]
public class yml_catalog
{
private string DateValue=DateTime.Now.ToString(“yyyy-MM-dd HH:mm”);
[XmlAttribute(AttributeName = "date")]
public string Date
{
get { return DateValue; }
set { DateValue = value; }
}
private ShopClass ShopValue;
[XmlElement (ElementName="shop")]
public ShopClass Shop
{
get { return ShopValue; }
set { ShopValue = value; }
}
public yml_catalog()
{
}
}
[Serializable]
public class ShopClass
{
private string NameValue;
[XmlElement(ElementName="name",Order=1)]
public string Name
{
get { return NameValue; }
set { NameValue = value; }
}
private string CompanyValue;
[XmlElement(ElementName = "company",Order=2)]
public string Company
{
get { return CompanyValue; }
set { CompanyValue = value; }
}
private string UrlValue;
[XmlElement(ElementName = "url",Order=3)]
public string Url
{
get { return UrlValue; }
set { UrlValue = value; }
}
//private Collection<Currency> CurrencyValue;
[XmlArray(ElementName = "currencies",Order=4)]
[XmlArrayItem(ElementName = "currency")]
public Collection<Currency> Currency;
//{get { return CurrencyValue; }
//set { CurrencyValue = value; }
//}
private Collection<Category> CategoriesValue;
[XmlArray (ElementName="categories",Order=5)]
[XmlArrayItem(ElementName="category")]
public Collection<Category> Categories
{
get { return CategoriesValue; }
set { CategoriesValue = value; }
}
[XmlArray(ElementName="offers",Order=10)]
[XmlArrayItem(ElementName="offer")]
public Collection<Offer> offers;
public ShopClass(string name, string company)
{
Name = name; Company = company;
}
public ShopClass()
{
}
}
[Serializable]
[XmlRoot(ElementName="categories")]
public class Categories
{
Collection<Category> category;
public Categories()
{
}
}
[Serializable]
public class Currency
{
private string IdValue=”RRU”;
[XmlElement(ElementName = "id")]
public string Id
{
get { return IdValue; }
set { IdValue = value; }
}
private int RateValue=31;
[XmlElement(ElementName = "rate")]
public int Rate
{
get { return RateValue; }
set { RateValue = value; }
}
public Currency()
{
}
}
[XmlRoot(ElementName = "category")]
public class Category
{
private int IdValue=-100;
[XmlAttribute(AttributeName = "id")]
public int Id
{
get { return IdValue; }
set { IdValue = value; }
}
private int ParentIdValue;
[XmlAttribute(AttributeName = "parentId")]
public int ParentId
{
get { return ParentIdValue; }
set { ParentIdValue = value; }
}
private string NameValue;
[XmlText]
public string Name
{
get { return NameValue; }
set { NameValue = value; }
}
public Category()
{
}
}
[XmlRoot(ElementName = "offer")]
public class Offer
{
private long IDValue;
[XmlAttribute(AttributeName="id")]
public long ID
{
get { return IDValue; }
set { IDValue = value; }
}
private bool AvailableValue;
[XmlAttribute(AttributeName = "available")]
public bool Available
{
get { return AvailableValue; }
set { AvailableValue = value; }
}
private string UrlValue;
[XmlElement(ElementName="url")]
public string Url
{
get { return UrlValue; }
set { UrlValue = value; }
}
private double PriceValue = 2.07;
[XmlElement(ElementName = "price")]
public double Price
{
get { return PriceValue; }
set { PriceValue = value; }
}
private string CurrencyValue;
[XmlElement(ElementName = "currencyId")]
public string Currency
{
get { return CurrencyValue; }
set { CurrencyValue = value; }
}
private string PictureValue;
[XmlElement(ElementName = "picture")]
public string Picture
{
get { return PictureValue; }
set { PictureValue = value; }
}
private Collection<long> CategoryIDValue;
[XmlElement(ElementName = "categoryId")]
public Collection<long> CategoryID
{
get { return CategoryIDValue; }
set { CategoryIDValue = value; }
}
private bool DeliveryValue;
[XmlElement(ElementName = "delivery")]
public bool Delivery
{
get { return DeliveryValue; }
set { DeliveryValue = value; }
}
private Collection<string> OrderingTimeValue;
[XmlArray (ElementName="orderingTime")]
[XmlArrayItem(ElementName="ordering")]
public Collection<string> OrderingTime
{
get { return OrderingTimeValue; }
set { OrderingTimeValue = value; }
}
private string NameValue;
[XmlElement(ElementName = "name")]
public string Name
{
get { return NameValue; }
set { NameValue = value; }
}
private string VendorValue;
[XmlElement(ElementName = "vendor")]
public string Vendor
{
get { return VendorValue; }
set { VendorValue = value; }
}
private string DescriptionValue;
[XmlElement(ElementName = "description")]
public string Description
{
get { return DescriptionValue; }
set { DescriptionValue = value; }
}
public Offer(string descr, int catId)
{
this.Description = descr;
this.CategoryID = new Collection<long>();
this.CategoryID.Add(catId);
OrderingTime = new Collection<string>();
}
public Offer()
{
}
}
Что такое YML
YML – формат представления информации о магазине, размещаемых товарах и ставках, созданный для Яндекс.Маркета. В России YML является де-факто стандартом для таких данных. Большинство российских разработчиков интернет-магазинов предлагает в комплекте стандартной поставки модуль для работы с Маркетом. Если в вашем магазине не предусмотрен такой модуль, то следует обратиться к разработчику. Обычно создание и настройка передачи актуальных данных в формате YML для интернет-магазина занимает один или два дня работы программиста.