Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Bundle item #2624

Open
Eforen opened this issue Feb 14, 2022 · 28 comments
Open

Create Bundle item #2624

Eforen opened this issue Feb 14, 2022 · 28 comments
Labels
enhancement This is an suggested enhancement or new feature order Related to purchase orders / sales orders
Milestone

Comments

@Eforen
Copy link

Eforen commented Feb 14, 2022

I may just not understand something but how do I create a bundled item that breaks down into 2 other items?

For example if my supplier only sells super glue in bundles of 2 how can i make it so that I have a super glue bundle part that can be tracked in inventory and then an individual superglue part that is created in the quantity 2 when a super glue bundle is broken down into 2 separate glue bottles by opening it?

@github-actions
Copy link
Contributor

Welcome to InvenTree! Please check the contributing docs on how to help.\nIf you experience setup / install issues please read all install docs.

@SchrodingersGat SchrodingersGat added this to the 0.7.0 milestone Feb 14, 2022
@SchrodingersGat
Copy link
Member

@Eforen great question! Currently we don't really support this feature, although it has been requested before:

It would be a great additional feature, we would need additional developer resources (someone willing to develop this) so it could be provided in a timely manner. I have marked this against the next major release.

@matmair matmair added enhancement This is an suggested enhancement or new feature order Related to purchase orders / sales orders labels Feb 15, 2022
@SchrodingersGat SchrodingersGat modified the milestones: 0.7.0, 0.8.0 Apr 13, 2022
@SchrodingersGat SchrodingersGat modified the milestones: 0.8.0, 0.9.0 Jun 6, 2022
@SchrodingersGat SchrodingersGat removed this from the 0.9.0 milestone Oct 20, 2022
@github-actions
Copy link
Contributor

This issue seems stale. Please react to show this is still important.

@github-actions github-actions bot added the inactive Indicates lack of activity label Dec 21, 2022
@SchrodingersGat
Copy link
Member

Not stale

@matmair matmair removed the inactive Indicates lack of activity label Dec 21, 2022
@miggland
Copy link
Contributor

Hasn't this been closed by #3644?

@SchrodingersGat
Copy link
Member

@miggland no, separate issue. Pack size is about "number of items" but a bundle could be multiple different items

@miggland
Copy link
Contributor

Pack size sounds what OP is requesting.

However, bundles are a great idea also. 👍

@github-actions
Copy link
Contributor

This issue seems stale. Please react to show this is still important.

@github-actions github-actions bot added the inactive Indicates lack of activity label Mar 28, 2023
@Eforen
Copy link
Author

Eforen commented Mar 28, 2023

Pack size sounds what OP is requesting.

However, bundles are a great idea also. 👍

Stack size is what I was requesting but bundle would be really useful say for example it's cheaper to buy a pack of 10 nut and bolt pairs but you only need the nuts right now. That would be very useful.

@github-actions github-actions bot removed the inactive Indicates lack of activity label Mar 29, 2023
@github-actions
Copy link
Contributor

This issue seems stale. Please react to show this is still important.

@github-actions github-actions bot added the inactive Indicates lack of activity label May 28, 2023
@SchrodingersGat
Copy link
Member

Not stale

@github-actions github-actions bot removed the inactive Indicates lack of activity label May 29, 2023
@chris-cole-walker
Copy link

I am really interested in seeing this feature added to InvenTree so I am developing a simple implementation that works using existing features and no model changes to "expand" stock items of assemblies into new stock items based on the BOM.

The implementation is basically done and I just need to finalize testing before I can open a pull request for the feature.

If anybody has any input on what this feature should be called, it would be appreciated. Right now, I have called it "expand" to keep it short, but I think "disassemble" or any other term to imply it is breaking down the stock item would work. Attached is a screen shot of what it would look like, using the fas fa-object-ungroup icon in the menu.

Expand Stock

@SchrodingersGat
Copy link
Member

@chris-cole-walker looks great! I think "disassemble" makes more sense than "expand". What control does the user have over the process?

@chris-cole-walker
Copy link

@SchrodingersGat thanks! Yeah, I was also leaning towards something more descriptive like "disassemble" which is why I brought it up. I'll make that change before I move forward.

As of this moment, the user (assuming they have role.stock.change) really can only control the number of items that is disassembled (i.e. if you have 10 blue chairs do you disassemble 1 to get 4 legs or 10 to get 40 legs) and the location that all of the disassembled pieces are placed. Those were the two things I saw as easiest to implement using all existing forms and ideas. The user can also add a note, similar to any other stock adjustment, but I created two new StockHistoryCodes to explicitly track when stock was disassembled and created from disassembly.

I did play with adding an additional attribute to the part model that would indicate if it could be disassembled, but I felt it just added an unnecessary item to the new part form and was cleaner to just assume all assemblies could be disassembled. That being said, it would be an additional control for users with role.part.add/change and would be simple to add if you felt it was necessary.

@SchrodingersGat
Copy link
Member

Nice, that all makes sense.

Another consideration - what happens if the item already has "installed items" (i.e. has been assembled and has tracked sub-assemblies inside it). Does your approach factor this case in?

@chris-cole-walker
Copy link

Short answer, sort of... I am addressing "installed items" by not allowing disassembly if they are present.

Long answer...
At the moment, I have used nearly identical criteria as when checking if a merge is valid to check if disassembly is valid. Anything "installed" in another item, with "installed items", being built, allocated to a sales order, or assigned to a customer cannot be disassembled. I have also prevented serialized items from being disassembled because I don't know what would be the proper way to handle that: "forget" and allow the serial number to be assigned to a new part down the road or track it so it maintains its uniqueness and cannot be used even though the part is gone.

I see two main use cases for "disassembly": an item that is a variety or multi-pack that is better tracked as its pieces (i.e. the glue example that started this thread) and an assembly built in-house that is disassembled to return its pieces back to stock (i.e. a chair is disassembled so the legs can be reallocated to a table). That first use case was my initial motivation and simple as it will never have "installed items," consumable parts, or variants. The second use case is more complicated and could involve "installed items." I think that would be best handled by more granular controls such as being presented with a modified view of the base part's BOM and specifying which items are re-stocked and which items are lost/consumed.

One thing I did just think about about since you asked is that I currently don't check to see if a BOM item is marked as consumable or allowing variants and the disassembly just trusts that all items in the BOM are the explicit part listed and can be re-stocked. This means if you disassemble a "Blue Chair," you get 5 screws, 4 legs, and 0.125 liters of blue paint back in stock. While screws are marked as "consumable" in the demo database, it is feasible they could be removed and restocked. Paint can also be sanded off of a chair leg so it can be used elsewhere. However, 0.125 liters of paint can't magically be re-stocked so this falls under the second use case I mentioned above and needs more input from the user at some point before or during the disassembly process.

@SchrodingersGat
Copy link
Member

@chris-cole-walker it is certainly complicated - which is why the process has not yet been implemented :)

Maybe the "disassemble" process should require input from the user - which items are put into stock, and which are "vanished"?

@chris-cole-walker
Copy link

@SchrodingersGat Ok, I'll see what I can do this weekend!

@github-actions
Copy link
Contributor

This issue seems stale. Please react to show this is still important.

@github-actions github-actions bot added the inactive Indicates lack of activity label Aug 17, 2023
@miggland
Copy link
Contributor

Yes

@github-actions github-actions bot removed the inactive Indicates lack of activity label Aug 18, 2023
@github-actions
Copy link
Contributor

This issue seems stale. Please react to show this is still important.

@github-actions github-actions bot added the inactive Indicates lack of activity label Oct 17, 2023
@SchrodingersGat
Copy link
Member

not stale

@github-actions github-actions bot removed the inactive Indicates lack of activity label Oct 18, 2023
Copy link
Contributor

This issue seems stale. Please react to show this is still important.

@github-actions github-actions bot added the inactive Indicates lack of activity label Dec 18, 2023
@SchrodingersGat
Copy link
Member

Not stale

Copy link
Contributor

This issue seems stale. Please react to show this is still important.

@github-actions github-actions bot added the inactive Indicates lack of activity label Feb 18, 2024
@SchrodingersGat
Copy link
Member

Not stale

@github-actions github-actions bot removed the inactive Indicates lack of activity label Feb 19, 2024
Copy link
Contributor

This issue seems stale. Please react to show this is still important.

@github-actions github-actions bot added the inactive Indicates lack of activity label Apr 19, 2024
@SchrodingersGat SchrodingersGat added this to the horizon milestone Apr 19, 2024
@SchrodingersGat SchrodingersGat removed the inactive Indicates lack of activity label Apr 19, 2024
@SchrodingersGat
Copy link
Member

Not stale, just taking a really long time to get to! Still do not have a clean implementation pathway for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement This is an suggested enhancement or new feature order Related to purchase orders / sales orders
Projects
None yet
Development

No branches or pull requests

5 participants