Share Around this time last year, we received the first version of the much anticipated Sitecore Commerce based on the new architecture. However, this new version still relied on the old Commerce Server for some (crucial) functionality, such as the catalog and inventory. Two weeks ago, Sitecore released Sitecore Experience Commerce (SXC) 9 and there is no Commerce Server in sight. 

We received a beta version a couple of weeks after Sitecore Experience Commerce was announced at last year’s Sitecore Symposium. This first look is based on that version.
 
If you’re completely new to SXC, a little diagram might help you understand how it relates to Sitecore Experience Platform (i.e. the CMS).

How Sitecore Experience Commerce 9 relates to Sitecore CMS
                 
Sitecore Commerce is not integrated in Sitecore but has its own (headless) server application. It’s completely controlled by REST calls and uses OData. Sitecore CMS connects to Sitecore Commerce through Sitecore Commerce Connect.
 

Some assembly required

SXC is not a product that you install on a server and that’s it. You don’t even get something that’s out-of-the-box installable. Instead, what you get is source code in the form of a Visual Studio Solution and instructions to build your own engine.
 
When you have built the solution, a bunch of packages will be retrieved from Sitecore’s Nuget server. These packages contain plugins, which are like Lego blocks: they contain a specific piece of online shop functionality and you stack them to create your commerce engine. For instance, there is a plugin that contains catalog functionality and another that contains inventory functionality.
 
Based on your business requirements, you decide which plugins to include in your engine. You can use the out-of-the-box plugins supplied by Sitecore, create your own or employ third-party plugins.
 
With out-of-the-box plugins, you receive a default implementation that contains everything to run the reference storefront and is easy to extend.
 

Head not included

The Sitecore Commerce Engine you build is (like an engine) completely headless, meaning it doesn’t contain any user interface. It’s just a bunch of micro-services that you can talk to using an OData-based REST API.
 
Sitecore Experience Platform 9 is one of the heads that can talk to Sitecore Commerce using Sitecore Commerce Connect, but, being headless, it also allows you to easily integrate other systems, such as your ERP, PIM or CRM system.
 

Well actually, there is a head...

Included with SXC is a new version of SXA Commerce components. Sitecore Experience Accelerator (SXA) is a set of reusable and extensible components, layouts and processes to accelerate website development. The SXA Commerce components add a set of elements to the SXA toolbox specifically related to online shop creation.
 
SXA contains a sample storefront implementation that can provide quick access to a sample online shop, which can serve as a reference for your own implementations.
 
The SXA Commerce components are a nice starting point. If you require more, however, you will need to look at our Mercury E-commerce accelerator. We’re currently getting it ready for SXC 9 and it should be available in the next few months.
 

So, what’s new?

Although SXC 9 contains all the functionality one would expect from an online shop, you will find some new functionality if coming from a Sitecore Commerce Server environment:
 
  • Reviews
  • Return Management Authorization (RMA)
  • Tiered pricing
  • Snapshot based pricing
  • Journaling
  • Back to business
When you install SC9, your Sitecore Experience Platform dashboard will have a new icon, Commerce Business Tools. These tools are among the first to use with the new SPEAK 3 interface. Currently a separate website from Sitecore, Commerce Business Tools will probably be integrated once Sitecore has moved to SPEAK 3.
 
What’s really noticeable is that Commerce Business Tools is much faster than the previous version based on SPEAK 2.
 
Out of the box, there are five dashboards:
 
  • Customer
  • Inventory
  • Orders
  • Merchandising
  • Relationship Definitions
  • Promotions
  • Pricing
 
As with everything in SXC, the business tools are extensible. You can add new dashboards with your own tools, but you can also extend the existing dashboards and out-of-the-box functionality.


There is a guard at the door

Sitecore Commerce has a micro-service architecture, which basically means you are exposing an API on a webserver. Anyone that has access to that webserver can call your API. Of course, you might not want everybody to have access, so you need to secure it.
 
Security in the 8.2.1 version was based on IIS authentication, which is fine but quite basic. The 9.0 version now supports client certificates as well as bearer token authentication.
 
Commerce Connect and systems going through Commerce Connect, like SXA, use client certificate authentication. When other systems use token authentication, you must first retrieve a token from the new Sitecore Identity Server and then use it in calls to Sitecore Commerce engine.
 

And now for the technical stuff…

Are you a developer? Then the architecture of SXC is something to be happy about, especially if you are familiar with the previous Commerce Server product. The main point is that every plugin you develop uses exactly the same stuff as out-of-the-box Sitecore, so there are no magical components that only Sitecore has access to: if Sitecore developers can do it, you can do it.
 
Let’s start at the bottom. Sitecore Commerce engine is based on ASP.NET Core. This means that it is essentially multi-platform and can run on every platform that ASP.NET Core runs on. Is this a big deal? Well, not yet, but it is nice to have.
 
As the engine is based on micro-services, it runs out-of-process. You can therefore run it on the same server your website is running on, but it runs equally well on another server and is good for scalability. And, because of the plugin architecture, you can run a catalog service on one server and your inventory service on another. Again, good for scalability.
 
To test the Commerce engine, you can use the Postman examples supplied, which can be easily extended to include your own tests. Postman is a tool to test REST APIs and is available for free. You can also automate your tests: Sitecore includes a console application with tests for the complete API.
 
Developing with Sitecore Commerce is still a little complex at this point. Although documentation is rather basic at times, it is still being worked on. DotPeek will be your friend when creating your own plugins.


There will be difficulties

Given all the services, installing SXC can be quite complex, especially in a production environment. The first time, you will most probably run into issues with the dependencies (not least with the numerous certificates you’ll need to configure). Once you are familiar with the architecture though, things will be easier.
 

Upgrade

As so much has changed (this basically is a new product), there is no upgrade path from Commerce Server. But migration can be done if you are using Sitecore Commerce Connect. Because Sitecore Commerce Connect (SCC) has not changed (too much), Sitecore has already taken care of translating from SCC to Commerce Engine. Note that you will of course have to redo any customization you might have implemented with Commerce Server pipelines.
 
SCC also does not yet support some of the new features in Commerce Engine, such as product reviews and order returns. This will probably come in a later version
 

Conclusion

Sitecore Commerce 9 is a wonderful addition to the Sitecore product line. It offers a state-of-the-art headless commerce engine that is easy to expand and extend. As it’s a brand new product, there will be a learning-curve. But I’m sure Sitecore and the Sitecore community will assist should you have any questions or encounter difficulties.
 

Related articles

Articles related to this topic

Share a Tweet
Sitecore Commerce MVP @erwinwerkman gives his first impressions on #Sitecore Experience Commerce 9 http://bit.ly/2HC0J5D #SITECORE # COMMERCE9 # SITECORECOMMERCE  Share
or
Shortly after the release of #Sitecore Experience Commerce 9, @erwinwerkman gives a first insight on what's new with Commerce 9 http://bit.ly/2HC0J5D #SITECORE # COMMERCE9 # SITECORECOMMERCE  Share