public static void CreateProductAttribute(string title, List<string> productTypeTitles, bool isActive)
{
CatalogManager catalogManager = CatalogManager.GetManager();
ProductAttribute productAttribute = catalogManager.CreateProductAttribute();
productAttribute.Title = title;
productAttribute.Name = Regex.Replace(title.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");
productAttribute.IsActive = isActive;
if (productTypeTitles == null || productTypeTitles.Count == 0)
{
productAttribute.AppliedTo = "0"; // "0" denotes attribute is linked to ALL product types
}
else
{
productAttribute.AppliedTo = "1"; // "1" denotes attribute is linked to one or more specific product types
foreach (string productTypeTitle in productTypeTitles)
{
ProductType productType = catalogManager.GetProductTypes().Where(t => t.Title == productTypeTitle).FirstOrDefault();
if (productType != null)
{
ProductAttributeLink productAttributeLink = new ProductAttributeLink();
productAttributeLink.Id = Guid.NewGuid();
productAttributeLink.ProductTypeId = productType.Id;
productAttributeLink.ProductAttribute = productAttribute;
productAttribute.ProductTypes.Add(productAttributeLink);
}
}
}
catalogManager.SaveChanges();
}