Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Re-sort orders to improve warehouse efficiency

I am trying to optimize how orders are filled at my work. Right now, an employee just grabs the latest 16 orders(sometimes 14 or 18) and fills them.

I am trying to change it so that instead of simply going by the latest list of orders, that it orders them so each batch has order in similar locations. But I can't figure out how I should go about sorting the list. Below is a simplified example of what I want to do.

Example Order List:

  • order 1: 2 products in location E, 5 products in location Q
  • order 2: 1 in location Z, 20 in location B
  • order 3: 1 in location Y, 1 in location N
  • order 4: 3 in location B
  • order 5: 1 in location A, 10 in location E
  • order 6: 1 in location A, 1 in location B, 5 in location Q

After sorting the list, I want order 2 and 4 next to each other, 1 and 6 next to each other, etc. Something like this:

  • order 1: 2 products in location E, 5 products in location Q
  • order 6: 1 in location A, 1 in location B, 5 in location Q
  • order 2: 1 in location Z, 20 in location B
  • order 4: 3 in location B
  • order 3: 1 in location Y, 1 in location N
  • order 5: 1 in location A, 10 in location E

I am using PHP, but any examples or hints in any language would be greatly helpfully.

Edit:

Let me try to explain this in better detail. Employees grab batches of orders and they they go fill the orders using a PDA with a barcode scanner. Our warehouse is set up so that location A is first, B is next and so on. There is no backtracking involved at all. Generally, they have to walk the whole warehouse to fill the batch of orders because on average, the 16 orders will have products from all of the locations.

If I change the sorting of which orders are being filled next from the date of the order to the location of the products of the order, then a batch of orders might only have locations A-G and wont have to walk the whole warehouse.


Another Edit(I really need to get better at posting good details)

Here is our current process:

  1. Picker grabs a cart with 16 buckets on it
  2. Picker scans the 16 unique bar codes from the buckets onto a webpage via a PDA(with scanner and wifi) and a 'picking ticket' is created
  3. The products are ordered by location (the picker only walks by any product once)
  4. The special webpage then tells the employee which product and how many to grab and they scan the bar code on the product
  5. Then it says which bucket to place the product in and they they scan the bar code on the bucket they are putting the product in
  6. After all the products are picked, Picker goes to the shipping station and scans in one of the buckets into a VB program (yes, eww I know. Someday that will get converted)
  7. Receipts are printed for all the orders in that 'picking ticket' and are placed into the correct bucket
  8. Each bucket is emptied and packaged up
  9. Picker now shipper places packaged order on a scale and scans the bar code on the receipt into a program.
  10. The correct postage is printed automatically and the order is marked as shipped and the customer is sent an email with tracking information
  11. Shipper puts postage label on the page, seals it up and puts it in the pile of finished packages
  12. At the end of the day, USPS and UPS pick up the shipments.

I should also note, that a lot/most of our products are small and a 16 order 'picking ticket' can have 500-800 individual pieces. Right now, we have about 28,000 different products in stock.

like image 942
Echo says Reinstate Monica Avatar asked Dec 02 '25 05:12

Echo says Reinstate Monica


1 Answers

As I wrote in the comments on the question, I think you're just looking at the problem the wrong way.

Your description implies that they can go to all the locations before they have to "build"/finish the orders. The problem is that right now, things are grouped in terms of orders, so they try to fill Order #1 by going to all the locations that it requires, then they start looking at Order #2, etc.

Instead, you need to give them aggregated information in terms of the locations, and what they need to pick up at each one. Then they just go to all of the locations, in any order, and pick up everything they need from each one. When they've been to all locations, they go through the list and fill the orders from their big pile of stuff.

Let me know if I've made some incorrect assumptions here, and I'll try to come up with a different approach.


Just to try and clear up the difference, here's the employee's motion in each method (the first two are not definite, because they could have gone to locations in different orders, I just followed the exact order you listed in, as an employee probably would).

Original sort by date (12 moves):

E > Q > Z > B > Y > N > B > A > E > A > B > Q

Your re-sorted version (10 moves):

E > Q > A > B > Z > B > Y > N > A > E

By aggregating by location (7 moves):

A > B > E > N > Q > Y > Z

To further stress the difference, if I assume that all your locations are equidistant from the previous one (so moving from A to B has a cost of 1), and that you have one for each letter. Also assuming that you both want to start and end at location 0, you have:

Original sort by date: amount of movement = 138
Your re-sorted version: amount of movement = 138 (that's kind of surprising)
By aggregating by location: amount of movement = 52

like image 94
Chad Birch Avatar answered Dec 03 '25 21:12

Chad Birch



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!