9

こんにちは、magento 1.7 を使用しています。構成可能な製品とシンプルな製品の両方にカスタム オプションがあります... オプションの横にある +$10.00 を削除したい 例: カスタム オプション: 大 +$5.00 大として表示したい... それでも価格を変更したい製品のビュー ページで更新します。str+ をコメントアウトして js/varien/product.js を編集しようとしましたが、うまくいきませんでした

//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+= '+';
        }
4

7 に答える 7

7

CE 1.8 の構成可能な製品に関連するため、この問題について何時間も頭を悩ませてきました。私にとっての解決策は、実際には /js/varien/configurable.js の 236 ~ 258 行目にありました。次の 4 行をコメントアウトします。

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;
},

上記の行をコメントアウトすることの最終的な効果は、ドロップダウン内の特定のオプションの価格調整が消えることです。意図しない結果があるかどうかを確認するためにサイトを探し回っていますが、まだ何も見ていません.

于 2013-11-21T18:51:20.610 に答える
5

Mage_Catalog_Block_Product_View_Options_Abstract::_formatPrice()[link]を調べてみてください。

フレームワークを使用してこのメ​​ソッドを書き直すことはできません。このメソッドを使用する表示ロジックは多くの領域に影響を与える可能性があるため、CSS ベースのソリューションを検討します。これはハックに見えるかもしれませんが、ロジックを処理するために各サブクラスを拡張しようとするよりもクリーンである可能性があります。以下は、デフォルトのテーマで機能します。

#product-options-wrapper span.price-notice,
#product-options-wrapper span.price { display:none } 
于 2012-11-20T13:24:58.893 に答える
2

この JavaScript をtemplate/catalog/product/view.phtml

<script>    
// Override formatting in "js/varien/configurable.js"
Product.Config.prototype.formatPrice = Product.Config.prototype.formatPrice.wrap(
      function(parentMethod, price, showSign){ return ''; }
);
</script>

または、上記のコードを使用して新しい JS ファイルを作成し、local.xml を介して製品詳細ページと製品レビュー ページのブロックに含めることもできます。

于 2015-05-19T03:18:56.890 に答える
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))
            );
        }

これをテストすることはできませんが、タイトルを取得した後にすべてを削除すると、必要なことが行われるはずです 。コア ファイルでこのように編集する必要はありません 。テストには問題ありません。

        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()
            );
        }

Mage_Catalog_Block_Product_View_Options_Type_Selectコア ファイルから拡張またはコピーするためのベスト プラクティスを検討します。

于 2012-11-20T13:14:04.730 に答える
0

STEP 1 app/code/core/Mage/Catalog/Block/Product/View/Type/ Configurable.php

この行を変更

'template'  => str_replace('%s', '#{price}' $store->getCurrentCurrency()->getOutputFormat()),

'template'          => Mage::helper('catalog')->__(''),

STEP 2 js/varien/product.js この機能を変更

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

formatPrice: function(price, showSign){

var str = ''; 
price = parseFloat(price); 
if(showSign){ 
if(price < 0){ 
str+= ''; 
price = -price; 
} 
else{ 
str+= ''; 
} 

STEP 3 js/varien/configurable.js.js この関数を変更

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

formatPrice: function(price, showSign){

var str = ''; 
price = parseFloat(price); 
if(showSign){ 
if(price < 0){ 
str+= ''; 
price = -price; 
} 
else{ 
str+= ''; 
} 

私にとってはうまくいきます。リンクhttp://ram-magento.blogspot.in/2011/10/remove-or-price-value-in-drop-down-in.htmlで答えを得ました

于 2014-10-18T17:09:32.250 に答える
0

それは私のために働いた setp 01: app/design/frontend/your_package/your_theme/template/catalog/product/view/type/options/ に移動します

setp 02: configurable.phtml ファイルを開く

setp 03 : ページ上部の過去の次の JavaScript

<script type="text/javascript">
jQuery(document).ready(function(e) {
    checkoptions();

    jQuery("select.super-attribute-select").change(function(){
        checkoptions();
    });
});

function checkoptions(){
    jQuery("select.super-attribute-select option").each(function(){
        var optiontext = jQuery(this).text();
        var addsignpos = optiontext.indexOf('+');
        var subtractsignpos = optiontext.indexOf('-');
        if(addsignpos>0){
            var result = optiontext.substring(0,addsignpos-1);
            jQuery(this).html(result);
        }

        if(subtractsignpos>0){
            var result = optiontext.substring(0,subtractsignpos-1);
            jQuery(this).html(result);
        }
    });
}

元のソース: http://www.cybernetikz.com/remove-price-configurable-products-dropdown-options-magento/

于 2015-12-20T13:34:43.023 に答える