E-Commerce helps reaching customers in additional channels. It offers an extended product portfolio as well as better service and entails shipping items to customers’ homes and businesses very conveniently. The customer journey usually goes very similarly: after entering the site through a dedicated landing page, the customer finds desired products on category and product detail pages, adds them to the cart and places an order using the checkout. Ironically, most user experiences also end at this very point: After placing an order the customer gets to see an uncompassionate confirmation page. They then receive a confirmation email and that’s where the story ends. Platforms often dabble in subsequent steps and miss out on a big opportunity. Customers highly appreciate fast delivery and are very keen to stay informed about any progress on their order.
At the same time, order processes are pretty complex and can involve a dozen or more external systems. Hence, an incredible number of requirements have to be covered in the context of order handling:
- order payment including potential deposits, overpay as well as underpayment, deferred payment, fraud prevention
- synchronization with systems like ERP, CRM
- just-in-time production of ordered items, licensing or provision of access
- logistics including shipment tracking, picking and packing, in-store collection, drop shipping, multiple warehouses or connected services
- customer service, refunds, complaints, replacements
- and many more…
I have come across a number of weird solutions in my career. To give you an example: I was working on a project with a very successful long-time customer. At some point, a couple of years ago, they had 1.500 orders online. Occasionally there were some orders with flawed prices or information, so they printed them all out twice and had their bookkeeping team verify them manually. That’s 15 kgs of paper (6 full packages!) and the ladies of the accounting department had to start at 4:00am in the morning to get the work done in time and send them over to the logistics.
Order management obviously is an important tool to improve outreach and customer satisfaction but it is also a very powerful way to improve your internal efficiency. The huge amount of requirements can only be met by mostly automated solutions. That will lead to both reduction of costs per order and in cases like the one mentioned above, it will also lead to vastly improved satisfaction of employees.
Traditionally, order management is seen as part of ERP systems. I’d like to challenge the fact if this is a good solution since the processes are characterized by huge demands on speed, customer centricity and constant change at the same time. The ERP shouldn’t be left out completely, but it should take care of relevant tasks like invoicing, and perhaps warehouse control (pick, pack & ship). The definition, execution and orchestration of the overall process and the inclusion of external participants like payment providers should be left to a more lightweight system.
Order Management with Spryker
As shown in earlier posts, Spryker was originally intended to serve as an internal system to draft, create and scale e-commerce projects in no time. Scaling fast won’t work without a well-organized order management. That is why an order management component has been a part of our solution since day one. It helps to modelize, visualize and execute any desired after sales processes with 100% automation in mind, with or without a connected ERP system.
The order management capability makes use of simple concepts of computer science to enable customers to define any business-specific order flow. Since orders are always in a well-defined “state”, they can be described in so-called state machines. To design a fully-functional order process, only a few steps are required:
- define the states that an order can reach throughout its lifecycle,
- pin down the transitions between states, including the option to adopt different new states, and
- describe the events that are triggered by internal or external actions, which add a functionality to transitions. The code required for each function is meant to be atomic and short- the famous ten lines of code per event.
Many other e-commerce platforms are limited to a handful of status and transitions that are defined by developers. This results in a jumble of single steps squeezed into a single transition. If one of the steps fails, the order stays in the initial state which may lead to inconsistent intermediate states. Trouble is sure to follow.
Being able to define the three elements of order flows freely opens up completely new possibilities and perspectives. Each state can define a unique condition of the order. Each transition can be understood as an atomic step in the order flow: may this be it the authorization of payment, sending an email or handing the order over to logistics. Spryker offers this granularity and also allows to swap sub processes based on parameters like chosen payment or shipping methods or product types. This way the order can be automatically sent to different warehouses or drop-shipping services based on the chosen products. The system may even contact licensing services if the customer choses digital products. Since the order flow runs each order item individually, products don’t depend on other items reaching a specific state to continue their journey to the customer. The customer will thank you!
Order management processes in Spryker are easily defined as a simple XML and can be added to version control. This enables you to introduce innovation and optimization by trial and error. To facilitate this even further, the out-of the-box Spryker Sample Suite offers the possibility of rendering the process as a flowchart. That’s the best documentation you can hope for in an IT project. Many of our customers print out the flowcharts on plotters to discuss improvements with developers, managers and logistic experts.
Our customers love using the State Machine for their order flows. They have the opportunity to be closer to their customers by providing faster processing times and instant notifications. At the same time, they gain degrees of efficiency that haven’t been possible before. It’s like squaring a circle.
Too good to be true? It is. Give it a try!