November Happy Hour will be moved to Thursday December 5th.
November Happy Hour will be moved to Thursday December 5th.
Hi,
You could use IContentRepository, like with any other type of content. Something like this (untested):
var repository = ServiceLocator.Current.GetInstance<IContentRepository>(); var referenceConverter = ServiceLocator.Current.GetInstance<ReferenceConverter>(); var root = referenceConverter.GetRootLink(); var catalog = repository.GetDefault<CatalogContent>(root); catalog.Name = "My catalog"; repository.Save(catalog, SaveAction.Publish, AccessLevel.NoAccess);
Hi Johan
I had presumed that would be the case as I am using the above to create category nodes and product entries. However when I run th above code I get the following error
No implementation of ICatalogContentCommitter available to handle content of type CatalogContentProxy
at EPiServer.Commerce.Catalog.Provider.CatalogContentCommitterHandler.GetCommitter(CatalogContentBase content)
at EPiServer.Commerce.Catalog.Provider.CatalogContentCommitterHandler.Save(CatalogContentBase content)
at EPiServer.Commerce.Catalog.Provider.CatalogContentDraftStore.<>c__DisplayClass2e.<CommitChanges>b__2d()
at EPiServer.Commerce.Catalog.Provider.CatalogEventHandler.ExecuteWithLocalEventsDiabled(Action action)
at EPiServer.Commerce.Catalog.Provider.CatalogContentDraftStore.CommitChanges(CatalogContentBase content)
at EPiServer.Commerce.Catalog.Provider.CatalogContentDraftStore.SaveInternal(CatalogContentBase content, SaveAction saveAction, String userName, Boolean forceCurrentVersion, Boolean newVersionRequired, Boolean delayedPublish)
at EPiServer.Commerce.Catalog.Provider.CatalogContentDraftStore.Save(IContent content, SaveAction saveAction)
at EPiServer.Commerce.Catalog.Provider.CatalogContentProvider.Save(IContent content, SaveAction action)
at EPiServer.DataFactory.Save(IContent content, SaveAction action, AccessLevel access)
at EPiServer.Commerce.Sample.Templates.Sample.Pages.ShoppingOverview.Page_Load(Object sender, EventArgs e) in c:\EPiServer7.5\EPiServerSiteMVC7.5DemoInstallerComm\wwwroot\Templates\Sample\Pages\ShoppingOverview.aspx.cs:line 116
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Kind Regards
Sandeep
Hmmm I don't know about the latest version of Commerce, but you had to create catalogs within Commerce Manager before. I thought that was fixed in later versions though.
Hi All
Found a solution. Aparently this was not supported in version 7.5. In Episerver Version 7.9 and above you can do it using the following. Please note the default properties below are mandatory -
var repository = ServiceLocator.Current.GetInstance<IContentRepository>(); var referenceConverter = ServiceLocator.Current.GetInstance<Mediachase.Commerce.Catalog.ReferenceConverter>(); var root = referenceConverter.GetRootLink(); var catalog = repository.GetDefault<CatalogContent>(root); catalog.Name = "My catalog2"; catalog.DefaultCurrency = "USD"; catalog.DefaultLanguage = "en"; catalog.WeightBase = "Pounds"; repository.Save(catalog, SaveAction.Publish, EPiServer.Security.AccessLevel.NoAccess);
Kind Regards
Sandeep
Hi
Could someone please help me out on how to create a new catalog in code for EPiserver Commerce.
ICatalogContentCommitter ??
Kind Regards
Sandeep