Background:
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.
Problem:
This means that there are 2 Production requests created when a packaged product is sold, but this is very confusing for the users.
Probably.
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.
Following a recent chat with Cedric, I made a new proposal to allow to add a phantom BoM as input/output in a BoM.
So a BoM could be defined as phantom (checkbox) and in this case we must define a quantity and a unit. Don’t think output product is needed, as a phantom BoM is used to replace a product that don’t need production and that should not be in stock. In our case, phantom BoM is used for a specific “mixture” we use each time we produce a billiard ball. This “mixture” has no production and could not be in stock but it is used in many BoMs. So we just need to replace phantom BoM in the inputs of a BoM by the inputs of the phantom BoM (taking care of quantity and unit defined on the phantom BoM) when doing an “explode_BoM”…