Advanced Order Routing
Our Advanced Order Routing pillar ensures the optimal allocation of customer orders to fulfillment locations based on configurable rules. Already accepted orders can be managed manually or automatically based on customizable configurations.
Dynamic routing in fulfillmenttools finds the best option (facility) to fulfill an order. You can define multiple factors which should be considered when making the decision for the best fulfillment location.
The order routing can receive orders and order requests from any commerce channel and decides from where and how they can be fulfilled best, taking various flexible and configurable routing rules into account. If there is no fixed facility defined where the order has to be fulfilled, our will determine which facility is the best fit for fulfilling an order.
The system allows to define fences and ratings:
Fences: Exclude facilities from order routing according to the fences selected
Ratings: Weigh facilities against each other according to the ratings selected
Routing plan
The main entity of routing is the routing plan. It can be seen as a vehicle which informs and enables the systems downstream of DOMS in the fulfillment process (like picking) about the routing decision.
The routing plan contains all the information that was relevant for the orchestration of an order like ordered items or delivery preferences. Ultimately, the routing plan contains the result(s) of the routing decision.
More information about the routing plans can be found in the routing plans REST API documentation.
Difficulties while routing
It is possible that an order could not be routed, for example, because all available facilities do not pass a fence. In such a case, the order is retried whenever another order is passed to the DOMS. After a configurable amount of time, such an order is set to an "unroutable” state if it could not be routed to any facility beforehand. The default is set to 8 hours.
More information on unroutable orders can be found under Products – Unroutable Orders.
Examples of routing decisions for an order
The fulfillmenttools distributed order management system (DOMS) routes orders to the optimal facility for fulfillment. The system uses a combination of fences (mandatory criteria) and ratings (preference criteria) to determine the best facility.
Historically, routing was based on static rulesets. The fulfillmenttools platform enables these rules to be dynamic, allowing the system to select the most suitable facility at the moment of routing. This tutorial demonstrates how to configure the DOMS using the REST API. An administrator can also configure these settings in the Backoffice.
Fences
Fences function as filters, removing facilities that do not match defined criteria. For example, a tenant, LU.XY, wants to ensure that the service type requested in an order matches the service type offered by the facility. Additionally, they are connected to a marketplace that preselects which facilities LU.XY can use for fulfillment.
To handle this, the following fences must be enabled:
Service TypePreselected facilities
Ratings
After the system applies fences, a subset of facilities remains. Without ratings, the system would randomly assign a pick job to one of the eligible facilities. Ratings allow the system to score each remaining facility to determine the best option for a given pick job.
In the LU.XY example, the business prefers the facility that is closest to the customer and offers the fastest delivery. Since employee performance is measured by Key Performance Indicators (KPIs), the workload should also be balanced across facilities. Furthermore, stores are categorized as "A stores" and "B stores." A stores have high foot traffic from walk-in customers, so online orders should be preferentially routed to B stores.
To achieve this, the following ratings are applied:
GeodistanceWorkload balancingA custom rating based on facility tags
The details of these ratings are explained below. To maximize fulfillment potential, order splitting is also activated in the routing ruleset.
Apply the standard routing rules
For more details, see the Routing Configurations API documentation.
To begin configuring routing options, first retrieve the current ruleset with a GET request.
globalRoutingConfiguration.defaultPrice: This value is used for theMaximizing turnoverrating. It should be a standard value for the industry (e.g., 100 EUR for fashion, 500 EUR for electronics).prioritizationRules: This is a legacy field that is no longer used.routingRule.fences: This array lists all available standardfences. To activate a fence, use the propertiesid,activeandactiveMode.routingRule.ratings: This array lists all standardratings. ThemaxPenaltyproperty defines the weight of each rating in the routing decision. A highermaxPenaltygives the rating more importance. While the Backoffice UI limits this value to a range of 1 to 10, the API allows higher values.orderSplit: This object controls whether order splitting is active.
For this use case, activate orderSplit and the required fences. The ratings will be weighted as follows:
GEO-DISTANCE: 1WORKLOAD-BALANCING: 4
Apply the desired rules by sending a PATCH request to the routing configuration endpoint.
Set facility rating
The facility rating is implemented using a tag. First, a tag definition must be created before it can be assigned to a facility.
For more details, see the Tags API documentation.
Next, assign this tag to a facility using a PATCH request to the facility endpoint.
The API responds with 200 OK and the complete facility object.
Configuring the DOMS toolkit (custom rules)
If the standard routing configurations do not meet specific business needs, the DOMS toolkit can be used to create custom rules. For the LU.XY use case, a custom rating is needed to prefer certain facilities.
DOMS toolkit
The DOMS toolkit creates rules that compare attributes between two entities, such as an order, a facility, or a carrierconnection. A typical rule compares an attribute on the order with an attribute on the facility.
In this example, the goal is to create a rating that applies to all orders and prefers facilities tagged as "B-stores".
The
orderside of the rule will check for a property that is always present, such as theorder.id, to ensure it applies universally.The
facilityside of the rule will check if thefacilityRatingtag has a value ofB.
A maxPenalty of 40 is recommended to give this rating a high weight.
For more details, see the Toolkit Rating API documentation.
Additional rules can be created for other store ratings (e.g., A stores, B stores, C stores). A separate API call is required for each custom rule.
This completes the configuration of the routing rules for the specified use case. DOMS is a powerful and complex feature. For further assistance with advanced routing configurations, contact the professional services team.
Last updated