由于将 Magento 网站从 1.8 升级到 1.9 并将它们切换到 RWD 主题,因此在为捆绑产品选择产品选项时价格不会更新。
当您选择一个选项时,控制台会返回以下错误:-
未捕获的类型错误:无法读取 null 的属性“更新”
这发生在第 83 行,bundle.js
其中是tierPriceElement.update(tierPriceHtml);
。
这是整个changeSelection
方法的一部分,包括在下面:-
changeSelection: function(selection){
var parts = selection.id.split('-');
if (this.config['options'][parts[2]].isMulti) {
selected = new Array();
if (selection.tagName == 'SELECT') {
for (var i = 0; i < selection.options.length; i++) {
if (selection.options[i].selected && selection.options[i].value != '') {
selected.push(selection.options[i].value);
}
}
} else if (selection.tagName == 'INPUT') {
selector = parts[0]+'-'+parts[1]+'-'+parts[2];
selections = $$('.'+selector);
for (var i = 0; i < selections.length; i++) {
if (selections[i].checked && selections[i].value != '') {
selected.push(selections[i].value);
}
}
}
this.config.selected[parts[2]] = selected;
} else {
if (selection.value != '') {
this.config.selected[parts[2]] = new Array(selection.value);
} else {
this.config.selected[parts[2]] = new Array();
}
this.populateQty(parts[2], selection.value);
var tierPriceElement = $('bundle-option-' + parts[2] + '-tier-prices'),
tierPriceHtml = '';
if (selection.value != '' && this.config.options[parts[2]].selections[selection.value].customQty == 1) {
tierPriceHtml = this.config.options[parts[2]].selections[selection.value].tierPriceHtml;
}
tierPriceElement.update(tierPriceHtml);
}
this.reloadPrice();
},
我可以看到这里曾经存在完全相同的问题,但它已被删除。
鉴于这是与 Magento 1.9 打包的代码,奇怪的是它没有按预期工作......我确实强制主题回退到主题的模板文件,base
并且在尝试更改时触发了相同的错误捆绑产品上的选项。
JavaScript 当然不是我的专长(也不是调试它),上面的代码片段有什么不对吗?或者关于如何找到原因的任何建议?
编辑
看来它毕竟是主题中的东西,因为我恢复到默认的 RWD 主题并且价格正在更新 - 可能是扩展名或布局 XML 中调用的其他东西。