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

Add ecommerce functionality

Implements an Optimizely Customized Commerce solution, version 13.

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

Create a catalog and displaying 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.
  • Create catalog entries based on content types you created and verify the product list display in the Catalog view in Customized Commerce.
  • Add or modify properties for the catalog content types, according to your requirements if needed.

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 which 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. A set of built-in providers is available for Customized Commerce. You can also download payment providers. In many cases, you 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 e-commerce solutions. Tasks here may involve definition of a pricing structure for sellable catalog entries, and targeting of pricing towards specific markets or customer groups, as well as 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 product-specific search, customization of the built-in Lucene-based search, as well as configuration of 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 e-commerce process, and the order fulfillment process can be set up in different ways. 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 a number of built-in promotions, but you can also create your own promotions accessing the promotions 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, as well as defining user groups and permissions for 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 a seamless integration between Customized Commerce and external systems such as Optimizely Product Information Management (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 export and import of data and content to staging environments, on-premise or in a cloud-based setting.

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