Sitecore Experience Commerce (XC) introduction
Sitecore Experience Commerce (Sitecore XC), a member of our ecommerce platform shortlist, is a full-featured enterprise ecommerce platform provided as commercial software package by Sitecore, best-known for their well-regarded content management system (CMS). This article helps a technical audience to understand the product at a level deeper than is provided through the company's marketing material,
Sitecore XC Engines
Sitecore Experience Commerce runs as a set of engines, each one configured to take on a particular role. The roles are:- Authoring (provides the business tools that business users operate to manage and maintain the website), Shops (run the customer-facing website and all of the commerce functionality such as search and checkout) and Minion (used for asynchronous processing of background tasks).
Each engine is configured with policies and configuration variables to determine its behavior. For example the persistent data stores (database) behind each engine can be common or can be different, to allow for staging environments to be created separate from the live environment.
Sitecore XC Contents
To get started with Sitecore XC, developers need to setup their environment and to do so install one or more of the software development kits (SDKs) which together form the product:
- BizFX - the commerce business tools, an Angular application that is used by merchandisers to manage their data (found in the download as Sitecore.BizFX.SDK.[version])
- Engine - a Microsoft ASP.NET Core application which provides the core commerce capabilities which themselves are organized as a set of loosely-coupled microservices exposed as a set of Odata (Open Data Protocol) or REST APIs. The installation includes a sample Visual Studio solution that can be compiled and a Microsoft Visual Studio plugin to help developers create plugin projects, Postman scripts to be able to call and test any of the Sitecore Commerce Engine APIs (found in the download as Sitecore.Commerce.Engine.SDK.[version]) and complete documentation of the APIs in compiled HTML help file (CHM) format
In addition, Sitecore provides a number of example implementations and guides including:
- SXA Storefront (the default when installing Sitecore Experience Commerce and is a wholly out of the box experience). SXA stands for Sitecore Experience Accelerator
- Habitat Home Commerce (available via Github) which demonstrates how a commerce site can be customized and extended
- Sitecore Helix Documentation which provides a set of best practices for structuring and customizing a solution and how commerce fits in with the rest of the Sitecore product portfolio
Customization and Extension of Sitecore XC
Sitecore Experience Commerce provides a structured framework to enable customization of ecommerce features and extension of the solution that requires some discipline from developers to achieve the required results without preventing future upgrade of the core engines.
The commerce engine uses a plugin framework to enable customization of features. The SDK contains examples of customizations. In general these are created as new projects within the Visual Studio solution.
The commerce engine also uses .NET Core dependency injection as its pipeline framework to enable extensibility. Code is created and then injected as a dependency into the XC engine, which configures the sequence in which code will be executed.
Customization of Sitecore XC business user tools
One feature of Sitecore XC that is somewhat unusual (although not unique) among ecommerce platforms, is the ability to customize and extend the business user tools (the BizFX). This is achieved through the use of the BizFX SDK and requires the use of NodeJS and Angular.
Sitecore XC Deployment
Given a Sitecore XC application is a Visual Studio solution, it can deployed using normal publish processes, including deploying to an Azure Web App.