public GetVariantSkuFromSelectionResponse(UCommerce.EntitiesV2.Product parentProduct, IDictionary <string, string> properties) { UCommerce.EntitiesV2.Product variant = null; if (parentProduct.Variants.Any() && properties.Any()) // If there are variant values we'll need to find the selected variant { variant = parentProduct.Variants.FirstOrDefault(v => v.ProductProperties.Where(pp => pp.ProductDefinitionField.DisplayOnSite && pp.ProductDefinitionField.IsVariantProperty && !pp.ProductDefinitionField.Deleted && pp.Value != null && pp.Value != String.Empty).All(p => properties.Any(kv => kv.Key.Equals(p.ProductDefinitionField.Name, StringComparison.InvariantCultureIgnoreCase) && kv.Value.Equals(p.Value, StringComparison.InvariantCultureIgnoreCase)))); } else if (!parentProduct.Variants.Any()) // Only use the current product where there are no variants { variant = parentProduct; } if (variant == null) { return; } Variant = new ProductVariation { Sku = variant.Sku, VariantSku = variant.VariantSku, ProductName = variant.Name, Properties = variant.ProductProperties.Select(prop => new ProductProperty { Id = prop.Id, Name = prop.ProductDefinitionField.Name, Value = prop.Value }) }; }
public ProductViewModel MapProduct(UCommerce.EntitiesV2.Product product) { var productViewModel = new ProductViewModel() { }; return(productViewModel); }
public GetProductVariationsResponse(UCommerce.EntitiesV2.Product parentProduct) { Variations = parentProduct.Variants.Select(variant => new ProductVariation { Sku = variant.Sku, VariantSku = variant.VariantSku, ProductName = variant.Name, Properties = variant.ProductProperties.Select(prop => new ProductProperty() { Id = prop.Id, Name = prop.ProductDefinitionField.Name, Value = prop.Value }) }).ToList(); }
private Document IndexProduct(UCommerce.EntitiesV2.Product uProduct, CultureInfo cInfo, string baseUrl) { var prodDescr = uProduct.GetDescription(cInfo.TwoLetterISOLanguageName); var fields = new List <IField>(); var identityFld = new Field(); identityFld.Name = Telerik.Sitefinity.Publishing.PublishingConstants.FieldIdentifier; identityFld.Value = uProduct.ProductId.ToString() + "_" + cInfo.TwoLetterISOLanguageName; fields.Add(identityFld); var myTitleField = new Field(); myTitleField.Name = Telerik.Sitefinity.Publishing.PublishingConstants.FieldTitle; myTitleField.Value = prodDescr.DisplayName; fields.Add(myTitleField); var contentField = new Field(); contentField.Name = Telerik.Sitefinity.Publishing.PublishingConstants.FieldContent; contentField.Value = HttpUtility.HtmlDecode(Regex.Replace(prodDescr.LongDescription, "<(.|\n)*?>", "")); fields.Add(contentField); var lastModifiedField = new Field(); lastModifiedField.Name = Telerik.Sitefinity.Publishing.PublishingConstants.FieldLastModified; lastModifiedField.Value = uProduct.ModifiedOn; fields.Add(lastModifiedField); string category = null; var cat = uProduct.GetCategories().FirstOrDefault(); if (cat != null) { category = cat.DisplayName(); } else { category = SiteContext.Current.CatalogContext.CurrentCategory.DisplayName(); } fields.Add(new Telerik.Sitefinity.Services.Search.Publishing.Field() { Name = Telerik.Sitefinity.Publishing.PublishingConstants.FieldLink, Value = baseUrl + "/" + category + "/" + uProduct.Id }); fields.Add(new Telerik.Sitefinity.Services.Search.Publishing.Field() { Name = Telerik.Sitefinity.Publishing.PublishingConstants.LanguageField, Value = Telerik.Sitefinity.Model.Localization.LocalizationHelper.GetLanguageKey(cInfo) }); fields.Add(new Telerik.Sitefinity.Services.Search.Publishing.Field() { Name = Telerik.Sitefinity.Publishing.PublishingConstants.FieldContentType, Value = typeof(UCommerce.EntitiesV2.Product).FullName }); var doc = new Document(fields, Telerik.Sitefinity.Publishing.PublishingConstants.FieldIdentifier); return(doc); }