Magento四舍五入货币转换


Magento Round off currency conversions

我必须保留美元作为基础货币才能启用PayPal,但我保留了默认显示货币INR。现在每美元45卢比的转换率给了我讨厌的十进制印度卢比价格,我想去掉它,Magento必须使用一些函数将价格从基础货币转换为印度卢比,同时到处显示印度卢比价格。这个函数是什么?我如何修改它以始终给出四舍五入值??

我发现:

$price = Mage::helper('directory')->currencyConvert($tax->getPrice($product, $product->getFinalPrice(), false), $fromCur, $toCur);

这是Magento本身用来转换不同货币价格的功能吗?如果它是在哪里定义的?

货币转换由Mage_Directory_Model_Currency按照以下方法执行。

public function convert($price, $toCurrency=null)
{
    if (is_null($toCurrency)) {
        return $price;
    }
    elseif ($rate = $this->getRate($toCurrency)) {
        return $price*$rate;
    }
    throw new Exception(Mage::helper('directory')->__('Undefined rate from "%s-%s".', $this->getCode(), $toCurrency->getCode()));
}

您可以创建这个文件的app/code/local版本,或者编写自己的模块并重写核心。

请确保在您的开发服务器和Paypal沙箱中非常仔细地测试,因为Paypal会拒绝任何有错误的交易!