Comments 8
Столько телодвижений, чтобы просто убрать копейки? Может проще это сделать с js?
+1
Можно попробовать поменять формат в lib/Zend/Locale/Data/ru.xml (если в конфиге маженты локаль ru_RU) xpath:
Проверил на Magento ver. 1.10.1.1 — у меня работает еще и с округлением.
ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat/pattern
Проверил на Magento ver. 1.10.1.1 — у меня работает еще и с округлением.
0
Надо было просто сделать реврайт класса не Mage_Core_Model_Store а Mage_Directory_Model_Currency и переопределить в методе format:
на:
Или просто скопировать этот класс в папку local и там отредактировать.
return $this->formatPrecision($price, 2, $options, $includeContainer, $addBrackets);
на:
return $this->formatPrecision($price, 0, $options, $includeContainer, $addBrackets);
Или просто скопировать этот класс в папку local и там отредактировать.
0
Мы сталкивались с этой проблемой пару лет назад. Направление вы выбрали правильное, но, как вы и сами отметили, у данной реализации куча минусов:
1) Метод formatPrice вызывается далеко не везде, лучше переписывать formatTxt в Mage_Directory_Model_Currency. Он находится глубже, да и меньше вероятность того, что будет конфликт с другим модулем.
2) Эта функция не используется в JS, отсюда проблема с конфигурационными товарами — при выборе подтовара всё равно вылезут копейки.
3) Проверка привязана к символу валюты «руб». Для евро или доллара, конечно, можно изменить проверку, но если на сайте несколько store view и у каждого своя валюта — способ надо дорабатывать.
Если вдруг кому-то нужно или просто интересно, можете попробовать наш модуль. Помимо этого функционала в нём ещё много всего для работы с валютами.
1) Метод formatPrice вызывается далеко не везде, лучше переписывать formatTxt в Mage_Directory_Model_Currency. Он находится глубже, да и меньше вероятность того, что будет конфликт с другим модулем.
2) Эта функция не используется в JS, отсюда проблема с конфигурационными товарами — при выборе подтовара всё равно вылезут копейки.
3) Проверка привязана к символу валюты «руб». Для евро или доллара, конечно, можно изменить проверку, но если на сайте несколько store view и у каждого своя валюта — способ надо дорабатывать.
Если вдруг кому-то нужно или просто интересно, можете попробовать наш модуль. Помимо этого функционала в нём ещё много всего для работы с валютами.
0
На Хабре глюк? o_O
habrahabr.ru/post/63902/
Мне написал mistervhy с вопросом о том, как мой пост трехлетней давности оказался вдруг опубликован от его имени 13.06.2012… Он находится в таком же недоумении, как и я сам, поэтому прошу к нему претензии не предъявлять :).
P.S. Конечно, информация, содержащаяся в статье, уже абсолютно неактуальна. Сейчас есть множество модулей, которые позволяют легко и элегантно делать любые округления для цен. Однако на момент написания статьи — а это 2009 год — таких модулей не было, поэтому приходилось изобретать свои механизмы.
habrahabr.ru/post/63902/
Мне написал mistervhy с вопросом о том, как мой пост трехлетней давности оказался вдруг опубликован от его имени 13.06.2012… Он находится в таком же недоумении, как и я сам, поэтому прошу к нему претензии не предъявлять :).
P.S. Конечно, информация, содержащаяся в статье, уже абсолютно неактуальна. Сейчас есть множество модулей, которые позволяют легко и элегантно делать любые округления для цен. Однако на момент написания статьи — а это 2009 год — таких модулей не было, поэтому приходилось изобретать свои механизмы.
0
Sign up to leave a comment.
Как «криво» убрать отображение копеек из цены в Magento, или пара слов о переопределении стандартных классов