## Define content types
The rendering of products and other catalog information on the front-end site can be based on the Optimizely [content model.](🔗) This provides out-of-the box functionality for Optimizely Customized Commerce content types such as products and variants, implementing the IContent interface. The following example shows a simple content type for a product variant.
For information about defining content types, see [Catalog content](🔗).
## Define rendering templates
You can display Commerce catalog content on your website by creating a rendering template (MVC) in the same way you would for CMS content (see [Rendering](🔗)). The following example shows a simple controller for a product variant.
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](🔗).
## Register routing
To use a 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](🔗).