How To Get a Catalogue in Episerver Commerce

If you need to get the root catalogue node in Episerver commerce, you can use the ReferenceConverter API to get a link to the catalogues defined in your project, as follow.

var referenceConverter = ServiceLocator.Current.GetInstance<ReferenceConverter>();
var repository = ServiceLocator.Current.GetInstance<IContentRepository>();
var catalogues= repository.GetChildren<CatalogContent>(referenceConverter.GetRootLink());
You can then filter the catalogue you want via the Name property, e.g.
var referenceConverter = ServiceLocator.Current.GetInstance<ReferenceConverter>();
var rootLink = referenceConverter.GetRootLink();

var repository = ServiceLocator.Current.GetInstance<IContentRepository>();
var catalogRef = repository .GetChildren<CatalogContent>(rootLink)
                .FirstOrDefault(x => x.Name == "CatalogName");


Today's guide was very short and simple. We've briefly covered the Episerver commerce Api calls you will need to get your product catalogue from Episerver.

Jon D Jones

Software Architect, Programmer and Technologist Jon Jones is founder and CEO of London-based tech firm Digital Prompt. He has been working in the field for nearly a decade, specializing in new technologies and technical solution research in the web business. A passionate blogger by heart , speaker & consultant from England.. always on the hunt for the next challenge

Back to top
var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-35662136-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + ''; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();