1. Knowledge Base
  2. Learn
  3. Picklists (Advanced Picking)

How do Picklists assign locations and calculate a picking route?

Each order line has one or more picklist line created with the location selected being based on highest availability. Once all picklist lines are created, an optimal sequence to pick them is then computed based on the warehouse's layout.

The main goal that using Picklists accomplishes is letting Acctivate's built-in logic tell you what locations to pick your products from rather than having to decide for yourself and then tell Acctivate which locations were pulled from.  Picklists also attempt to provide the most efficient route through your warehouse to pick everything in the list assuming your warehouse layout is accurate.

With control being given to the software, you may want to understand what it's doing behind the scenes.  In summary, generating a picklist will perform the following major steps that will be covered in more detail below:

  1. The main picklist record (header information) is created as well as internal records to relate that picklist to the order(s) it was created for.
  2. At least one picklist line record is created for every scheduled order line on the picklist's orders that isn't already locked by another picklist.  These are given an appropriate location to pick from.
  3. A series of algorithms are then run using the picklist's information to calculate various  routes based on the warehouse's layout map.  The shortest route is chosen from the results and then it is used to set the sequence the picklist lines are ordered by.

1. Picklist header and order information

When picklists are created from the Enter Sales Order window for a single order, a separate picklist is made for each distinct warehouse found across the order lines that are to be picked.  The ones that will be added to the picklist will have a scheduled quantity (later, the Quantity To Pick) and are not locked by another picklist.  They also must have a line type of P and a product Item Type of Inventoried or Non-Inventoried.  Kits and assortments will not be added but their components that meet the requirements will.

If picklists are created for multiple sales orders within the Order Manager, separate picklists are still created by warehouse but each order will be related to any picklist for a warehouse its pickable lines are associated with.  For example, if you have Order 1001 for warehouse A, Order 1002 for warehouse B, and Order 1003 for both warehouse A and B, one picklist will be made for warehouse A and orders 1001 and 1003.  Another picklist will also be made for warehouse B and orders 1002 and 1003.

2. Picklist lines and location assignment

Now that the picklist has been created and the sales order(s) scheduled lines are associated with it, Acctivate begins choosing appropriate locations for each of those lines one-by-one.  When there is no location on a sales order line (and their lot/serial lines if applicable) prior to the picklist's creation, Acctivate make a choice using the process below for appropriate locations.  However, if there is a location selected on the sales order line (or lot/serial line), that location will act as an override and Acctivate will NOT choose and instead assign that selected to the product whether it has availability there or not!

The details for Acctivate's location selection process for a single order line are as follows:

  1. All open lot/serial records associated with the sales order line (pre-selected before creating the picklist) are assigned one or more locations based off of a list of those relevant to the respective number and with a prioritization of highest or lowest availability followed by location Sequence
    • The lot/serial's picklist record Quantity To Pick will be the quantity on the lot/serial number line record.
    • If the chosen location does not have enough availability to fulfill the Quantity To Pick, the remaining quantity will instead be applied as the Quantity To Pick for the location with the next highest priority, then the next highest priority, and so on until there is no quantity to allocation or there are no locations remaining for that lot/serial number.
    • If there is no location found for a lot/serial's remaining Quantity To Pick, the sales order line's pre-selected location will be used instead (no location if empty).
  2. For the remaining scheduled quantity to be picked from the sales order line (which is the full scheduled quantity if no lot/serial numbers are pre-selected and step 1 is skipped), the location for that order line's product and warehouse will be assigned will be assigned based on a priority of highest or lowest availability followed by location Sequence
    • If the chosen location does not have enough availability to fulfill the Quantity To Pick, the remaining quantity will instead be applied as the Quantity To Pick for the location with the next highest priority, then the next highest priority, and so on until there is no quantity to allocation or there are no locations remaining for that product and warehouse.
    • If there is no location found for the sales order line's remaining Quantity To Pick, the sales order line's pre-selected location will be used instead (no location if empty).
    • Non-inventoried products will not have a location assigned on the picklist.
  3. Picklists lines are finally created for each distinct location and product combination assigned by steps 1 and 2.  Lot/serial picked quantities for that location will be added under a record with matching product and warehouse.

The full process repeats for the next order line.  Quantities and locations selected on previously processed order lines are taken into account when checking location availability so multiple order lines for the same product won't just be assigned to a single location with the highest availability.  This is because availability is, in part, based on quantities assigned to orders and picklists!

Here is an example using the Demo company in Acctivate.  We'll work under the assumption that the "Location priority" option on Configuration Management is set to "Highest availability first".  Lets say you create a sales order with a single line for 15 scheduled of product TP201 which is a lot numbered product.  No lot numbers or locations are pre-selected.  Here are what the locations quantities are like:

WarehouseLocations-1Once a picklist is generated, two picklist lines would be created.  One for location J02A for a quantity of 10 and another for location C14C for a quantity of 5.  J02A didn't have enough quantity to fulfill a quantity of 15 so another line was made for the remainder at C14C.  If instead, 32 were scheduled, there would be a picklist line for every location in the list plus one for no location with a quantity of 2 since there are only 30 available and nothing for the remainder.

3. Computing an optimal warehouse picking route

When all of the picklist lines have been generated, a picking route will be calculated using the locations on those lines along with the warehouse's layout map.  To start, the "Packing" location is added to the list of locations used within the calculation.  This marks the starting and ending location for the route.

The actual computation involves running the location list and warehouse layout through a series of various algorithms that will provide both a sequence to pick in as well as the length of the of the route when following the green arrow paths.  Once the results are finished, the best path is chosen by selecting the shortest one by distance.  This optimal route is then used to reorganize the picklist lines into a sequence that reflects said route. 

Overall, the main goal is to find a reasonably short and circular route between all of the locations selected by the picklist.  As an example, here is a picklist created for the Dallas warehouse within the Demo company using the locations and quantities as seen above for product TP201 :
Picklist(cropped)-1

When looking at the Dallas warehouse layout, you can see that the following path was used with "Packing" as the starting and ending location:

Path