Option Exceptions and Price Modifiers

[SIZE=“2”][COLOR=“DarkOrchid”]I had major issues in Chrome after upgrading from .14 to .15. The cart would randomly select options and disable them while leaving those set up to be disabled not disabled at all. This was a big catastrophe with the merchandise I offer. BugTracker suggested I contact tech support, and they provided the following coding that seems to have fixed the problem. I thought I’d share in case anyone here is seeing the same thing:[/COLOR][/SIZE]





[COLOR=“Red”]in the “exceptions.js” file located in the “js” directory [/COLOR]





[COLOR=“Red”]Replace this part of the code:[/COLOR]



var pr_a = {}; // option amount

var pr_o = {}; // option exceptions

var pr_d = {}; // discount

var pr_c = {}; // default product codes





[COLOR=“Red”]with this one:[/COLOR]



var pr_a = {}; // option amount

var pr_o = {}; // option exceptions

var pr_pos_o = {} // options position

var pr_d = {}; // discount

var pr_c = {}; // default product codes





[COLOR=“Red”]Replace this part of the code:[/COLOR]



// Define Selected values for each option

for (i in pr_o[id]) {

i = pr_pos_o[id][i];

if (!document.getElementById(pr_o[id][i][‘id’])) {

continue;



[COLOR=“Red”]with this one:[/COLOR]



// Define Selected values for each option

for (i in pr_pos_o[id]) {

i = pr_pos_o[id][i];

if (!document.getElementById(pr_o[id][i][‘id’])) {

continue;







[COLOR=“Red”]Replace this part of code:[/COLOR]



hide[id] = {};

} for (k in pr_o[id]) { // Cycle all options of the product

if (!hide[id][k]) {

hide[id][k] = {};



[COLOR=“Red”]with this one:[/COLOR]



hide[id] = {};

}

for (k in pr_pos_o[id]) { // Cycle all options of the product

k = pr_pos_o[id][k];

if (!hide[id][k]) {

hide[id][k] = {};







[COLOR=“Red”]Replace this part of the code:[/COLOR]



if (except[id][i] == fn_array_length(pr_o[id]) - exceptnone[id][i]) {

j = 0;

for (var k in pr_o[id]) {

if (exceptions[id][i][j] == ‘-2’) {

if (pr_o[id][k][‘type’] == ‘S’) {



[COLOR=“Red”]with this one:[/COLOR]



if (except[id][i] == fn_array_length(pr_o[id]) - exceptnone[id][i]) {

j = 0;

for (var k in pr_pos_o[id]) {

k = pr_pos_o[id][k];

if (exceptions[id][i][j] == ‘-2’) {

if (pr_o[id][k][‘type’] == ‘S’) {







[COLOR=“Red”]skins/[CUSTOMER_ACTIVE_SKIN]/customer/views/products/components/product_options.tpl[/COLOR]





[COLOR=“Red”]Replace this part of the code:[/COLOR]



pr_o[{$id}] = {$ldelim}{$rdelim};

variant_images[{$id}] = {$ldelim}{$rdelim};



{foreach from=$product_options item=“po” name=“ii”}

pr_o[{$id}][{$po.option_id}] = {$ldelim}

‘type’: ‘{$po.option_type}’,



[COLOR=“Red”]with this one:[/COLOR]



// Define the array of all options of the product

pr_o[{$id}] = {$ldelim}{$rdelim};

pr_pos_o[{$id}] = {$ldelim}{$rdelim};

_pr_pos = [];

variant_images[{$id}] = {$ldelim}{$rdelim};



{foreach from=$product_options item=“po” name=“ii”}

_pr_pos.push(‘{$po.option_id}’);

pr_o[{$id}][{$po.option_id}] = {$ldelim}

‘type’: ‘{$po.option_type}’,







[COLOR=“Red”]Replace this part of the code:[/COLOR]



{/foreach}

{/foreach}



// images



[COLOR=“Red”]with this one:[/COLOR]



{/foreach}

{/foreach}

pr_pos_o[{$id}] = _pr_pos;



// images