Versions Compared

Key

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

...

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:

  1. Minimize Shipments Algorithm

  2. Minimize Distance Algorithm

An order received with the isSplitRequired flag as true is eligible for splitting based on the active splitting algorithm specified for the corresponding client. 

Note

Reserved pools are not considered for split / route in Increff OMS.

...

Figure 1: Primary Routing Algorithm selection popup in Primary Routing Algorithm tab of Clients screen

...

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

  1. Specification of cluster name: From the Split / Route Settings section in OMS, select the Clusters option and upload the names of all clusters that are to be created. For a given client, the name of its clusters must be unique.

  2. Specification of cluster definitions: For each created cluster, the list of locations that belong to the cluster must be uploaded from the Cluster Definition screen present under the Split / Route Settings section of OMS.

...

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

...

Based on the delivery area-code, the locations are sorted in the following manner:

  1. Find a previously unused area-cluster mapping whose pattern has the longest possible prefix match with the delivery area code out of all the patterns.

  2. For the cluster found in the previous step, if more than one locations are present, run the minimize-shipments algorithms to decide which location to use

⚠️ Note: In case there are conflicting location after running both minimize-shipment and minimize-delivery algorithms, and one of the available locations will be picked for sub-order creation

The steps followed in the minimize distance algorithm are: 

  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. 

...

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. Total quantity allocatable from the location (the higher the better)

  2. If two or more locations are conflicted after step 1, the count of distinct SKUs that are allocatable

  3. If two or more locations are conflicted after step 2, the closest location based on minimize-delivery algorithm

⚠️ Note: The greedy selection algorithm used for minimizing shipments is an approximate algorithm which should generate results that are fairly accurate. Thus, some orders might be splitted in a non-ideal manner. Determining a completely accurate distribution for minimizing shipments is computationally very difficult and thus the approximate algorithm has been used.

The steps followed in the minimize shipments algorithm are: 

  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:

...