Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Splitting and routing of orders allows the Assure Increff OMS module to break up a single outward order into multiple sub-order spread across available warehouses in such a way that the delivery distance or the number of shipments is minimized.

Glossary

Location

Represents a warehouse or a store

Reserved inventory

Inventory that is reserved for an order for the purpose of performing splitting/routing

Overview

Order splitting / routing will be applied to outward orders that are created with the isSplitRequired flag set as true. The order can be split across locations based on one of two different algorithms: Minimize-Distance or Minimize-Shipments. After splitting of the order, the created sub-orders are processed as usual from their assigned locations.

Splitting Routing Algo Selection

The first step before performing the splitting of an order is the selection of a splitting algorithm for a client. This can be done under the Primary Routing Algorithm tab in the Clients screen. The user can select from one of two splitting algorithms from this screen and the algorithm can be updated at any time. The two splitting algorithms available are:

...

⚠️ Note: In case the splitting algorithm is updated for a client, the changes will only affect orders created after the update

Cluster and Area-Cluster Mappings

A Cluster represents a group of locations (stores or warehouses) identified by a unique cluster name. These clusters are used to represent a group of locations that are located in the same area or vicinity. 

...

Figure 2: Split / Route Settings section in OMS for managing Clusters and Area-Cluster Mappings

Cluster

For setting up clusters, the following two steps are to be done

...

Figure 3: Example of clustering done to a group of locations based on proximity

Enabling / Disabling Clusters

Created clusters can be enabled / disabled at any time. Disabled clusters are ignored when performing minimize-distance based order splitting.

...

 ⚠️ Note 2: A DEFAULT cluster is created for each client in which all of their mapped locations are added. This default cluster is used for order fulfillment in the minimize-delivery algorithm if no other clusters are able to fulfill some quantity of an order. The default cluster ensures that an unfulfillable order is not created if required inventory exists in some location(s).

Area-Cluster Mapping

The area-cluster mapping is used to map delivery locations to specific clusters from which the order fulfillment will be attempted. For this, the prefix of a pincode or area-code can be mapped to up-to 5 clusters from which the fulfillment will be first attempted. When an order is received, its delivery pincode is matched with the pincode prefixes present in the area-cluster mapping. Based on the best matches, the clusters to be used are identified.

...

areaCodePrefix

cluster1

cluster2

cluster3

cluster4

cluster5

191

Cluster-2

Cluster-1

180673

Cluster-1

Cluster-2

Example of Cluster and Area-Cluster Mapping Setup

For the scenario detailed in the image below, the geographic area is divided into four distinct zones, each of which has a specific set of area-codes prefixes (as mentioned in the legend). Further, as there are 10 warehouses distributed across the geography.

...

Based on the location of the warehouses and the area-codes of the zones, the following cluster, cluster-definitions, and area-cluster mappings could be set up

1. Cluster

Cluster Name

EAST_CLUSTER

WEST_CLUSTER

NORTH_CLUSTER

SOUTH_CLUSTER

2. Cluster-Definitions

Cluster

Location

EAST_CLUSTER

WH1, WH2, WH3

WEST_CLUSTER

WH10

NORTH_CLUSTER

WH4, WH8, WH9

SOUTH_CLUSTER

WH5, WH6, WH7

3. Area-Cluster Mapping

Area-Code Prefix

Cluster

Priority

11

EAST_CLUSTER

1

12

EAST_CLUSTER

1

21

WEST_CLUSTER

1

22

WEST_CLUSTER

1

31

SOUTH_CLUSTER

1

32

SOUTH_CLUSTER

1

41

NORTH_CLUSTER

1

42

NORTH_CLUSTER

1

Splitting Algorithms

The two splitting algorithms split the orders based on the following logic:

1. Minimize Distance Algorithm

The minimize-distance algorithm attempts to split the order in such a way that the order is fulfilled from those locations first that are nearest to the delivery area-code. Therefore, the sequence followed for splitting the order is in the ascending order of location distance from the delivery point. 

...

  1. Select all SKUs from order where Inventory allocation is required

  2. Select Cluster(s) mapped to Delivery area code in sorted order

  3. Get all locations for selected cluster(s)

  4. Select all locations whose Inventory is exposed on marketplace AND where selected SKUs are available

  5. Sort all selected locations by count of Items

  6. Create maximum Sub-Order from Top Location

  7. Check if more allocation is needed, if yes then goto 1 else end

Example of execution:

Assuming that the clusters are set up in the manner described here, suppose an order is received with the delivery area code: 320311. If the minimize-delivery algorithm is executed for this order, based on area code mappings, the best match(es) of the cluster would be picked. In this case, the best match with the longest matching area-code prefix is the SOUTH_CLUSTER which is mapped to the area-code prefix 32. 

Therefore, the order will be allocated first from locations present in the SOUTH_CLUSTER, i.e., locations WH5, WH6, and WH7. Also, since there are multiple locations within the matching cluster, the minimize-shipments algorithm will be used to identify the order in which the three locations would be tried for allocation.

Find Serviceable Clusters for Area Code

In order to see which clusters would be used and in which order when running minimize-delivery for an order, a new screen Find Serviceable Clusters for Area Code has been added under the Area-Cluster Mapping screen. On specifying the delivery area code of the order, the list of custom clusters that will be used for sub-order creation will be displayed.

...

Figure 7: Screen to Find serviceable clusters for an Area Code Pattern

2. Minimize Shipments Algorithm

The minimize-shipments algorithm attempts to split the order in such a way that the number of sub-orders or shipments created in different locations is minimized. This is done by greedily picking locations based on:

...

  1. Select all SKUs from the order where Inventory allocation is required

  2. Select all locations whose Inventory is exposed on marketplace AND where selected SKUs are available

  3. Rank Locations by Count of Items and SKUs available

  4. Select Top Ranked Location(s)

  5. If there are multiple top ranked locations, use Cluster Area Code mapping to find the closest location.

  6. Create maximum Sub-Order from Top Ranked Location

  7. Check if more allocation is needed, if yes then goto 1 else end

Example of execution:

Assume that the distribution of inventory for two SKUs across 3 warehouses is as follows:

...

In case any ordered quantity was left over after the first sub-order creation, the allocatable quantities would be recalculated and the next choice of location for sub-order creation would be decided.

Splitting Logic Flowchart (Simplified)

...

Handling Excess / Unfulfillable Orders

For an unfulfillable order, the available quantities will be assigned or reserved to splitted sub orders based on the selected primary routing algorithm. For the excess ordered quantities, a single sub-order will be created from any one of the available locations. No preference will be given to a specific location during the creation of the excess order (except in the case of Manufacturable SKUs, see attached note).

⚠️ Note: If the excess ordered quantity contains manufacturable SKUs, the sub-orders for such items will be created in locations where these SKUs are marked as manufacturable. If multiple, excess manufacturable SKUs are present in the outward order, each of which is manufacturable in different locations, multiple sub-orders would be created to ensure that the excess sub-order of a manufacturable SKU is always present in a location where the SKU can be manufactured.

Handling Cancellations before Splitting

In case an order is partially canceled before the splitting / routing is performed, a single sub-order will be created with all the canceled quantities during splitting. This sub-order will be created from any arbitrary, valid location corresponding to the order.

FAQs

Q. Which locations will be considered when performing splitting/routing of orders?

...