I had to do something similar recently. What I did was create a Variant on the fly via the AJAX api with the total price of the options that the user selected and stored those option values in the Line Item Properties so that they would be visible to the user and the shop owner.
The obvious limitation is that you can only have a maximum of 100 Variants. I just had my script delete the oldest Variant when the maximum was reached. Not bulletproof but should work depending on how many users you have at once.