Pull to refresh

Comments 8

Столько телодвижений, чтобы просто убрать копейки? Может проще это сделать с js?
Можно попробовать поменять формат в lib/Zend/Locale/Data/ru.xml (если в конфиге маженты локаль ru_RU) xpath:

ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat/pattern

Проверил на Magento ver. 1.10.1.1 — у меня работает еще и с округлением.
Надо было просто сделать реврайт класса не Mage_Core_Model_Store а Mage_Directory_Model_Currency и переопределить в методе format:

return $this->formatPrecision($price, 2, $options, $includeContainer, $addBrackets);

на:

return $this->formatPrecision($price, 0, $options, $includeContainer, $addBrackets);

Или просто скопировать этот класс в папку local и там отредактировать.
а вынести второй параметр в конфиг нельзя?
Можно. Если оформить все как модуль, можно даже дать возможность менять через админку )
Мы сталкивались с этой проблемой пару лет назад. Направление вы выбрали правильное, но, как вы и сами отметили, у данной реализации куча минусов:
1) Метод formatPrice вызывается далеко не везде, лучше переписывать formatTxt в Mage_Directory_Model_Currency. Он находится глубже, да и меньше вероятность того, что будет конфликт с другим модулем.
2) Эта функция не используется в JS, отсюда проблема с конфигурационными товарами — при выборе подтовара всё равно вылезут копейки.
3) Проверка привязана к символу валюты «руб». Для евро или доллара, конечно, можно изменить проверку, но если на сайте несколько store view и у каждого своя валюта — способ надо дорабатывать.

Если вдруг кому-то нужно или просто интересно, можете попробовать наш модуль. Помимо этого функционала в нём ещё много всего для работы с валютами.
На Хабре глюк? o_O
habrahabr.ru/post/63902/

Мне написал mistervhy с вопросом о том, как мой пост трехлетней давности оказался вдруг опубликован от его имени 13.06.2012… Он находится в таком же недоумении, как и я сам, поэтому прошу к нему претензии не предъявлять :).

P.S. Конечно, информация, содержащаяся в статье, уже абсолютно неактуальна. Сейчас есть множество модулей, которые позволяют легко и элегантно делать любые округления для цен. Однако на момент написания статьи — а это 2009 год — таких модулей не было, поэтому приходилось изобретать свои механизмы.
свидетельствую недоумение.

обеспокоен. :(
Sign up to leave a comment.

Articles