这是由 javascript 执行的。您需要修改 js/varien/configurable.js 中的 getOptionLabel 方法(这是 Magento 1.5.1.0,您的里程可能会因您使用的版本而异)。
此方法接收要应用的选项和价格差异。如果只想显示不同期权的绝对价格,则需要自己计算,使用可配置产品的绝对基值和期权的绝对差值。
该方法的前几行如下所示:
getOptionLabel: function(option, price){
var price = parseFloat(price);
更改它,以便您获得绝对基价和期权的绝对差价。然后将它们加在一起以获得期权的最终绝对价格。像这样:
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;
然后你需要去掉选项中的 + 和 - 符号。稍后在同一方法中,当您调用 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);
}
关于此的更多说明:
您会发现在 js/varien/product.js 中创建了另一个名为 Product.Config 的相同对象。据我所知,这完全没有任何作用,因为它被 js/varien/configurable.js 取代。
另外,如果只是更改 js/varien/configurable.js,下次升级 Magento 时,您可能会丢失所做的更改。最好创建另一个文件,如 js/varien/my_configurable.js 或其他文件,并在配置文件 (product.xml) 中为您使用的任何主题调用它。