Skip to main content

Orchestration

docs image

Orchestration

Constructing logic for order fulfillment

An introduction to orchestration

Order orchestration is a vital part of Unified Commerce: with it you can guarantee any order is fulfilled and delivered in a way that best suits your brand. Orchestration affords you full creative freedom in constructing the logic which EVA will follow in the order fulfillment process for delivery orders. By tying your preferred delivery methods to certain types of orders, EVA can for example prioritize Ship from Store over Warehouse fulfillment.

The foundation of your order orchestration is its "sheets", through which all your orders flow. These sheets contain all logic for one kind of delivery flow, e.g. Ship from Store or Warehouse fulfillment. There are five main take-aways when it comes to your sheets:

  1. Sheets consist of layers, so-called "scopes"
  2. All orders go through all sheets and scopes
  3. Each scope sets its own conditions, requirements or awards points
  4. Based on that logic, the order gets valued at a certain score for each sheet
  5. The highest scoring sheet (or sheets - see partial fulfillment) is used for fulfillment of the order

Activate Orchestration

To make EVA consider your orchestration sheets for fulfillment over any other settings (such as supplier relationships), the setting UseOrderOrchestration must be switched to true

Sheet structure defined by scopes

The main structure of your sheets is defined by the scopes you use. There are currently eight possible scopes you can use in your sheets. Although you don't have to include all of them, you do have to use them in a particular sequence. Here's an example of the scopes we used in our SFS sheet:


Scope contents

The use of these particular scopes means we've segmented our SFS sheet in five different parts. In turn, we build up each scope with various properties that will influence the end results of the sheet. EVA offers a multitude of properties for this. We'll get to all of them in Scope contents, but to give a few examples, you might set hard requirements for:

  • the order on the Order scope, such as a minimum TotalAmountInTax;
  • the supplier on the Supplier scope, such as requiring it to be of OU type Shop;
  • the SupplierQuantityAvailable on the OrderLine scope, to ensure you're never selling a shop's last product.

Creating your sheets

Once you've got an understanding of what orchestration sheets are, what scopes to use and how to build your scopes, head on over to the Orchestration chapter in Admin Suite. This is where your editors are available to actually create the sheets. We've got two kind of editors.

Authorization

In order to be able to access this chapter in Suite, you need the SymphonySheets permission.

Visual editor

Our visual editor paints an especially clear picture of how the sheet's orchestration flow is built up. It's used for quick insights and light editing to existing entries.


Advanced editor

Click the 'chevron' icon to access the advanced editor. This editor is the one you use to create your sheet. It allows for massive depth and detail in your sheets.


Setting

To make EVA consider orchestration sheets for fulfillment over any other settings such as supplier relations, the setting UseOrderOrchestration must be set with a value true (default is false).

Complete list of expressions

Although the following pages go through most if not all usable expressions (along with examples) in the orchestration sheets, you can find a complete list of them here below for quick reference.

Excerpt from GetScriptDialects
    {
"Name": "OrderOrchestration",
"Keywords": [
"as",
"when",
"with",
"then",
"else",
"not",
"contains",
"in",
"has",
"no",
"value",
"true",
"false",
"True",
"False",
"and",
"or",
"nothing",
"null",
"end",
"from",
"where",
"set",
"if",
"to",
"output",
"table",
"for",
"each",
"do",
"select",
"exit",
"require",
"option",
"fulfillment",
"action",
"proposition",
"validator",
"scope",
"score",
"add",
"multiply",
"divide",
"reason",
"data",
"but",
"continue",
"fanout"
]
}