This document outlines the picking logic designed to optimize pick paths and inventory management using the Pick App on the Flexe mobile app.
| IN THIS TOPIC |
About Picking Logic
The picking logic is designed to optimize pick paths and inventory management using the mobile app, directing pickers to prioritized locations based on specific criteria. Pick methods are assigned based on the shipment categorization.
Pick Method Assignment
- With Old Workflow: Scanning the Batch ID will assign the pick method.
- With New Workflow (SFS): Wave creation will assign the pick method. This is to ensure no two pickers are working on picking the same inventory.
Based on the configuration of the warehouse, the prioritization of where to direct the picker will vary.
Key Terms
| Term | Definition |
| Expiry Date | Applicable to items with expiration date. Refers to the date after which an item cannot be sold or used. |
| FIFO - First In First Out | Inventory system prioritizing older stock over newer. |
| Primary Pick Locations |
If enabled, indicates the primary locations used in the warehouse. These locations take precedence when recommending a pick. To learn more about Primary Picks, refer to Primary Pick Quick Reference Guide. |
| Location Category |
Designates types such as Floor Storage, Rack Storage, Bin Storage, etc. To learn more about Location Categories, see Creating Locations. |
|
Location Sequence ID |
Numeric sequence used to optimize pick paths. Sequence IDs are set by the warehouse when uploading Locations. |
| Location Name | Warehouse location identifier (e.g. IB1, QA1)that shows on the Locations page in Flexe. |
Note: Location Name, Category, Sequence ID, and Primary Pick fields can be found in the Location Detail screen below.
Picking Engines for Loose Goods
Option 1: Bulk & Cluster Pick Engine with Location Category
- This pick engine is for picking loose goods with a focus on expiry dates and FIFO, and making sure to prioritize picking from certain categories first.
Goal: Empty bin locations first, then rack, and then floor. Prioritizes primary picks.
Pick Engine Priority:
- Consume Priority Date
- Expiry Date
- FIFO
- Non-LPNs First
- Primary Pick Locations
- Location Category (Bin> Rack> Floor)
- Location Quantity (fewest to most)
- Location Sequence ID (lowest to highest)
- Location Name (alphanumeric)
Example Scenario:
Note: Highlighted text in red are goods selected by the pick strategy.
Shipment Request
| SKU | Ordered Quantity |
| SMWGTWHT | 9 |
Warehouse Contents (Before Pick)
| Location Category | Location Name | SKU | Sequence ID | Primary Pick | Quantity |
| FLOOR | FLOOR1 | SMWGTWHT | 01 | TRUE | 5 |
| FLOOR | FLOOR2 | SMWGTWHT | 02 | TRUE | 5 |
| RACK | RACK1 | SMWGTWHT | 03 | TRUE | 5 |
| BIN | BIN1 | SMWGTWHT | 04 | FALSE | 5 |
| BIN | BIN2 | SMWGTWHT | 05 | TRUE | 5 |
| BIN | BIN3 | SMWGTWHT | 06 | TRUE | 5 |
Resulting printed pick list
| SKU | Quantity |
| SMWGTWHT | 9 (Expected) |
| SMWGTWHT | 9 (Actual) |
Warehouse Contents (After Pick)
| Location Category | Location Name | SKU | Sequence ID | Primary Pick | Quantity |
| FLOOR | FLOOR1 | SMWGTWHT | 01 | TRUE | 5 |
| FLOOR | FLOOR2 | SMWGTWHT | 02 | TRUE | 5 |
| RACK | RACK1 | SMWGTWHT | 03 | TRUE | 5 |
| BIN | BIN1 | SMWGTWHT | 04 | FALSE | 5 |
| BIN | BIN2 | SMWGTWHT | 05 | TRUE | 0 |
| BIN | BIN3 | SMWGTWHT | 06 | TRUE | 1 |
Option 2: Bulk and Cluster Pick Engine by Sequence ID
- This pick engine optimizes space and focuses on emptying locations by Sequence ID.
Goal: Use Sequence IDs to streamline pick paths for high-velocity SKUs.
Pick Engine Priority:
- Consume Priority Date
- Expiry Date
- FIFO
- Non-LPNs First
- Primary Pick Locations
- Sequence IDs (lowest to highest)
- Locations with no Sequence IDs
- Location Quantity (lowest to highest)
Note: If all of the above are equal, the app will decide randomly.
Example Scenario:
Shipment Request
| SKU | Ordered Quantity |
| SMWGTWHT | 9 |
Warehouse Contents (Before Pick)
| Location Category | Location Name | SKU | Sequence ID | Primary Pick | Quantity |
| FLOOR | FLOOR1 | SMWGTWHT | 01 | TRUE | 5 |
| FLOOR | FLOOR2 | SMWGTWHT | 02 | TRUE | 5 |
| RACK | RACK1 | SMWGTWHT | 03 | TRUE | 5 |
| BIN | BIN1 | SMWGTWHT | 04 | FALSE | 5 |
| BIN | BIN2 | SMWGTWHT | 05 | TRUE | 5 |
| BIN | BIN3 | SMWGTWHT | 06 | TRUE | 5 |
Resulting printed pick list
| SKU | Quantity |
| SMWGTWHT | 9 (Expected) |
| SMWGTWHT | 9 (Actual) |
Warehouse Contents (After Pick)
| Location Category | Location Name | SKU | Sequence ID | Primary Pick | Quantity |
| FLOOR | FLOOR1 | SMWGTWHT | 01 | TRUE | 0 |
| FLOOR | FLOOR2 | SMWGTWHT | 02 | TRUE | 1 |
| RACK | RACK1 | SMWGTWHT | 03 | TRUE | 5 |
| BIN | BIN1 | SMWGTWHT | 04 | FALSE | 5 |
| BIN | BIN2 | SMWGTWHT | 05 | TRUE | 5 |
| BIN | BIN3 | SMWGTWHT | 06 | TRUE | 5 |
Option 3: Bulk and Cluster Pick Engine by Sequence ID (Ignores FIFO)
- This pick engine behaves the same as Option 2 minus FIFO.
Goal: Optimize pick paths for fast-moving items using Sequence ID without prioritizing FIFO.
Pick Engine Priority:
- Consume Priority Date
- Expiry Date
- Non- LPNs First
- Primary Pick Locations
- Sequence IDs (lowest to highest)
- Locations with no Sequence IDs
- Location Quantity (lowest to highest)
Note: If all of the above are equal, the app will decide randomly.
Additional Notes:
- Good for accounts that have fast moving products and want to optimize pick path first for recommendations
Example Scenario:
Shipment Request
| SKU | Ordered Quantity |
| SMWGTWHT | 5 |
Warehouse Contents (Before Pick)
| Location Category | Location Name | SKU | Sequence ID | Primary Pick | Qty | EXP DATE |
| FLOOR | FLOOR1 | SMWGTWHT | 04 | TRUE | 2 | 01-FEB-2025 |
| FLOOR | FLOOR2 | SMWGTWHT | 05 | TRUE | 2 | 01-JUN-2025 |
| RACK | RACK1 | SMWGTWHT | 06 | TRUE | 2 | 01-JUN-2025 |
| BIN | BIN1 | SMWGTWHT | 01 | FALSE | 2 | 01-JUN-2025 |
| BIN | BIN2 | SMWGTWHT | 02 | TRUE | 2 | 01-JUN-2025 |
| BIN | BIN3 | SMWGTWHT | 03 | TRUE | 2 | 01-JUN-2025 |
Resulting printed pick list
| SKU | Quantity |
| SMWGTWHT | 5 (Expected) |
| SMWGTWHT | 5 (Actual) |
Warehouse Contents (After Pick)
| Location Category | Location Name | SKU | Sequence ID | Primary Pick | Qty | EXP DATE |
| FLOOR | FLOOR1 | SMWGTWHT | 04 | TRUE | 0 | 01-FEB-2025 |
| FLOOR | FLOOR2 | SMWGTWHT | 05 | TRUE | 2 | 01-JUN-2025 |
| RACK | RACK1 | SMWGTWHT | 06 | TRUE | 2 | 01-JUN-2025 |
| BIN | BIN1 | SMWGTWHT | 01 | FALSE | 2 | 01-JUN-2025 |
| BIN | BIN2 | SMWGTWHT | 02 | TRUE | 0 | 01-JUN-2025 |
| BIN | BIN3 | SMWGTWHT | 03 | TRUE | 1 | 01-JUN-2025 |
*Floor1 location would be picked first to take the expiry date into account. Bin 2 would be picked next as it is a primary pick location first, and then has a lower sequence ID.
Picking Engine for LPNs
Option 1: Use actual LPN Quantity. May exceed the order’s requested quantity.
- This uses full LPN quantities to meet or exceed order requests while respecting FEFO/FIFO.
Goal: Maximize the fill rate, even if it means slight over-allocation.
Pick Engine Priority:
- Consume Priority Date
- Expiry Date
- FIFO
- Primary Pick Locations
- Location Category (Floor> Rack> Bin)
- Location Sequence ID (lowest to highest)
- Location Name (alphanumeric)
Additional Details:
- Use for accounts that cannot fall under 100% fill rate, and are fine with over-shipping if the LPN quantities do not match
Example Scenarios:
Scenario 1: LPNs with correct quantity and order is correct quantity, however some LPNs are stored with missing quantities in storage
Shipment Request
| SKU | Ordered Quantity |
| SMWGTWHT | 200 |
Warehouse Contents
| LPN Barcode | SKU | Quantity |
| 01-FX-111222 | SMWGTWHT | 50 |
| 02-FX-111222 | SMWGTWHT | 5 |
| 03-FX-111222 | SMWGTWHT | 50 |
| 04-FX-111222 | SMWGTWHT | 50 |
| 05-FX-111222 | SMWGTWHT | 50 |
Resulting printed pick list
| SKU | Quantity |
| SMWGTWHT | 200 (Expected) |
| SMWGTWHT | 205 (Actual) |
Scenario 2: Order is less than the lowest quantity LPN
Shipment Request
| SKU | Ordered Quantity |
| SMWGTWHT | 40 |
Warehouse Contents
| LPN Barcode | SKU | Quantity |
| 01-FX-111222 | SMWGTWHT | 50 |
Resulting printed pick list
| SKU | Quantity |
| SMWGTWHT | 40 (Expected) |
| SMWGTWHT | 50 (Actual) |
Scenario 3: LPNs don’t align with order quantity
Shipment Request
| SKU | Ordered Quantity |
| SMWGTWHT | 50 |
Warehouse Contents
| LPN Barcode | SKU | Quantity |
| 01-FX-111222 | SMWGTWHT | 20 |
| 02-FX-111222 | SMWGTWHT | 20 |
| 03-FX-111222 | SMWGTWHT | 20 |
Resulting printed pick list
| SKU | Quantity |
| SMWGTWHT | 50 (Expected) |
| SMWGTWHT | 60 (Actual) |
Option 2: Use actual LPN Quantity. Does not exceed the order’s requested quantity.
- This matches the exact order quantity using available LPNs following FIFO/FEFO without exceeding it.
Goal: Fill the order without overshipping.
Pick Engine Priority:
- Consume Priority Date
- Expiry Date
- FIFO
- Primary Pick Locations
- Location Category (Floor> Rack> Bin)
- Location Sequence ID (lowest to highest)
- Location Name (alphanumeric)
Additional Details:
- Use for accounts that cannot overship and are okay with undershipping if the LPN quantities do not match
Example Scenarios:
Scenario 1: LPNs with correct quantity and order is correct quantity, however some LPNs are stored with missing quantities in storage
Shipment Request
| SKU | Ordered Quantity |
| SMWGTWHT | 200 |
Warehouse Contents
| LPN Barcode | SKU | Quantity |
| 01-FX-111222 | SMWGTWHT | 50 |
| 02-FX-111222 | SMWGTWHT | 5 |
| 03-FX-111222 | SMWGTWHT | 50 |
| 04-FX-111222 | SMWGTWHT | 50 |
| 05-FX-111222 | SMWGTWHT | 50 |
Resulting printed pick list
| SKU | Quantity |
| SMWGTWHT | 200 (Expected) |
| SMWGTWHT | 155 (Actual) |
Scenario 2: Order is a “bad” quantity and can’t be fulfilled
Shipment Request
| SKU | Ordered Quantity |
| SMWGTWHT | 40 |
Warehouse Contents
| LPN Barcode | SKU | Quantity |
| 01-FX-111222 | SMWGTWHT | 50 |
Resulting printed pick list
| SKU | Quantity |
| SMWGTWHT | 50 (Expected) |
| SMWGTWHT | 0 (Actual) |
Scenario 3: LPNs don’t align with order quantity
Shipment Request
| SKU | Ordered Quantity |
| SMWGTWHT | 50 |
Warehouse Contents
| LPN Barcode | SKU | Quantity |
| 01-FX-111222 | SMWGTWHT | 20 |
| 02-FX-111222 | SMWGTWHT | 20 |
| 03-FX-111222 | SMWGTWHT | 20 |
Resulting printed pick list
| SKU | Quantity |
| SMWGTWHT | 60 (Expected) |
| SMWGTWHT | 40 (Actual) |
Option 3: Closest Quantity
- This chooses the LPNs closest to requested quantity without overshipping, regardless of FIFO or expiry date.
Goal: Match the order as closely as possible, minimizing the number of picks.
Pick Engine Priority:
- Smallest quantity of SKU on LPN
- Alphanumeric location label.
Additional Notes:
- The closest quantity will be recommended, without overpicking the order.
- The least number of pallets will be chosen in order to minimize number of picks
Example Scenarios:
Scenario 1: LPNs don’t align with order quantity
Shipment Request
| SKU | Ordered Quantity |
| SMWGTWHT | 88 |
Warehouse Contents
| LPN Barcode | SKU | Quantity |
| 01-FX-111222 | SMWGTWHT | 65 |
| 02-FX-111222 | SMWGTWHT | 40 |
| 03-FX-111222 | SMWGTWHT | 87 |
Resulting printed pick list
| SKU | Quantity |
| SMWGTWHT | 65 (Expected with FIFO) |
| SMWGTWHT | 87 (Actual) |
Scenario 2: LPNs don’t align with order quantity
Shipment Request
| SKU | Ordered Quantity |
| SMWGTWHT | 90 |
Warehouse Contents
| LPN Barcode | SKU | Quantity |
| 01-FX-111222 | SMWGTWHT | 100 |
| 02-FX-111222 | SMWGTWHT | 14 |
| 03-FX-111222 | SMWGTWHT | 75 |
Resulting printed pick list
| SKU | Quantity |
| SMWGTWHT | 100 (Expected with FIFO) |
| SMWGTWHT | 87 (Actual) |
*With the Closest Quantity Pick, it will recommend 02-FX-111222 and 03-FX-111222, which totals to 89 cartons, the closest quantity of LPNs without going over the order.
Scenario 3: When are several options to pick from, the system will pick the fewest pallets or picks for the warehouse
Shipment Request
| SKU | Ordered Quantity |
| SMWGTWHT | 40 |
Warehouse Contents
| LPN Barcode | SKU | Quantity |
| 01-FX-111222 | SMWGTWHT | 20 |
| 02-FX-111222 | SMWGTWHT | 20 |
| 03-FX-111222 | SMWGTWHT | 40 |
Resulting printed pick list
| SKU | Quantity |
| SMWGTWHT | 40 (Expected 2 pallets FIFO recommendation) |
| SMWGTWHT | 40 (Actual 1 pallet pick recommendation) |
*With the Closest Quantity Pick, it will recommend 03-FX-111222 instead of the first two pallets, ignoring FIFO, as picking 1 pallet is better than having two picked pallets with this pick engine.
Option 4: Pick LPNs according to TiHi quantity
- Picking LPNs according to Ti-Hi assumes each LPN is built to Ti-Hi and contains the standard Ti-Hi pallet quantity of goods when choosing a set of LPNs to pick for an outbound shipment. This ignores the actual LPN contents to find a combination of LPNs to pick for an outbound shipment.
Goal:
This uses Ti-Hi pallets for customer’s legacy systems, prioritizing pallet configurations.
Pick Engine Priority:
- Consume Priority Date
- Exp. Date
- Or by when it first comes in
- Whole LPN **Added w/SFS
- Primary Pick Locations
- Location Category (Floor> Rack> Bin)
- Location Sequence ID (lowest to highest)
- Location Name (alphanumeric)
Example Scenario:
Shipment Request
| SKU | Ordered Quantity |
| SMWGTWHT | 100 cartons |
Pallet Configuration in Item Master
| Item Master | Quantity |
| Ti x Hi | 5 cartons per pallet |
Actual Pallet Configuration in Warehouse
| Inbounded Pallet | Quantity |
| Ti x Hi | 11 cartons per pallet |
Resulting printed pick list
| SKU | Quantity |
| SMWGTWHT | 100 cartons (expected) |
| SMWGTWHT | 220 cartons (20 pallets * 11 cartons) |
*System will recognize the ti-hi item master configuration and calculate 100 pallets / 5 = 20 pallets, requesting 20 pallets.
Comments
0 comments
Please sign in to leave a comment.