public TemplateItem BuildCategoryTemplateFromDefinition(IDefinition definition) { var builder = new TemplateBuilder(); var userService = ObjectFactory.Instance.Resolve <IUserService>(); var cultureInfo = userService.GetCurrentUserCulture(); var resourceManager = ObjectFactory.Instance.Resolve <IResourceManager>(); var sectionName = resourceManager.GetLocalizedText(cultureInfo, "Tabs", "DynamicFields"); var specificDefinition = definition as Definition; ID templateId = definition.SitecoreTemplateId(); builder.CreateTemplate(definition.Name, templateId, definition.Name, definition.GetBaseTemplateIds()); _definitionIdToTemplateIdMap[specificDefinition.DefinitionId] = templateId; var combinedFields = new List <IDefinitionField>(); combinedFields.AddRange(((Definition)definition).DefinitionFields); if (combinedFields.Any()) { ID sectionId = definition.SitecoreDynamicFieldsSectionId(templateId); builder.CreateSection(sectionName, sectionId, 150); int sortOrder = 10; foreach (var definitionField in combinedFields.Where(x => x.RenderInEditor)) { CreateDynamicItemField(builder, definitionField, sortOrder, sectionId); sortOrder += 10; } } var template = builder.Build(); template.AddToFieldList(FieldIDs.Icon, SitecoreConstants.UCommerceIconFolder + "/ui/map.png"); return(template); }