The scenario is a company that sells produces products on demand sold in different sized packages.
The current setup is that there is a “base” product associated with a BOM that includes all the ingredients and steps required except for the packaging and one product record for each packaging size with a related BOM with the inputs being the “base” product and the packaging.
This means that there are 2 Production requests created when a packaged product is sold, but this is very confusing for the users.
But there is also the case which need to have a solution. Sometimes you will use phantom BOM but for products that do not really exist so it will be good to be able to avoid the creation of such fake product.
So you propose that this should be a combination of the checkbox and the bom field?
I image we should only explode the bom when the checkbox is set and hide the bom field when not set. In case the user picks a bom this bom should be used otherwise we use the first Bom (but allowing customization).
I do not think that having a single BoM field as input is a good design because it will rely on a non-explicit unit of measure. So for me we must always have a product (even if it is only used as partial parts) to ensure a base conversion for the measures.
And as product will be always required, I will prefer to let the system choose the BoM like it does in other cases. The only addition feature that will be a nice to have is to be able to specify on the production order all the BoM to use.