Magento Как установить цену продукта до 4 знаков после запятой - PullRequest
8 голосов
/ 08 августа 2011

Для магазина в Великобритании или Европе мы должны указывать цены с НДС. то есть продукт, продаваемый за 15,95 фунтов стерлингов на витрине магазина, будет храниться у администратора как 13,5744 фунтов стерлингов, так что при добавлении НДС (17,5%) он составит 15,95

.

К сожалению, Mag, похоже, хранит цену только до 2dp. Даже если вы введете 13.5744 в админке по цене - вы получите 13.57 при обновлении.

Можно ли хранить цену продукта администратора в 4dp, а во внешнем интерфейсе мы показываем в 2dp?.

Ура,

Ответы [ 4 ]

11 голосов
/ 08 августа 2011

Насколько я понимаю, вам нужно внимательно посмотреть на 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/

Приложение / код / ​​ядро ​​/ Mage / Adminhtml / Block / Каталог / продукта / Helper / Форма / Price.php

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

Я знаю, что это не окончательный ответ, но, надеюсь, ведет вас в правильном направлении.

3 голосов
/ 28 февраля 2017

Существует также функция roundPrice (), которая также может быть обновлена.Это можно найти в app / code / core / Mage / Core / Model / Store.php

Если вы все еще застряли.

1 голос
/ 08 июня 2018

Есть как минимум 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 и \ Mage_Sales_Model_Order :: formatBasePrice)
  • app / code / core / Mage / Adminhtml / Block / Sales / Items / Renderer / Default.php (Mage_Adminhtml_Block_Sales_Items_Renderer_Default (который расширяет Abstract. Вы должны реализовать метод displayPrice))

Кроме того, вы можете проверить модуль, который я создал, чтобы переписать эти классы на github.

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

1 голос
/ 18 августа 2011

Для тех, кто не хочет менять Magento-код, доступно бесплатное расширение CurrencyManager , способное это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...