Here is where things get a bit tricky.
Let's start modifying the product options Javascript.
In /modules/Product_Options/check_options.tpl near line 27:
Before:
Insert:
PHP Code:
var productid = {$product.productid};
This just sets a value that we'll use later to prevent errors on the product page.
Then, near line 76:
After:
PHP Code:
/*
modifiers array: as clasid => array: as optionid => array:
0 - price_modifier
1 - modifier_type
2 - taxes array: as taxid => tax amount
*/
Replace:
PHP Code:
var modifiers = [];
/* names array: as classid => class name */
var names = [];
{foreach from=$product_options item=v key=k}
names[{$v.classid}] = {ldelim}class_name: "{$v.class_orig|default:$v.class|wm_remove|escape:javascript}", options: []{rdelim};
{foreach from=$v.options item=o name=opts}
names[{$v.classid}]['options'][{$o.optionid}] = "{$o.option_name_orig|default:$o.option_name|wm_remove|escape:javascript}";
{/foreach}
{if $v.is_modifier eq 'Y'}
modifiers[{$v.classid}] = {ldelim}{rdelim};
{foreach from=$v.options item=o name=opts}
modifiers[{$v.classid}][{$o.optionid}] = [{strip}
{$o.price_modifier|default:"0.00"},
'{$o.modifier_type|default:"$"}',
{ldelim}{rdelim}
{/strip}];
{foreach from=$o.taxes item=t key=id name=optt}
modifiers[{$v.classid}][{$o.optionid}][2][{$id}] = {$t|default:0};
{/foreach}
{/foreach}
{/if}
{/foreach}
With:
PHP Code:
var modifiers{$product.productid} = [];
/* names array: as classid => class name */
var names = [];
{foreach from=$product_options item=v key=k}
names[{$v.classid}] = {ldelim}class_name: "{$v.class_orig|default:$v.class|wm_remove|escape:javascript}", options: []{rdelim};
{foreach from=$v.options item=o name=opts}
names[{$v.classid}]['options'][{$o.optionid}] = "{$o.option_name_orig|default:$o.option_name|wm_remove|escape:javascript}";
{/foreach}
{if $v.is_modifier eq 'Y'}
modifiers{$product.productid}[{$v.classid}] = {ldelim}{rdelim};
{foreach from=$v.options item=o name=opts}
modifiers{$product.productid}[{$v.classid}][{$o.optionid}] = [{strip}
{$o.price_modifier|default:"0.00"},
'{$o.modifier_type|default:"$"}',
{ldelim}{rdelim}
{/strip}];
{foreach from=$o.taxes item=t key=id name=optt}
modifiers{$product.productid}[{$v.classid}][{$o.optionid}][2][{$id}] = {$t|default:0};
{/foreach}
{/foreach}
{/if}
{/foreach}
Note: We are simply assigning the modifiers with the productid appended to the end.
Next, near line 159:
Replace:
PHP Code:
var default_price = {$product.taxed_price|default:"0"};
With:
PHP Code:
var default_price{$product.productid} = {$product.taxed_price|default:"0"};
Note: Again, just appending the productid to the variable to make it unique.
I have attached the whole file with the edits just in case.