Goodbye Old Friend: A Farewell to Commerce Server …
… and a big warm welcome to the new Sitecore Experience Commerce – the release we’ve all been waiting for!
Well actually it’s not released just yet. The final release is expected somewhere in January 2018 along with a brand new Storefront implementation, based on the latest edition of Sitecore Experience Accelerator (SXA).
In this blog post I will share some of my personal experience in working with the current version, Sitecore Commerce 8.2.1, including my experience in working with the soon to be discontinued, Commerce Server platform.
Last month, I was in Las Vegas, attending the Sitecore Symposium 2017 conference, where I was accepted as a Speaker to present “Hands-on with Sitecore Commerce – What I’ve learned”. A presentation on how we go by implementing commerce projects on top of Sitecore, with focus on some of the business requirements we typically encounter, e.g. to utilize existing data like pricing, discounts, product data, inventory and such from systems like ERP, PIM or other existing back-end systems. The presentation also covered the current version of Sitecore Commerce 8.2.1 including Commerce Server platform.
My experience with Commerce Server began pretty much the first day I started working at Vertica, which was back in May 2007 – so 10 years ago. Since then I have been part of at least seven different Commerce Server implementations from start to end, helped out as an external architect and consultant on different other implementations. Spanning 5 years, between 2010 and 2015, I was instructor on more than 15 training courses, primarily in Denmark, USA and England/London, for developers, based on my own curriculum and materials (www.commerceservertraining.com). My competitive edge was to bring in all the real-world experiences that I had, from working on actual customer projects with the Commerce Server platform. I brought as much as possible of that experience into the classroom training, focusing on all the do’s and don’ts, architecture and integrations and good software practices in general.
In overall, not a lot of changes never happened on the core system of Commerce Server since 2007. Instead, new features and functionality was more or less always about adding new capabilities on top and/or around of the existing core system of Commerce Server. Examples of that was the introduction of a new programming model and abstraction layer on top of the existing APIs and capabilities (read more about the Foundation API here https://blog.vertica.dk/2015/11/05/sitecore-commerce-server-what-happened-to-the-foundation-api/), but also the extensive integration to SharePoint to offer a complete out-of-the-box and configurable web-site solution – the Contemporary Site. While we found the new Foundation API usable, by providing new deployment and development models, this also meant added complexity to our solutions and additional skillsets to learn and master for many of the developers on the team. For the SharePoint part, we had already had our fair share of experience implementing public facing web sites working with that platform, to recommend better and simpler alternatives. The Core System was falling behind in terms of capabilities and outdated in terms of technology. Things started changing though in 2013/2014 when Sitecore acquired Commerce Server and initiated the development of the new abstraction layer, Sitecore Commerce Connect, which also included an implementing on top of Commerce Server and Sitecore 7. A couple of versions came out, following the Sitecore 8 release, and the Core System was finally getting some attention, including .NET Framework upgrades and obsoleting some really dark and old corners of the platform, like the Data Warehouse functionality.
Somewhat later, in the current 8.2.1 version of Sitecore Commerce, the Commerce Engine was introduced, which is a complete rewrite of all Commerce capabilities, based on a highly extensible microservice-based architecture. I will cover the new Commerce Engine in details, in a future blog-post, so to just put in short; this new model is awesome – and it is lightweight.
Unfortunately, the Commerce Engine in the current version 8.2.1 does not replace all capabilities of the Commerce Server core system, leaving the Catalog system, Inventory system and Profiles system still in use, along with the Staging service. This hybrid of having a shiny new Commerce Engine along with the legacy Commerce Server leads, in my view, to a very complex technical solution, which makes it difficult for most technical people to work, develop, configure and maintain it, without having deep technical knowledge about the various systems and components in use. The learning curve on version 8.2.1 is simply too steep – and it is all because of Commerce Server.
I’m have been reluctant on recommending the current version 8.2.1 for any e-commerce project, because of the complexity level mentioned above, but also due to limitations like no PaaS-support. This will all go away though, with the next version, Sitecore Experience Commerce (XC), previously known as Sitecore Commerce 9, because with that version, Commerce Server is completely written out, which effectively will simplify the technical solution a whole lot – removing a number of architectural layers and infrastructural components.
Left to say is goodbye old friend, Commerce Server – thanks for the ride.