Sitecore commerce powered by Microsoft Dynamics (SCpbMD) is an extremely flexible system and because of this, it is important to understand how the product is structured at a high-level. Once this is understood, understanding more detailed topics such as how the standard features are implemented and what is achievable with or without customization.

High-level architecture

The Sitecore commerce power by Microsoft Dynamics solution is comprised of 3 high-level components :

Dynamics AX 2012 or Dynamics 365 for operations (AX 7)

This is the backend of the system, the Dynamics AX retail functionality is leveraged.

The solution supports Dynamics AX 2012 R3, the CU’s supported are dependent on the version of the product you install. The latest version of the product supports Dynamics 365 for operations a.k.a. AX 7.

SCpbMD front end never communicates with Dynamics AX directly, all communication is done via the Commerce runtime (CRT) for AX 2012 and the Retail Server for AX 7. Therefore, almost all the operations performed are executed against the channel database with the exception of one or two that go all the way back to the AOS via the real-time service. This, however, is completely governed by the CRT or Retail server. The Sitecore components of the solution have no control over what is done in real time (AOS call) and what is done against the channel database.

All business logic resides in Dynamics AX, including pricing, inventory, and the shopping cart by default. This, of course, is completely customizable depending on your needs.

Sitecore commerce server

This is the middle tier of the system.

Commerce server is used as an “Edge cache” and in simple terms is where the base products and catalog information reside and from where the front end reads base product information before it is cached.

A Dynamics AX standard price and adjusted price are also stored in Commerce server but the out of the box reference store front does not use them, the reference site can be easily changed via configuration or code to alter how prices are retrieved, a more in-depth look at the options available for pricing will follow in another post.

Product information is visible from within the standard Sitecore content editor but the information is not actually stored there, virtual Sitecore items are used. When product information is read from within Sitecore, whether from within the content editor or via Sitecore code accessing Sitecore items, a pass through is done and the information is actually retrieved from Commerce server. Of course, there are many layers of caching involved with this process. More details can be gained by debugging the out of the box reference store front.

Sitecore web content management

This is the front end of the system and is good ‘ol Sitecore WCM that everyone knows and loves.

A “reference store front” Sitecore site is provided as part of the product as is intended to be a starting point to build your own e-commerce store. It is fully functional and demonstrates all the standard functionality available without customization to the product.

The reference store front was modeled on the standard Dynamics AX SharePoint e-commerce storefront and has all the same functionality but is infinitely more scalable and flexible as it harnesses all the capabilities of the Sitecore platform.

The standard reference storefront retrieves product and catalog information from commerce server and goes to the CRT (AX 2012) or Retail server (AX 7) for pricing, inventory levels, and shopping cart functionality.