An introduction to orders
'Orders' is a broad subject within the context of EVA. In this introduction, we will lay out all facets one by one, to give you a basic understanding of what an order is, what it can be, what stages they go through and how you can affect them.
For starters, the actual order has to be created. Most of the time, this is just the process of assigning an identifier or OrderID to the order. As soon as the order has an ID, it is known within EVA as an actual order, albeit an empty one.
Now, let's make a general division between 'orders' and 'baskets', where a basket is an order that's not yet 'placed'. The order being a basket is the second step of the order process. We can put products in the basket, apply discounts or attach a customer. After any of these steps, the order will remain a basket. After your basket is complete, it's time to place the order, effectively raising the basket to be an order. When doing this, we check whether the order has all information that's necessary. We check whether the order is 'ready to become an actual, full-fledged order'.
After the order is placed there's several steps we go through, which usually follow each other up in a specific order.
When the order has all necessary information, payment can be performed. Based on the order information, EVA can check what payment methods are available. After payment is complete, the order will be marked as being paid.
After an order is paid, it's generally time to ship the order. Shipment is again a very broad term; when a customer buys something over-the-counter we speak of a shipment, but if a customer orders something that needs to be sent out by a warehouse across the country, we still talk about shipment. What we need to remember is that 'shipment' refers to the products effectively ending up in the customer's hands.
As soon as an order is shipped out we consider it to be 'shipped'. From that point onwards, it's the courier's responsibility.
The minute an order is both paid for and shipped, we generate an invoice. The transaction has seen both it's goods shipped out and payment made, so the invoice can be made.
We will give you some examples of order flows now, we'll start with a nice and easy example.
Basic over-the-counter transaction
A customer walks in to your store and strats looking for the items they want. When they've got their literal basket filled, they go over to the store counter. Here, an employee starts scanning the items.
| As soon as the very first item has been scanned, the order is known in EVA.
The counter employee finishes up scanning all items in the basket and heads into checkout. They can freely move into checkout, since over the counter transactions do not require customer data by default. The customer pays with cash.
| When the order is paid, we assume it is immediately shipped as well, since this is a carry out order.
Now, we can print a receipt and/or mail the invoice to the customer (which would require an e-mail eddress to be provided).
| The order is now marked as completed.
Now, for a more complicated example. For this example's complixity, we will assume the webshop operates on a third party e-commerce system, and that the order will be fulfilled from an external warehouse.
A customer lands on your webshop and starts adding some stuff to their basket. This order is not yet known in EVA, as these operations happen in a thrid-party e-com system. The customer wraps up their basket, heads into checkout, adds their personal and address information and makes a payment. Now, when the order is paid, it is time to ship the order, but EVA is not yet aware of the order's existence. To resolve this, we push the entirety of the order into EVA using one simple webservice.
| This order 'push' will include all data, including the payment, so EVA can immediately determine the order's status and that it is ready for shipment.
Now, EVA will determine which fulfillment will be most beneficial for this certain order through order orchestration. In this specific case, let's assume the outcome is warehouse fulfillment through an external warehouse. Becauase we landed on this result, EVA will export the order (much like the webshop exported the order to EVA) to the appropriate warehouse's system.
| This export, will again contain all data.
Now, the warehouse can get cracking on fulfilling the order, making sure to update EVA through their system as they proceed.
| Example of these updates are 'shipment created' or 'shipment shipped'.
As soon as EVA knows the order to be shipped, we will generate an invoice, send it to the customer, and mark the order as completed.