Supprimer la précision du prix d'un produit

10

Comme je l'ai dit dans le titre, je veux supprimer la précision du prix ( .00 )

J'ai fait ça:

  1. Dans l' application / code / core / Mage / Directory / Model / Currency.php

dans

public function format()

j'ai changé

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

à

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

dans

public function getEscapedValue()

j'ai changé

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

à

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

j'ai changé

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

à

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

j'ai changé

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

à

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

Ensuite, j'ai effacé le cache et réindexé Magento (qui est la version 1.9), mais la précision n'a pas été supprimée, ai-je raté quelque chose? que devrais-je faire?

Alireza Fallah
la source
Toujours remplacer les classes de base
Beto Castillo

Réponses:

13

Vous pouvez jeter un œil à http://www.magentocommerce.com/magento-connect/et-currency-manager.html Je ne l'ai jamais utilisé mais je peux voir que vous pouvez gérer les décimales et plus

"Qui a besoin de cents de toute façon? Vous pouvez afficher le prix sans zéro centime. Exemple: afficher 49 au lieu de 49,00, mais laisser 49,99 inchangé."

De plus, c'est gratuit :-)

Goose84
la source
cela changera-t-il la valeur de la facture?
M.Elwan
4

Ancienne question, mais n'a pas vraiment de bonne réponse programmatique.

$ _product est votre modèle d'objet produit.

$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
la source