Biztos tapasztaltátok már, hogy alapesetben a két tizedesjeggyel kezelli az árakat a magento.
Namármost ugye a magyar valóságban erre nincs szükség.
Elkezdtem keresni hol lehetne belenyúlni nem sok sikerrel.
A toCurrency függvényig jutottam de ha jól látom itt csak a pénznem szimbolum kerül beállításra.
Találtam még elötte egy a getPrice fv-t ahol a kerekítést levettem 2-ről 0-ra de a kijelzésbe ez nem szólt bele.
Valaki foglalkozott már ezzel, vagy van aki ismeri a kód architekrúrát annyira, hogy tudná hol lenne érdemes kutakodni?
change price data type in DB by exec these sql statement
UPDATE `eav_attribute` SET `attribute_model` = NULL ,
`backend_model` = ‘’,
`backend_type` = ‘int’,
`backend_table` = ‘’,
`frontend_model` = ‘’,
`frontend_input` = ‘price’,
`frontend_label` = ‘price’,
`frontend_class` = ‘’,
`source_model` = ‘’,
`default_value` = ‘’ WHERE `attribute_id` =99 LIMIT 1 ;
then exec
insert into catalog_product_entity_int (entity_type_id, attribute_id, store_id, entity_id, value)
select entity_type_id, attribute_id, store_id, entity_id, value from catalog_product_entity_decimal where attribute_id=99;
Step 2:
change currencyFormat in /lib/zend/locale/data/fa.xml to <currencyFormats>
<currencyFormatLength>
<currencyFormat>
<pattern references="R046">#,##0 ¤;’’-#,##0’’ ¤</pattern>
</currencyFormat>
</currencyFormatLength>
</currencyFormats>
step 3:
delete from catalog_product_entity_decimal where attribute_id=99; in /lib/zend/currency.php line 63: change
‘precision’ => 2, // precision for currency
to
‘precision’ => 0, // precision for currency
Tetszik ez a megoldás, de pontosan melyik Currency.php -re gondolsz? A teljes /app/code/Mage -ben 9 ilyen nevű van, melyik moduléban keressem? Nálam 1.3.2.4 a Magento-verzió, Nálad?
Tetszik ez a megoldás, de pontosan melyik Currency.php -re gondolsz? A teljes /app/code/Mage -ben 9 ilyen nevű van, melyik moduléban keressem? Nálam 1.3.2.4 a Magento-verzió, Nálad?
Köszi, Balu
Szia,
lib/Zend/currency.php
Egyébként ez a megoldás az 1.4.0.1-gyel már nem működik.
A lib/Zend/Locale/Data/hu.xml -t a <currencyFormats> résznél hiába módosítom ezek alapján: http://framework.zend.com/manual/en/zend.locale.parsing.html#zend.locale.number.localize.table-1 sehogy sem sikrül kivenni a ,00-t az árból.
Ez egy kinlodás ,megcsináltam az itt leirtakat el is tünt a tizedesjegy de ha végigmegyek a pénztári folyamaton a végén a rendelés leadása után nem történik semmi ,csak visszajutok a pénztári folyamat elejére és a termékek ugyanugy ott vannak a kosárba semmi hogy kösz a vásárlást ,se email nem jön,visszacsináltam a megadott php fájlokat de minden maradt így ,ürítetem a var/cachet de semmi változás ,eddig legalább müködött,már nem merek semmibe belenyúlni,mi lehet a gond?vagy hadjak fel a magentoval?vagy békéljek meg vele hogy ez a legrosszabb webshop motor
Köszönöm, ez bevált. A nullát nem akarta elfogadni az admin felületen, a megoldás itt van:
app/code/local/CurrencyManagement/AdminCurrency/Model/System/Config/Source/CurrencyDigits.php fájlban a ‘zero’ stringet 0-ra (integer) kell állítani.
Nekem ezzel sikerült a tizedesjegyet megszüntetni:
app/code/core/Mage/Core/Model/Store.php fájl átmásolni /app/code/local/Mage/Core/Model/ helyre (hogy a frissítések után is megmaradjon), majd:
public function formatPrice($price, $includeContainer = true) { if ($this->getCurrentCurrency()) { if($this->getCurrentCurrencyCode() == "HUF") { return $this->getCurrentCurrency()->format($price, array('precision'=>0), $includeContainer); } else { return $this->getCurrentCurrency()->format($price, array(), $includeContainer); } } return $price; }
Viszont ezzel is VOLT egy baki: ha egy terméknek egyedi opciói voltak, amik közül választani lehetett, és az árat is növelték, akkor az ár visszaugrott tizedesjegyűre. ( Pl. egy 1000 Ft-os terméknél kiválasztottuk, hogy krómozás: +400 Ft, akkor 1400.00 Ft lett az ár, felesleges tizedesjeggyel). Erre megoldás: