GithubHelp home page GithubHelp logo

Comments (15)

jbaudoux avatar jbaudoux commented on September 1, 2024

When you do the cluster picking, you collect and put the goods on a moving support (like a trolley) which is handled as a pack. You do that for multiple move lines. At the end, you place this support somewhere which is a location (which is physically located).
A location should be somewhere in the warehouse. You can go there and count the goods. It should not be moving.
A pack is something you build over time by putting items inside. Its location is known only once you have finished it and placed somewhere.
The pack can also be temporary. You can transfer its content to a customer pack.

from wms.

hparfr avatar hparfr commented on September 1, 2024

[a location] should not be moving

Says who ? Why ?

from wms.

jbaudoux avatar jbaudoux commented on September 1, 2024

[a location] should not be moving

Says who ? Why ?

Because you move from location A to location B. You do not move the location otherwise where is it physically?
If your location is moving, how do you record where you place it?

At least, that's the reason behind you where asking.

from wms.

hparfr avatar hparfr commented on September 1, 2024

If your location is moving, how do you record where you place it?

There is a difference between (A)moving a physical trolley and (B)move (=rename) a location.
Here we are talking about A.

So you track if the goods are in the trolley or if they are not. I don't kneed to know where is the trolley.
I don't need realtime geolocalisation.

from wms.

jbaudoux avatar jbaudoux commented on September 1, 2024

The question is what happens after the picking? Someone will consume what is in that trolley to pack or ship. And it helps if you can guide that operator by indicating where are the goods, i.e. where you placed that trolley at the end of the picking.

from wms.

hparfr avatar hparfr commented on September 1, 2024

In the warehouses I know, the following setup is usually in place:

  1. the picker, picks goods from the alleys to a trolley,
  2. when it's done he leaves the trolley in the packing zone
  3. the packer takes goods from the trolley to pack them

Knowing where the trolley is (in odoo), is never a concern. The starting point for the packers are the trolleys physically in front of them.

from wms.

jbaudoux avatar jbaudoux commented on September 1, 2024

Knowing where the trolley is (in odoo), is never a concern.

This is a concern in those cases:

  • You have to consolidate goods of picking backorders. Your trolley was full during picking and the backorder is on another one. They you are happy to know where to look for the trolleys.
  • You have to consolidate goods coming from different picking zones. Each picking zone brings trolley that you want to merge per customer. Then you better know where they are.
  • You care about truck loading and you want to ship in a defined ordering. Then you need to unload the trolleys in a defined order and you are happy to know where they are.

from wms.

lmignon avatar lmignon commented on September 1, 2024

At amazon it seems that pickers stays at the same place and the stock locations are moving... (For sure Odoo is not used at amazon) 😏
The problem here is that in some cases the place where the trolley is matters but not always.

from wms.

simahawk avatar simahawk commented on September 1, 2024

@hparfr in theory and looking at the code I don't see any problem with this change but what would you do on that step and after?
You change the destination location already? Normally this should be done in the unload steps. Then what would you do there? Change it again?

Also, most of the checks in there are done against result_package_id which in your case won't be populated if I understand well. IMO this would lead to a complete different logic for the whole scenario and probably you need a different version of cluster picking.

Either you make this configurable and adapt the existing methods (eg: the ones to pick the lines) but I'd be in favor only if we don't end up w/ tons of IF/ELSE blocks everywhere.
Or you split common code to a mixin component and define your own cluster picking (eg: cluster_picking_by_location and cluster_picking_by_package).

from wms.

hparfr avatar hparfr commented on September 1, 2024

My packing is like that:

    1. the user scan a bin (it can be a location or a pack)
    1. if there is more than 1 picking in that bin, select the first one
    1. the user scan the products (he see the list of products), each time he scan a product it will increase the quantity
    1. when all the products are scanned he confirm the done then go back to step 1

I didn't have implemented yet the destination package yet of the pack. If it's needed, it will be created at the first scanned line but not returned to the application.

In fact, my packing scenario is really close to a "simple transfert" scenario.

Either you make this configurable and adapt the existing methods (eg: the ones to pick the lines) but I'd be in favor only if we don't end up w/ tons of IF/ELSE blocks everywhere.

Yes and it's the hard part yet. I had some difficulties to refactor some parts of the cluster_picking because there is some logic in cascade of the return response.

It's a bit sad to have different cluser_packing and pack (it will confuse future integrators of wms, and lead to duplicated code) but it seems not the good time to do it.

With more experience against real implementations, we will able to refactor the code in v16 or something with more confidence 👯

from wms.

jgrandguillaume avatar jgrandguillaume commented on September 1, 2024

Hi @hparfr !

Hope you're good :) Happy to see you here. Look, reading this thread I have one simple question:

Why using pack is a problem in your case ?

I frequently says who can do more can do less.. And here I think the current solution works also for you or am I wrong ? You can load PACK as your wagon bins (instead of location) then place a bar code in the checkout/packing zone to scan when you bring it there ?

Process therefore is (taking yours as example):

  • the picker, picks goods from the alleys to a trolley, here he scans a PACK (stick on the trolley floor or bin) as destination. If another goods is picked for the same order, the system guide him there
  • when it's done he leaves the trolley in the packing zone and scan the barcode of the checkout zone to confirm he's done
  • the packer takes goods from the trolley to pack them. He's guided to the location scanned for the trolley, in your case only one.

So basically it work perfectly for your case too right ? You're not forced to use everl packing/checkout zone location if you don't need. Just place a big barcode to represent the destination packing zone to confirm you're done.

Now please tell me what doesn't work for you here ? I understand you're used to something else, but what is not working for you here ?

Thank,

Joël

cc @sebastienbeau

from wms.

hparfr avatar hparfr commented on September 1, 2024

Hi Joël,

I understand you're used to something else, but what is not working for you here ?
:) I tried with packs first !

The physical process is quite similar: workers scaning and moving goods and boxes that's why I wanted at first to implement in same scenarios.

For the main concerns I had with packs:

  • bin re-use (https://github.com/OCA/wms/pull/64/files) (the bins are put back in the trolleys when empty for new batchs)
  • multi picking per bins (or even per trolley) <-- in fact this is the blocking point.

Why mixing multiple picking (sale orders) per bin?

  • I have simple warehouses setup where trolley like shopping cart. All the orders are mixed during the picking and sorted during the packing.
  • Complex warehouse setups where they have a lot of difference size of goods to pick and we want to minimize the walk, maximize the numbers of orders. Bins have a standard size on the trolleys. Pickers don't want the bins to be half empty.

The difference in process is also on the pack: packers have to assemble the pickings (=count all the goods).

from wms.

jgrandguillaume avatar jgrandguillaume commented on September 1, 2024

Hi @hparfr ,

I was thinking about your things and here are my points:

  • It is ok to implement an option to chose weather you use a bin as location or pack in the cluster picking scenario. I would then do this in the menu configuration
  • It is absolutely not ok to put several order in on bin (regardless it is a package or a location). By definition "cluster picking" segregate order at picking time

Conclusion:

I think what you want to do is therefore "Batch picking" (as defined here https://www.newcastlesys.com/blog/bid/348476/order-picking-methods-and-the-simplest-ways-to-minimize-walking-infographic)

I would then implement a batch picking scenario, that allow to mix up orders in the same bin (configurable as package or location in the menu item).

Hope this helps, let us know what do you think.

Joël

cc @jbaudoux @sebastienbeau

Discrete picking specs if of any use:

https://docs.google.com/presentation/d/1A5TVJXryqod7IwVIl03mDUJIUGzqJ-T2FzSWA90zAvw/edit#slide=id.g863a6cff2c_8_0

from wms.

jgrandguillaume avatar jgrandguillaume commented on September 1, 2024

@hparfr Is the above message ok for you

from wms.

hparfr avatar hparfr commented on September 1, 2024

Yes. I will create a new scenario.

from wms.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.