Hi @JayRam were you able to get this going at your client. Would help if you can share the code. If incomplete I can ask my developer to look into it. I have fairly good idea of warehouse management system so can work with my guy to help him out.
We tried setting up each bin as a separate warehouse and it became too hard to manage the entries. So, hereās the approach now (let me know if it sounds sensible and workable):
Maybe a custom field (or maybe a separate DocType) in the Warehouse DocTall ype will say whether it is a Bin - Based warehouse or no.
If Bin Based all stock transactions (stock entries, purchase receipt, delivery note, stock reconciliation, Purchase Invoice with Update stock checked, Sales Invoice with Update Stock checked) will get the user to key in the Bin Location (Field becomes mandatory)
A report (source stock ledger report) will simply do a cross tab system of these Bins
Does that sound okay? We may need to capture a date when the Bin System began so that historical data does not mess up the report.
Let me know your thoughts and I will get this done. Happy to share the code when done. Or if there is enough support for this, happy to do a pull.
Thanks @JayRam Jay. I was thinking about it after I posted on the forum and I arrived to similar kind of work flow as yours.
Make new DocType (lets say Racking System) The Bin Tree would be like this
Warehouse (Make warehouse 1st in Warehouse Tree) > Zone> Aisle> Rack> Shelf> Bin
The DocType needs to capture physical layout of the Warehouse. Example 5 Aisles, 10 Racks, 400 Shelves,
Pick List is there in V12 but needs refinement to large extent to manage what I am proposing below.
I would break down this project in 4 Phases for development and testing.
PHASE 1 Stock Entry
When stock is entered it is captured in default warehouse. From here user links the stock location without moving the stock in the warehouse. We can work out auto assignment in Phase 3.
Retrieval
Sales Order is created followed by Pick List.
The Pick List will pull all the information of Sales Order and against it populate the item location as mentioned above.
User goes around picking the item and scanning it on the Pick List. Carries a phone with barcode scanner attached to it.
A pop-up window will appear for user to confirm the number of units retrieved. Maybe there are lesser number of units available than the pick list. Or if the item is not part of Pick List a warning message is shown in the Pop Up like āItem not part of Pick Listā. This also ensure that user has picked the correct item.
Pick List is submitted and converted to Delivery Note.
NOTE: For business that have products with expiry date when the item is scanned the pop-up should warn the picker that item has passed expiry date. We can use the batch management system for warning message.
PHASE 2
ROUTING
Logic needs to be written to allow system to work out the best route the picker takes to pick item in the shorted period of time.
The list is auto sorted in descending order. User starts picking the first item and moves to the 2nd item.
Rest of steps similar to the PHASE 1
PHASE 3
ZONING & SPLIT PICK LIST
Very large warehouses are split into zones. Each zone has one or more dedicated picker.
Master pick list is created.
It is split by zones.
Zone pick list is sorted as per the best route for picking.
Each pick list is assigned to zone staff for picking items.
After all zones have completed respective pick list is regrouped in one Delivery Note.
PHASE 4
CUSTOMER SPECIAL REQUIREMENTS
Some customer have special requirements. Example few hypermarkets do not accept items which have passed x% of sell by date. Example Reliance Fresh will only accept if item has 50% of balance validity date. Item produced on 1st Jan 2019 with expiry of 31 Dec 2020. 50% threshold will pass on 1st Jan 2020. The item can be shipped anytime before 31st Dec 2019 but wont be accepted by Reliance on 1st Jan 2020. Maybe there would be other types of special requirement like this.
Here the world best Warehouse Management System. They have too many features but we can learn few things from them. https://wamas.com/
If my client is happy to invest I would be able to support the development through my developers. We can also look at collaborating on it. I think I captured all that I could think of. Please feel free to add anything more.
Awesome! Love it! Let me get back with you later in the day to define the req.s
I hope you have taken care of these types of Bins:
Designated Item Bins: These bins will only be used to store a particular item
Single Item On the fly Bins: Any item can be stored in these bins, but the only one item will be stored in these bins (it could be different items for different bins)
Multiple Item on the fly bins: Any item can be stored in these bins and the same bin can have multiple items. However the same item will be stored in such on the fly bins after the first quantity of the item is stored in a bin.
@JayRam
Let me know if this is correct as per a standard process of picking items. I have never done any warehouse job before but these step to me are logical way of going about it.
User reads the item in the pick list.
User goes to the location of the item.
User collects the item physically from the location.
User scans the barcode of the item.
System checks the barcode for relevant item in the picks list.
Pop up makes the user confirm the number of units/pieces etc. items picked are equal to number in the pick list.
If the number of units/pieces (UOM) is not equal then user changes the UOM Qty to match actual Qty physically picked.
After collecting all or whichever available items user submits the pick list.
User makes delivery note from the pick list.
Items are deducted from the stock on submission of DN.
Is there a basic version ready to be rolled out for this WMS? My key requirements are limited to identifying a physical bin where a given item is stored.
Hi, no we didnāt pursue as the client didnāt close the deal. We had made a basic flow for demo purpose and would have gone full on if client had signed up. You can test the app here. It should work on V11 & V12.
I am just curious why is the Warehouse Bin System not included for feature in ERPNext? I think this will be very helpful for those companies with complicated warehouse.
Wouldnāt it be easier and more flexible to just add a warehouse location field linked to a new warehouse location doctype on every stock transaction and then be able to have summarized-by quantities by warehouse and warehouse location combination
Why donāt you just create a tree structure with the standard function of warehouse. Each of these little bins could be warehouse whose parent warehouse is the Rack
Many mature ERP/WMS systems have a customizable, segmented warehouse location structure.
Most warehouses have different combinations of buildings, zones, aisles, rows, racks, shelves, etc, so usually the WMS software lets the user creates multiple combinations of sub-locations which facilitates reporting, helps to generate wave-based pick lists, make cycle counting easier, etc.
Some software even has fixed and/or āfloatingā bin system, where the bins can optionally be assigned to, or moved among, these sub-locations, as well as stand by themselves.
Since it can be very tedious to manually enter or import hundreds (or even thousands) of these locations, often thereās tool within the WMS to auto-create the locations using custom segments with pre-defined ranges, such as 10 aisles, 5 racks per aisle, 6 shelves per rack, etc.
My vote is that if the warehouse & location structure is redesigned, then it gets redesigned with that level of flexibility.
One issue with using warehouses as bins is the need to maintain stock transactions whenever an item in a warehouse is needed for stock. A pick ticket would need to know the location of stock, but a sales order does not need to know this, just that the warehouse has adequate stock. Also the complexity of managing a purchase receipt to a staging area, then a material transfer to the put away location. In other words, pick and putaway should not generate stock ledger entries