где путь к opConfig.reloadPrice (); в мадженто - PullRequest
1 голос
/ 02 сентября 2011

Мне нужно настроить функцию opConfig.reloadPrice (); в пурпурном.

Может кто-нибудь сказать мне, где находится эта функция?

Эта функция выполняется при раскрытии пользовательского атрибута на странице сведений о продукте.

Поскольку мне нужно изменить расчет специальной цены, я думаю, нужно настроить эту функцию.

Ответы [ 3 ]

4 голосов
/ 02 сентября 2011

Этот метод можно найти в следующих файлах:

grep 'reloadPrice:' . -rsn
./js/varien/configurable.js:271:    reloadPrice: function()
./js/varien/product.js:463:    reloadPrice: function()
./skin/frontend/base/default/js/bundle.js:83:    reloadPrice: function()
3 голосов
/ 12 апреля 2013

Для изменения значения пользовательской опции вы должны перейти в js / varient / product.js

и на той странице, которую вы нашли, перезагрузить: function ()

, которая вызывает функцию навремя события изменения.

Удачи

0 голосов
/ 29 апреля 2013

У меня также была проблема с изменением поведения Magento по умолчанию на этом. Я включил jQuery в свой проект и, наконец, понял это, сначала удалив поведение Magento по умолчанию, а вместо него при функции calcPrice вызывал мою calculatePrices() -функцию:

$j('#select_20, #select_21').removeAttr('onchange').change(function(){
    calculatePrices();
});

Теперь, в этой calculatePrices() -функции, наряду с некоторой другой логикой, я включил это, чтобы изменить цены:

function calculatePrices()
{
    var price = 0;

    // some logic with custom options, not interesting for this question...

    // Change the price according to the options:
    $j('#select_20, #select_21').each(function(){
        var selectId = this.id.replace('select_', '');
        var options = opConfig.config[selectId][this.value];
        if(options.type == 'fixed') {
            price += options.priceValue;
        } else {
            // percentual change:
            price += price * (options.priceValue/100);
        }
    });

    // Use Magento Objects to set these prices:
    optionsPrice.changePrice('bundle', price);
    optionsPrice.reload();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...