我必须保留美元作为基础货币才能启用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会拒绝任何有错误的交易!