Adjust a BOM during a transaction

Is there a way to adjust a BOM during a transaction.  My client has a BOM that can use substitute materials.  We are creating versions of the BOM for normal customizations, like using 50% of one material and 50% of the other, but they can make many versions like 90 -10, 60 -40, etc.  Also, their is a significant price difference in the raw materials, so using a substitute, can significantly change the cost of the finished good.

TIA

Mike Ericksen