Architecture roadmap with EPiServer Commerce
Implementing EPiServer Commerce is a big deal. Not only because of the technical challenges, but also the kind of impact implementing an e-commerce solution could have on an organization.
Before even installing EPiServer, writing a line of code or getting a cup of coffee there has to be a vision for the e-commerce solution. We’ll leave the business decisions and ramifications of it all out of this post. That’s for the enterprise-people. Also, just kidding about the coffee. Go get some, you know you want to.
Back? Cool. For this post we’ll imagine a traditional company that has sold products over the counter in a store for a few years, they have an existing website where they present their products, but now they want to move into the direction of e-commerce and have chosen EPiServer (evaluated and smashed the competition like the Hulk!) as their platform.
Pushing an e-commerce solution into place is a daunting task. Where to start from an architectural and technical perspective? Here’s my take on it: create a roadmap for it in which the client can ease into their new e-commerce shell.
A vision or target architecture
Setting a vision for the solution is crucial. This is the beacon at the horizon you’re aiming for – an architectural nirvana, if you will. You shouldn’t do big up front design solutions – but sometime you need to have an outline. Don’t set all the details, but take a heading. The most important aspect of architecture – as I see it – is communicating and creating a shared understanding of what is to be achieved. We need to run in the same direction.
Here’s a sample architectural vision for an EPiServer Commerce solution.
This is a logical view of the architecture. It doesn’t specify which technology will be used. From this perspective it’s possible to explain and reason with interested parties just how everything is going to fit together – a shared understanding.
It roughly explains how data will flow from backend systems, how products are maintained in one place and one place only, how search fits into the solution as a cross-cutting function that is essential for the web as well as the app experience.
Start small, a first milestone
The vision is something grand and not something that may be suitable as a first release. The amount of resources needed are probably staggering. Instead start off with something a little more manageable. Put EPiServer CMS, EPiServer Commerce and EPiServer Find in place. And honestly? That’s quite enough by itself.
At this stage it’s key to identify business processes’, business objects, business rules and implement them in the platform. A’lot of thought and effort is going to go into just modelling the business. Post-its, whiteboards and other analogue tools are your best bet.
Products, orders, customers, etc will have to be managed manually in EPiServer Commerce since the first milestone does not include integrations . For now the platform is an island of data and functionality. But by having modelled the business objects, it really doesn’t matter from where the data comes from. Manually created, or fetched from a backend system.
At the release of the first milestone you might not have a buy-button or even a shopping cart. The first milestone could just be a structured way of managing products while preparing to push e-commerce throughout the organization.
Include apps, reaching the second milestone
With EPiServer Find and EPiServer Commerce in place it’s relatively easy to introduce third-party systems to your solution. Key to modern solutions is to be prepared to publish and expose functions and content for any kind of channel. See my previous post Mobile-first, cloud-first approach to e-commerce for more on this topic.
In this milestone I’ve included App(s) but this can virtually be anything from your DOS 6.22 application to your Google Glass app. Go nuts!
Going for gold, the third milestone
Integrations. How we love them. Most likely as the e-commerce solution grows you’ll need to integrate with one or many backend systems. As seen in the architecture it’s EPiServer Commerce that contains all the business models and this is the target component for your integrations. The CMS, App(s) and other applications won’t really care where product data comes from, as long as it does.
Of course this is a very simplified view. It doesn’t say how much functionality will be added in each box. This is meant to illustrate how the larger components relate to each other.
So, we’re we done?
Are we done after reaching the third milestone? No, not at all. The architecture will inevitably change along the journey. It’s meant to. You’ll add, skip and remove milestones. But you’ll do it together with the client and your team with a shared vision and goal. You’ll be running in the same direction.