For me, there is no magical solution to cover all cases.
Indeed I see three cases:
-
The products are standardized and the number of variants is small, so you can create all the variants in the system
-
The products are standardized but the number of possible variants is too large. So you need to create them on the fly. This can be done by selecting the template on the sale line and filling the attributes. The sale workflow will be responsible to create the variant if it does not exist.
-
The products are not standardized. So it is pointless to create a variant for it. It could probably be managed by a unique lot/serial on which we store the attributes. The shipment must enforce to use the proper lot.
Now about the production, we know that the BoM should be improved to be able to use template when needed and to have some mechanism to deduce the proper product to use (table that link attributes to variant etc.)
Also in case the lot is fixed for a shipment, the supply modules must create the proper production order.