Try our conversational search powered by Generative AI!

Loading...
ARCHIVED This content is retired and no longer maintained. See the latest version here.

Recommended reading 

This topic describes how to render catalog content in Episerver Commerce.

Defining content types

To use a CMS-style rendering template for CatalogNode or CatalogEntry, define a new content type for each Metadata class of your CatalogNode or CatalogEntry. The following example shows a simple content type for a product variant.

using System;
using System.ComponentModel.DataAnnotations;
using EPiServer.Commerce.Catalog.ContentTypes;
using EPiServer.Commerce.Catalog.DataAnnotations;
using EPiServer.Core;
using EPiServer.DataAbstraction;
using EPiServer.DataAnnotations;
using EPiServer.SpecializedProperties;

namespace MyCommerceSite.Models.Catalog
{
    [CatalogContentType(GUID = "8d664789-3e96-409e-b418-baf807241f7c", MetaClassName = "My_Variation")]
    public class MyVariation : VariationContent
    {

    }
}

For information about defining content types, see Catalog content.

Defining rendering templates

You can display Commerce catalog content on your website by creating a rendering template (MVC/WebForms) in the same way you would for CMS content. The following example shows a simple controller for a product variant.

using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using EPiServer;
using EPiServer.Core;
using EPiServer.Framework.DataAnnotations;
using EPiServer.Web.Mvc;
using MyCommerceSite.Models.Catalog;

namespace MyCommerceSite.Controllers
{
    public class MyVariationController : ContentController<MyVariation>
    {
        public ActionResult Index(MyVariation currentContent)
        {
            return View(currentContent);
        }
    }

}

For the currentPage and currentContent properties, because the catalog is routed as a partial route to the CMS route, the currentPage gives you the PageData that the route is registered under. Default for that is the start page of the site. However, for Commerce content, currentContent is the requested catalog content.

For information about templating, see Rendering in the CMS Developer Guide.

Registering new routing

To use a new renderer template, you need to register the catalog content routes. The recommended way is to do it is in an EPiServer.Framework.IInitializableModule using the CatalogRouteHelper. See  Routing for information.

Do you find this information helpful? Please log in to provide feedback.

Last updated: Oct 12, 2015

Recommended reading