Product_kit recursion

First let me say … I love the product_kit module … it saved me quite some time to develop something similar.
Anyway to get to the point:
Is it planned to allow recursion with in product kits ?
I tested it by adding a product that has components and those got added fine, but then after that components of those components are not added anymore.
I have not had enough time to fully look (and understand) the code yet, so I do not know if that would cause some issues (except endless recursions of course, but those could be avoided by either not letting people add a parent (or parent’s parent,…) as a component [possibly messy/an issue] or at time of sale state change to offer and throw an error there ?
It’s not a major issue, but it would be really useful to have this imho.

what is your use case for having this?

Well it is just in case you want to add a kit to a kit …
For example if you used a Computer … you make a kit for Input devices including keyboard and mouse …and then a Kit composing of tower, screen and input devices

As I said … it is not vitally important … I just want to know if this is something already considered / worth considering (as I think it shouldn’T be too difficult, but I have not looked at the whole implementation yet, so I am not sure either)

What you talk seems more a production than a kit…

yes I agree that you could likely consider this more a production “thing”. It’s just that it is possible to add things like that of course. It was just the first example that came to mind for me. of course one can always make more than one kit … one for the whole thing and another for parts and then just add everything needed to both.

As I said I don’t really need it … it was just me wondering if that was something that was considered (and if not if there could/should be some warning that sub-components will not be added - like a UserWarning from the sale when progressing to offer state that sub-components are ignored)

For it is not allowed to nest kits because of the domain on components that prevent to use product which has already any component.
Of course such constraint can be worked around if the user adds to the component product any component. This is an integrity constraint that is difficult to express with domains. Maybe the components field could be made invisible if the product is used as component.

We are not at this step in the process of migrating our legacy code but i think we are concerned by such case.
We are selling billiard balls in a box (depending on the game: snooker, pool, …) so this is a “kit”.
And then we could sell a package with cue, box of balls (kit), cue tip chalk, … in a case (so another kit).

Of course such constraint can be worked around if the user adds to the component product any component. This is an integrity constraint that is difficult to express with domains. Maybe the components field could be made invisible if the product is used as component.

I see . well if this is not intended / feasible then disallowing adding components to parts that are components itself might be an option.
Although I would say make it read-only instead of invisible to avoid user confusion as to why it is suddenly “gone” ?

We are selling billiard balls in a box (depending on the game: snooker, pool, …) so this is a “kit”.
And then we could sell a package with cue, box of balls (kit), cue tip chalk, … in a case (so another kit).

I will work around this by simply adding all components to each kit instead of adding kits to other kits as components.