HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket

Add ecommerce functionality

Describes implementing an Optimizely Customized Commerce solution.

Your solution's requirements determine the following steps. As a prerequisite you should have a working empty website installed.

Create a catalog and display catalog entries

Before you create a catalog, consider how it will it be managed and updated. Which marketing, promotion, and merchandising requirements must the catalog support?

  • Keep the catalog structure and fields as simple as possible. Start by creating a catalog with some entries, and display them in a product listing on the website.
  • Create model classes for categories (nodes), products and variants then add corresponding page templates.
  • Create the catalog structure based on names used in your content model.
  • In the Catalog view in Customized Commerce, create catalog entries based on content types you created, and verify the product list display.
  • If needed, add or modify properties for the catalog content types, according to your requirements.

Various methods for importing catalog data from other Optimizely Commerce sites or external systems are described in the Commerce Developer.

Create a shopping cart

Create a simple cart with functionality for adding and viewing items, and make it display on the website. This will be connected to the steps of the checkout procedure, but typically you need features like Add to cart, View cart and Continue shopping with related functionality.

Create the checkout

The checkout typically involves these activities: collecting address information, selecting and adding a shipment method, associating the order's line items with one or more shipments, placing the order, and updating the cart total. There are many ways to set up a checkout procedure. You can either have a multiple-step procedure based on several pages, or a one-page checkout with address, payment options, and order preview all in one.

A typical checkout can be divided into these steps:

  • A shipping address page where the billing/shipping address information is provided.
  • A shipping method page where shipping options are selected.
  • A payment method page where payment options are selected.
  • A confirmation page with an order summary.

The checkout page will be connected to the corresponding workflows, and payment and shipping providers (see below).

Shipping methods

Shipping and payments are similar in that they are built-up of methods, providers, and gateways. Customized Commerce includes two shipping options/providers that are used by two shipping methods. You can also create your own shipping providers matching specific requirements. You can, for instance, create your own jurisdiction rules and groups for national/international deliveries or create weight jurisdictions for price calculations during checkout.

You can also add web services for obtaining shipping rates. Shipping methods are created in Commerce Manager. Manage your shipping provider in a separate project, which you then add to the front-end site solution.


Payment methods use a payment provider to process payments. Customized Commerce has a set of built-in providers. You can also download payment providers. You often want to create and customize payment providers for your solution. Creating a credit card payment provider can be quite complex, and these are often integrated with external systems, such as PayPal, credit card brands, or banking systems.

The setup usually involves communication with external systems for checking and verifying orders and payments. In many cases, an external ERP system is involved. Payment methods are created in Commerce Manager. Manage your payment providers in a separate project, which you then add to the front-end site solution.


Pricing is a central area in most ecommerce solutions. Tasks here may involve the definition of a pricing structure for sellable catalog entries and targeting of pricing towards specific markets or customer groups, and integration with external systems. You can use the built-in pricing provider and pricing logic or modify these for your own purposes.


Search is another key feature for e-commerce sites. Tasks in this area involve the creation of a product-specific search, customizing the built-in Lucene-based search, and configuring search indexing, facets, and filtering.

You can, for example, create catalog-specific filtering by defining the type of entries to include in the search. You can also extend the search by replacing the search provider with Optimizely Search & Navigation to add more powerful search features.

Warehouses and inventories

Warehouses and inventories are examples of components for which information is typically retrieved from external systems and displayed for related items in Customized Commerce. Tasks in this area may involve creating a list of warehouses, getting inventories per warehouse, and picking up catalog entries from a warehouse, and adding them to a shopping cart. Customized Commerce has an IOC provider model for warehouses, a warehouse inventory listing, and the warehouse retrieval service.


Orders are related to many parts of the ecommerce process, and the order fulfillment process can be set up differently. Orders in Customized Commerce are based on built-in workflows and related activities, which can be used as they are or customized to suit specific business procedures. Orders can be extended, and you can model orders and line items on orders and add customized properties to orders.

Market and promote

Marketing in Customized Commerce includes campaigns and promotions. Customized Commerce includes several built-in promotions, but you can also create your own promotions by accessing the promotion engine.

Customers and authentication

Customer data is stored in the Customized Commerce database and managed from the Customers subsystem. Customers can be associated with addresses, organizations and customer groups. A contact in Customized Commerce can be of any user type in the system - a shopping website visitor, a marketer, a merchandiser, or a system administrator.

Tasks in this area involve, for instance, retrieving customer addresses for the checkout and creating customer group-specific pricing, and defining user groups and permissions for Customized Commerce users.

Integrate with external systems

The Optimizely Service API is a service layer available for system integrators to update and retrieve information from Optimizely, ensuring seamless integration between Customized Commerce and external systems such as PIM, DAM and ERP systems.


Deployment involves the publishing of a new or updated website and its content to a testing or live production environment. Deployment typically includes exporting and importing data and content to staging environments, on-premises or cloud-based.

See DXP cloud services how to work with development and deployment using the Optimizely Digital Experience Platform cloud services.