Magento如何将产品价格设置为4位小数

时间:2011-08-08 09:35:19

标签: magento

对于英国或欧洲商店,我们必须显示增值税价格。即商店前面以15.95英镑的价格出售的产品将以13.5744英镑的价格存储在管理员中 - 这样当增值税(17.5%)增加时,它将达到15.95英镑

不幸的是,Mag似乎只将价格存储到2dp。即使您在管理员中输入13.5744的价格 - 刷新时也会得到13.57。

是否可以将管理产品价格存储在4dp和前端我们在2dp上显示?

干杯,

4 个答案:

答案 0 :(得分:11)

根据我的理解,您需要仔细查看lib / Zend / Currency.php

进一步调查你需要将精度调整为4而不是2:

http://framework.zend.com/manual/1.12/en/zend.currency.options.html
编辑更新了指向最新可用版本的链接)

这个帖子有更多关于实现的详细信息,看起来好像Magento还在其他地方进行了一些价格格式化:

http://www.magentocommerce.com/boards/viewthread/16337/

应用程序/代码/核心/法师/ Adminhtml /砌块/目录/产品/助手/窗体/ Price.php

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

我知道这不是一个明确的答案,但希望能引导你朝着正确的方向前进。

答案 1 :(得分:3)

还有可能已更新的函数roundPrice()。这可以在app / code / core / Mage / Core / Model / Store.php

中找到

如果你仍然被困住了。

答案 2 :(得分:1)

对于那些不想更改Magento代码的人,可以使用可以执行此操作的免费扩展程序CurrencyManager

答案 3 :(得分:1)

至少有3个地方可以替换/覆盖:

  • app / code / core / Mage / Directory / Model / Currency.php(\ Mage_Directory_Model_Currency :: format)
  • app / code / core / Mage / Core / Model / Store.php(\ Mage_Core_Model_Store :: roundPrice)
  • app / code / core / Mage / Adminhtml / Block / Catalog / Product / Helper / Form / Price.php(\ Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Price :: getEscapedValue)

并在管理员...

  • app / code / core / Mage / Sales / Model / Order.php(\ Mage_Sales_Model_Order :: formatPrice and \ Mage_Sales_Model_Order :: formatBasePrice)
  • app / code / core / Mage / Adminhtml / Block / Sales / Items / Renderer / Default.php(Mage_Adminhtml_Block_Sales_Items_Renderer_Default(扩展抽象..你必须实现displayPrice方法))

此外,您可以检查我创建的模块以在github上重写这些类。

https://github.com/r-martins/Magento-PriceDecimals/