0

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 で呼び出されている何かです。

4

3 に答える 3

0

最終的に、多くの試行錯誤を経て、サードパーティの拡張機能が原因である問題を特定しました。

この犯人の拡張機能は、これを経験する可能性のある他のユーザーのために、Iceberg Commerce による Magento Product Options Lightboxでした。

この拡張機能catalog/product/view/type/bundle/option/radio.phtmlは、独自のバージョンで上書きします。古いコードを使用した独自のバージョンです (拡張機能は Magento 1.9 と互換性があると主張していますが、実際には以前のバージョンのバンドルされたオプション コードを使用しています。

修正するには (この拡張機能を使用したい場合):-

このファイルの内容全体を置き換えます ( iceberg/bundledoptiondetails/catalog/product/view/type/bundle/option/radio.phtml):-

私のペーストビンからのこのバージョンで

于 2014-09-05T11:00:00.457 に答える
0

Enterprise Edition に移行した後、同じ問題が発生しました。私の場合、解決策はあなたのものと似ていました。app/design/frontend/MYPACKAGE/MYTHEME/template/bundle/catalog/product/view/type/bundle/optionシステムがファイルにフォールバックするように、フォルダー内のファイルの名前を変更または削除しbase/default/ます。

于 2014-11-18T14:05:08.297 に答える