Sitecore Experience Commerce(SXC) provides a stupendous solution to the e-commerce world which can be customized to fill in the requirements for
- B2B: Businesses to business
- B2C: Business to end customer.
This post assumes the readers are across commerce concepts in general e.g. business entities, catalogs, carts, orders, checkout process, payments, inventory management, order fulfilment etc.
In this post, I will share a holistic overview of SXC architecture. Who should read this? Sitecore developers who are working or potentially going to work on SXC, architects who are looking into how SXC functions. Since SXC is part of the Sitecore platform, the basic understanding of Sitecore is required. In the future posts, I will be describing different parts of SXC in detail.
SXC Architecture:
Sitecore XC is comprised of the following components.
- Sitecore Experience Platform aka XP in Sitecore world.
- Sitecore Experience Accelerator Storefront(SXA)
- Sitecore Commerce Engine
- Connect layer between storefront and Commerce Engine
- Business Tool
- Identity Server
Basic understanding of these components would give us a clear picture of how they work altogether.
Sitecore XP: Sitecore XP is a Sitecore specific component and SXC leverages its existence. XP consists of two main components called Experience Management(xM) and Experience Analytics(xAnalytics). xM provides the basic functionality of managing the content(CMS) while xAnalytics provides insights into how the content is performing. e.g. a page in Sitecore website is built using xM while xAnalytics will provide the analysis on visits and goals that are triggered by that page.
SXA Storefront: Storefront is a shop where users can explore and buy different products while SXA is a tool which is used to create these storefronts. SXA has different built-in components which can be dragged and dropped on the web pages to build a storefront quickly e.g. search product is an out of the box component in SXA which can be used to create a product search page.
Sitecore Commerce Engine: Commerce engine is an extensible framework hosting core commerce services e.g. cart, catalog, order, promotion, pricing, payment, inventory, rules, tax, profiles etc. Developers use services to complete certain commerce processes e.g. during the purchase of a product if we have to make sure, the product is available in inventory, we will be using inventory service in commerce engine to check the inventory.
Connect Layer: Connect layer used to integrate commerce engine to the storefront(public website). This layer is used to call Sitecore Commerce Engine services from the storefront. It consists of two components, Connect Core and Engine Connect. Connect core has public APIs which can be called from Storefront while Engine Connect is an underlying platform layer which connects Core to commerce engine. Engine Connect is responsible for translating all the requests for commerce engine.
Business Tools: Business tools are used to manage commerce-related data e.g. managing different products and their prices. These tools are used by different commerce personas, a merchandiser would use it to manage the products and the prices while a marketer can use it to promote products. These tools include
- Merchandising: Used for products and catalogs related operations
- Inventory: Used to manage the inventory of a product
- Pricing: Used to manage prices
- Promotions: Used to manage promotions
- Orders: Used to manage received orders.
- Customers: Used to see customers data.
- Relationship Definitions: Defining relationship between different entities
Identity Server: Every call to Sitecore commerce engine has to be authenticated. This authentication is provided by the identity server. Before we send HTTP request to a commerce engine service, we have to get an authentication token and pass this token in the header of the request.