用Magento可配置产品选项中的实际价格替换价格差异

Ada*_*oss 17 product options configurable magento

我有一个可配置的产品有3个选项,见下文:

在此输入图像描述

我想用产品的实际价格替换+ 24.00英镑和+ 75.00英镑.

所以相反它会说:£69.00和£120.00

我找到了js/varien/product.js中的代码

我花了一些时间来切换和更改代码,但无法完全解读需要更改的内容.此文件中的第240行向下处理可配置产品的JavaScript事件.

我很感激这里有任何帮助.

Gre*_*ins 21

这是通过javascript执行的.你需要在js/varien/configurable.js中修改方法getOptionLabel(这是Magento 1.5.1.0,你的milage可能会因你使用的版本而异).

此方法接收要应用的选项和价格差异.如果您只想显示不同选项的绝对价格,则需要使用可配置产品的绝对基值和选项的绝对差值自行计算.

该方法的前几行如下所示:

getOptionLabel: function(option, price){
    var price = parseFloat(price);
Run Code Online (Sandbox Code Playgroud)

改变这一点,以便获得绝对基本价格和期权的绝对差异.然后将它们加在一起以获得该选项的最终绝对价格.像这样:

getOptionLabel: function(option, price){
    var basePrice = parseFloat(this.config.basePrice);
    // 'price' as passed is the RELATIVE DIFFERENCE. We won't use it.
    //  The ABSOLUTE DIFFERENCE is in option.price (and option.oldPrice)
    var absoluteDifference = parseFloat(option.price);
    var absoluteFinalPrice = basePrice + absoluteDifference;
    // var price = parseFloat(price);
    var price = absoluteFinalPrice;
Run Code Online (Sandbox Code Playgroud)

然后你需要摆脱选项中的+和 - 符号.稍后在同一方法中,当您调用this.formatPrice时,只需在每次调用中将第二个参数更改为false.

    if(price){
        if (this.taxConfig.showBothPrices) {
            str+= ' ' + this.formatPrice(excl, false) + ' (' + this.formatPrice(price, false) + ' ' + this.taxConfig.inclTaxTitle + ')';
        } else {
            str+= ' ' + this.formatPrice(price, false);
        }  
Run Code Online (Sandbox Code Playgroud)

关于这个的更多说明:

您将在js/varien/product.js中找到另一个名为Product.Config的相同对象.据我所知,这绝对没有,因为它被js/varien/configurable.js取代.

另外,如果只更改js/varien/configurable.js,下次升级Magento时可能会丢失更改.最好创建另一个文件,如js/varien/my_configurable.js或其他任何文件,并在配置文件(product.xml)中调用它以获取您正在使用的任何主题.