Remova a precisão do preço de um produto

10

Como eu disse no título, quero remover a precisão do preço ( .00 )

Eu fiz o seguinte:

  1. Em app / code / core / Mage / Directory / Model / Currency.php

no

public function format()

eu mudei

 return $this->formatPrecision($price, 2, $options, $includeContainer, $addBrackets);

para

 return $this->formatPrecision($price, 0, $options, $includeContainer, $addBrackets);
  1. Em /app/code/core/Mage/Adminhtml/Block/Catalog/Product/Helper/Form/Price.php

no

public function getEscapedValue()

eu mudei

 return number_format($value, 2, null, '');

para

 return number_format($value, 0, null, '');
  1. Em js / varien / js.js

eu mudei

var precision = isNaN(format.precision = Math.abs(format.precision)) ? 2 : format.precision;
var requiredPrecision = isNaN(format.requiredPrecision = Math.abs(format.requiredPrecision)) ? 2 : format.requiredPrecision;

para

var precision = 0;
var requiredPrecision = 0;
  1. E em app / code / core / Mage / Core / Model / Store.php

eu mudei

public function roundPrice($price)
    {
        return round($price, 2);
    }

para

 public function roundPrice($price)
    {
        return round($price, 0);
    }

Depois limpei o cache e reindexei o Magento (que é a versão 1.9). Mas a precisão não foi removida. Estou perdendo alguma coisa? O que devo fazer?

Alireza Fallah
fonte
Sempre substitua as classes principais
Beto Castillo

Respostas:

13

Você pode dar uma olhada em http://www.magentocommerce.com/magento-connect/et-currency-manager.html Eu nunca usei, mas vejo que você pode gerenciar as casas decimais e muito mais

"Quem precisa de centavos de qualquer maneira? Você pode exibir o preço sem zero centavos. Exemplo: exiba 49 em vez de 49,00, mas deixe 49,99 inalterados."

Além disso, é grátis :-)

Goose84
fonte
isso mudará o valor da fatura?
precisa saber é o seguinte
4

Pergunta antiga, mas realmente não tem uma resposta correta programática.

$ _product é o seu modelo de objeto de produto.

$price = ($_product->getFinalPrice() != 0) ? $_product->getFinalPrice()
            : $_product->getPrice();
        if ($round) {
            $store = Mage::app()->getStore(null);
            $currency = $store->getCurrentCurrency();
            return $currency->formatPrecision($price, 0, array(), true, false);
        }
        return Mage::helper('core')->currencyByStore($price)
ProxiBlue
fonte