如何在Magento 1.7中删除自定义选项+ $ 10.00

rya*_*614 9 magento

您好我使用的是magento 1.7.我有可配置的产品和简单的产品都有自定义选项...我想删除选项旁边的+ $ 10.00示例:自定义选项:大+ $ 5.00我希望它显示为大......我仍然希望价格为在产品的视图页面上更新.我尝试编辑js/varien/product.js注释掉str +但是没有用

//str+= ' ' + this.formatPrice(excl, true) + ' (' + this.formatPrice(price, true) + ' ' + this.taxConfig.inclTaxTitle + ')';
            } else {
                //str+= ' ' + this.formatPrice(price, true);
            }
        }
        return str;
    },
formatPrice: function(price, showSign){
    var str = '';
    price = parseFloat(price);
    if(showSign){
        if(price<0){
            //str+= '-';
            price = -price;
        }
        else{
            //str+= '+';
        }
Run Code Online (Sandbox Code Playgroud)

小智 7

由于它与CE 1.8中的可配置产品有关,因此在这个问题上花了好几个小时.我的解决方案实际上是在236-258行的/js/varien/configurable.js中.注释掉以下四行:

formatPrice: function(price, showSign){
    var str = '';
    price = parseFloat(price);
    if(showSign){
        if(price<0){
            //str+= '-';
            price = -price;
        }
        else{
            //str+= '+';
        }
    }

    var roundedPrice = (Math.round(price*100)/100).toString();

    if (this.prices && this.prices[roundedPrice]) {
        //str+= this.prices[roundedPrice];
    }
    else {
        //str+= this.priceTemplate.evaluate({price:price.toFixed(2)});
    }
    return str;
},
Run Code Online (Sandbox Code Playgroud)

注释掉上面显示的行的净效果是下拉列表中给定选项的价格调整消失.我一直在网站周围寻找是否有任何意想不到的后果,但还没有看到任何东西.


ben*_*rks 5

你会想看看Mage_Catalog_Block_Product_View_Options_Abstract::_formatPrice()[link]

无法使用框架重写此方法。由于使用此方法的显示逻辑可能涉及许多领域,因此我会研究基于 CSS 的解决方案。虽然这可能看起来很黑客,但它可能比尝试扩展每个子类来处理您的逻辑更干净。以下内容适用于默认主题:

#product-options-wrapper span.price-notice,
#product-options-wrapper span.price { display:none } 
Run Code Online (Sandbox Code Playgroud)


Mat*_*att 5

使用上面用户“RS”的评论,我能够为我的网站解决这个问题。这是我网站上的截图,显示修复工作http://tinypic.com/r/5pexz4/5

找到文件

/app/code/core/Mage/Catalog/Block/Product/View/Options/Type/Select.php

转到第 70 - 74 行

$select->addOption(
                $_value->getOptionTypeId(),
                $_value->getTitle() . ' ' . $priceStr . '',
                array('price' => $this->helper('core')->currencyByStore($_value->getPrice(true), $store, false))
            );
Run Code Online (Sandbox Code Playgroud)

从第 72 行中删除此代码

. ' ' . $priceStr . ''
Run Code Online (Sandbox Code Playgroud)

或注释掉代码

$_value->getTitle() /*. ' ' . $priceStr . ''*/,
Run Code Online (Sandbox Code Playgroud)

请务必在语句末尾留下“,”。我的代码现在看起来像这样并且工作正常。

$select->addOption(
                $_value->getOptionTypeId(),
                $_value->getTitle() /*. ' ' . $priceStr . ''*/,
                array('price' => $this->helper('core')->currencyByStore($_value->getPrice(true), $store, false))
            );
Run Code Online (Sandbox Code Playgroud)

我希望这可以帮助您和其他正在寻找相同修复程序的人!


inp*_*put 1

从@RS看:/app/code/core/Mage/Catalog/Block/Product/View/Options/Type/Select.php [L 65-75]

        foreach ($_option->getValues() as $_value) {
            $priceStr = $this->_formatPrice(array(
                'is_percent' => ($_value->getPriceType() == 'percent') ? true : false,
                'pricing_value' => $_value->getPrice(true)
            ), false);
            $select->addOption(
                $_value->getOptionTypeId(),
                $_value->getTitle() . ' ' . $priceStr . '',
                array('price' => $this->helper('core')->currencyByStore($_value->getPrice(true), $store, false))
            );
        }
Run Code Online (Sandbox Code Playgroud)

我无法测试这一点,但是如果您在获取标题后删除所有内容,它应该执行您想要的操作, 您将不想在核心文件中进行这样的编辑 以进行测试,这很好。

        foreach ($_option->getValues() as $_value) {
            $priceStr = $this->_formatPrice(array(
                'is_percent' => ($_value->getPriceType() == 'percent') ? true : false,
                'pricing_value' => $_value->getPrice(true)
            ), false);
            $select->addOption(
                $_value->getOptionTypeId(),
                $_value->getTitle()
            );
        }
Run Code Online (Sandbox Code Playgroud)

我会研究Mage_Catalog_Block_Product_View_Options_Type_Select从核心文件中扩展或复制它的最佳实践。