我正在创建的Magento网站中使用的货币是日元,其货币中没有小数。我已成功将其从产品页面和购物车中删除。
通过修改app / code / local / Mage / Directory / Model / Currency.php格式化函数,如下所示:
$locale = Mage::app()->getLocale()->getLocaleCode();
if($locale != 'ja_JP') {
return $this->formatPrecision($price, 2, $options, $includeContainer, $addBrackets);
} else {
return $this->formatPrecision($price, 0, $options, $includeContainer, $addBrackets);
}
但是,在我创建的下拉属性中,小数仍然显示。像这样:
白色 - ¥3000.00
蓝色 - ¥5000.00
我的问题是,在我的下拉属性中,如何在价格结束时放弃.00。此外,是否可以在不更改数据库的情况下删除管理员的小数?
我试过搜索但遗憾的是,Magento没有直接的功能可以解决这个问题。或者至少我没有遇到过这个功能。请指教。
答案 0 :(得分:1)
您可以在正在编辑的同一个类的formatTxt
方法的开头添加这段代码:
if(Mage::app()->getLocale()->getLocaleCode() == 'ja_JP') {
$options['precision'] = 0;
}
这将改变Magento内几乎每个地方的价格精确度(如目录,结账,甚至是管理)。
答案 1 :(得分:1)
检查免费ET_CurrencyManager扩展程序的代码以找到解决方案。您需要在Mage_Directory_Model_Currency中修改更多的一个funstion。您还需要在Mage_Core_Model_Locale :: getJsPriceFormat中修改JS脚本的精度。
或者只是使用此扩展名来避免修改核心文件。
答案 2 :(得分:0)
事实上,JA(Japnese)的Zend本地格式是错误的,请参阅文件: -
httpdocs/lib/Zend/Locale/Data/ja.xml
行:2953(或只搜索" 0.00")
更新至以下内容: -
<currencyFormats>
<currencyFormatLength>
<currencyFormat>
<pattern>¤#,##0</pattern>
</currencyFormat>
</currencyFormatLength>
</currencyFormats>
这将完全改变YEN显示价格,使其在JA Locale中具有零小数。
有几句警告......
答案 3 :(得分:-2)
好的,所以我设法通过修改configurable.js和product.js来删除.00。这不是一个直接的解决方案,而是一种解决方法。
对于每个文件,我通过使用javascript的split函数拆分价格字符串,删除任何小数点(。)和后面的数字。所以我添加了类似的内容:
var a = price.split(.);
return a[0];
使用它,所有小数都已从我的价格中删除。感谢您的所有时间和帮助。