|
i was also facing this problem and i solved it the following way (not the best way i think, but it works fine to me):
in yourtheme/template/checkout/onepage.html add the following to the beginning:
<? $baseCurrencyCode = Mage::app()->getStore()->getBaseCurrencyCode(); $currentCurrencyCode = Mage::app()->getStore()->getCurrentCurrencyCode(); if ($baseCurrencyCode != $currentCurrencyCode) { Mage::app()->getStore()->setCurrentCurrencyCode($baseCurrencyCode); //A Info Message (See link below) Mage::getSingleton('checkout/session')->addNotice($this->__('Charged in Euro'));
//These two lines are required to get it to work session_write_close(); //THIS LINE IS VERY IMPORTANT! Mage::app()->getFrontController()->getResponse()->setRedirect('/checkout/onepage'); } ?>
and after
<div class="page-title"> <h1><?php echo $this->__('Checkout') ?></h1> </div>
add
<?php Mage::app()->getLayout()->getMessagesBlock()->setMessages(Mage::getSingleton('checkout/session')->getMessages(true)); ?> <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
Add a translation for ‘Charged in Euro’
What this code does:
if a customer enters the checkout process (onepage) and has a different currency selected than base currency, the currency is changed to base currency and he will get a notice that the payment process is handled in Euro (base currency) .
So i have no problems with payment methods and foreign currencies and also invoices etc are handled in Euro and make it easy for accounting.
|