Splitting & Routing and Order Fulfillment

Modified on Tue, 22 Nov 2022 at 05:08 PM


Business Models

Client’s OMS does the routing splitting

Some channels like Flipkart (FK Omni) require the WMS to

  1. Send Consolidated Location Inventory updates. 

  2. Accept orders and then handle Order Splitting and Routing

  3. Handle Communication with Logistics for forward and Returns 

  4. Handle Hopping scenarios

Channel’s OMS does the routing splitting

Some channels like Myntra, and Amazon requires the WMS to

  1. Send Location-wise inventory

  2. Accept Routed & Splitted Orders as Shipments

  3. Request for Hopping for shipment quantities if required



Question: Are there any scenarios where Channel does the routing/splitting but Logistics is handled by the client via Clickpost/Shiprocket etc?

Answer : Yes, this happens for channels like Shopify


Increff Journey

Phase 1 

Routing splitting Algorithm Selection  

Locations and Cluster definitions 

Cluster to Area code mapping 

Enable Spitting and Routing for warehouses

Changes in UI and in other places for showing/managing splitted orders. 

Phase 2 

Enable store Location definition

Enable store order hopping  workflows

Scale-up inventory sending capabilities to send consolidated and location-wise inventory updates. 

Implementation details

Client Splitting 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 Routing Algorithm tab in the Clients screen.


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. 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 is based on the minimize-delivery algorithm

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. 

To calculate the proximity of a delivery point to a location (store/warehouse), the algorithm makes use of manually uploaded input. These inputs are Clusters, Cluster Definitions, and Area Cluster Mappings.

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 pin 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

Visualization of Splitting Algorithm 

Clusters and Area-Cluster Mappings

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. 


Each cluster can be mapped to an area-code prefix using Area-Cluster Mapping.


When running the minimize-delivery algorithm, the area code of the delivery address is compared with the area-cluster mappings to determine the ordering of clusters to be used for order allocation.


We only consider those locations which are mapped to the order's channel. 


Fig: Cluster Settings section in OMS UI for managing Clusters and Area-Cluster Mappings

Example of Cluster and Area-Cluster Mapping Setup

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

 

Fig: Sample distribution of warehouses & stores and Area-code distribution

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

Cluster

Cluster Name

EAST_CLUSTER

WEST_CLUSTER

NORTH_CLUSTER

SOUTH_CLUSTER


Cluster-Definitions

Cluster Name

Location

EAST_CLUSTER

WH1, WH2, WH3

WEST_CLUSTER

WH10

NORTH_CLUSTER

WH4, WH8, WH9

SOUTH_CLUSTER

WH5, WH6, WH7


Area-Cluster Mapping

Area-Code Prefix

Cluster

Priority

11

EAST_CLUSTER

1

12

EAST_CLUSTER

1

11

NORTH_CLUSTER

2

21

WEST_CLUSTER

1

22

WEST_CLUSTER

1

31

SOUTH_CLUSTER

1

32

SOUTH_CLUSTER

1

41

NORTH_CLUSTER

1

42

NORTH_CLUSTER

1

Channels Location Codes

Mapping of channel’s location code to Increff location. This is required to be defined as not all locations will be servicing on all channels/marketplaces. 


Location Name

Channel Name

Channel Location Code

WH-1

Flipkart

FK-Warehouse-1

WH-2

Flipkart

FK-Warehouse-2

WH-1

Amazon

AZ-Warehouse-1

WH-2

Amazon

AZ-Warehouse-2

WH-7

Amazon

AZ-Store-1-South

WH-7

Amazon

AZ-Store-2-South

WH-1

Brand web shop

Brand-Warehouse-1

WH-9

Brand web shop

Brand-Store-1-South

WH-10

Brand web shop

Brand-Store-2-South


Example of Minimize Distance Algorithm

Assuming that the clusters are set up in the manner described here, suppose an order is received with the delivery Pincode: 320311


If the minimize distance algorithm is executed for this order, based on area-pin 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-shipment algorithm will be used to identify the order in which the three locations would be tried for allocation.


Example of Minimize Shipments Algorithm

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



WH1

WH2

WH3

SKUA

1

2

0

SKUB

4

1

2

Now, suppose an order is placed with ordered quantities: SKUA: 1, SKUB: 2. On running the minimize-shipment algorithm for this order, the first location that will be picked for sub-order creation will be the one which has the maximum total allocatable quantity. For the given order, the total allocatable quantities are: WH1: 3, WH2: 2, WH3: 2. Therefore, WH1 would be used to create the first sub-order.

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.



Find Serviceable Clusters for Area Codes

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 Pincode” has been added under the “Area-Cluster Mapping” screen. On specifying the delivery pincode of the order, the list of custom clusters that will be used for sub-order creation will be displayed  

Fig: Screen for finding serviceable clusters for a pincode

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select atleast one of the reasons

Feedback sent

We appreciate your effort and will try to fix the article