Magento Web サイトを 1.8 から 1.9 にアップグレードし、それらを RWD テーマに切り替えてから、バンドル製品の製品オプションを選択するときに価格が更新されません。
オプションを選択すると、コンソールは次のエラーを返します:-
キャッチされていない TypeError: null のプロパティ 'update' を読み取れません
bundle.js
これは83 行目で発生し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 で呼び出されている何かです。