Summary of enhancements:

  1. Order allocation will support distance from shipping address based allocation.
  2. Processing Bad QC items.


Order allocation will support distance from shipping address based allocation

Context:

  • In the current order allocation rules, the system only checks if the shipping address falls under a delivery area. If there are multiple stores with that delivery area, then the order is allocated to any of the stores with priority being given to the one with the maximum inventory.
  • The order does not take the distance between the shipping address and fulfillment location into consideration
  • This leads to unnecessary allocations to locations that are farther from the shipping location while there are closer (& logistically cheaper) alternative fulfillment locations that can fulfill the orders

Use Case:

  • For some of the merchants who wish to fulfill orders from any store in the country irrespective of logistic costs, the delivery area would comprise all the stores from all cities in the country

  • In such a scenario, the current allocation rules allow order to get allocated randomly to other cities purely based on inventory. This causes practical logistic issues

Solution:

  • Merchant level configs (Control Panel -> Settings -> Application Settings -> Store Settings) to define distance calculation logic based on one of the following:

  1. Linear Distance (based on Lat-Long)

  2. Driving Distance (based on road distance)

  3. Default (current logic, without distance calculation)

  • The ‘Distance Calculation Logic’ (above) will modify the behavior of the following order allocation rules:

  1. Nearest common store 

  2. Nearest warehouse

  • The changes in the behavior of these rules are as follows:

Linear Distance logic:

  • Changes have been made to the Place Order API and Bulk Order APIs to receive lat-long of the shipping address while order gets placed.

  • So each order along with the shipping address platform will receive the lat-long of the shipping address. For all fulfillment locations, lat-long will be pre-configured

  • The locations will be ranked based on the lat-long distance between the shipping address and the fulfillment location

  • Order will be ranked and allocated based on the least distance

  • If two fulfillment locations have the same distance, the location with more stock will be considered

Driving Distance logic:

  • Based on the shipping address’ ZIP code, the pre-configured delivery area will be chosen

  • Then the locations from the matched delivery area will be fetched

  • For all the locations, the road distance from the shipping address will be fetched 

  • The locations will be ranked based on their road distance from the shipping address. Order/Item will be allocated based on the least distance

  • If two fulfillment locations have the same distance, the location with more stock will be considered



Processing Bad QC items

Context:

  • During the picking process, if the picker finds out that an item is in bad shape and can’t be shipped, he removes that item from the picklist. Then the merchant cancels that item. During cancellation, the reason is set to "Item not available/Unsellable" as the product is in the unsellable state. Post this the item's sellable stock does not increase. 

  • This item now can’t be moved to the Bad QC bin as sellable stock is not available for the same. 

  • Due to this WMS is unbalanced and the loop is not closed for Bad quality items that are found in GoodQC bin

Solution:

  • A new reason “Bad Quality Product found while picking” has been added.

  • When this reason is selected during cancellation, the ‘Sellable stock’ will increase, post which that stock can be pushed to ‘Bad QC’