3

The Product prices are entered in Indian Rupees

display currency is set as: Us Dollar
base currency is          : Indain Rupee

as we all know magento checkouts in base Currency. Is there is a way to checkout in display currency? it will save a lot of hassle.

i use paypal standard as payment processor

help would be appreciated

  • Theoretically this is possible, however it is highly dependent on the payment processor that you use. If you can add which payment methods you need to support someone might have done this before. – Kristof at Fooman May 8 '14 at 21:00
  • i use Paypal standard as payment processor – Manish Arora May 9 '14 at 18:56
  • 1
    Is your issue solved? – user51361 Jul 26 '17 at 6:15
4

I hope this will help you, Add this in “models” section of your module config.xml

<paypal>
    <rewrite>
        <standard>Yourpackage_Yourmodule_Model_Standard</standard>
    </rewrite>
</paypal>

Make Standard.php in the “Model” directory of your module and place this code in it:

<?php
class Yourpackage_Yourmodule_Model_Standard extends Mage_Paypal_Model_Standard
{
    public function getStandardCheckoutFormFields()
    {
        $orderIncrementId = $this->getCheckout()->getLastRealOrderId();
        $order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
        $api = Mage::getModel('paypal/api_standard')->setConfigObject($this->getConfig());
        $api->setOrderId($orderIncrementId)
            ->setCurrencyCode($order->getOrderCurrencyCode())
            //->setPaymentAction()
            ->setOrder($order)
            ->setNotifyUrl(Mage::getUrl('paypal/ipn/'))
            ->setReturnUrl(Mage::getUrl('paypal/standard/success'))
            ->setCancelUrl(Mage::getUrl('paypal/standard/cancel'));
        // export address
        $isOrderVirtual = $order->getIsVirtual();
        $address = $isOrderVirtual ? $order->getBillingAddress() : $order->getShippingAddress();
        if ($isOrderVirtual) {
            $api->setNoShipping(true);
        } elseif ($address->validate()) {
            $api->setAddress($address);
        }
        // add cart totals and line items
        $api->setPaypalCart(Mage::getModel('paypal/cart', array($order)))
            ->setIsLineItemsEnabled($this->_config->lineItemsEnabled)
        ;
        if (!$this->_config->lineItemsEnabled) {
            $api->setCartSummary($this->_getAggregatedCartSummary());
        }
        $result['amount'] = round($order->getGrandTotal(), 2);
        $j = 0;
        $items = $order->getAllItems();
        foreach ($items as $itemId => $item)
        {
            $j ++;
            $result['amount_'.$j] = round($item->getPrice(), 2);
        }
        $result['country'] = $order->getBillingAddress()->getCountryId();
        return $result;
    }
}

it’s ugly, but it worked for me...

4

Paypal does not support INR.
You can take a look at the supported paypal currencies in Mage_Paypal_Model_Config::$_supportedCurrencyCodes. To save you the trouble of looking here it is:

protected $_supportedCurrencyCodes = array('AUD', 'CAD', 'CZK', 'DKK', 'EUR', 'HKD', 'HUF', 'ILS', 'JPY', 'MXN',
    'NOK', 'NZD', 'PLN', 'GBP', 'SGD', 'SEK', 'CHF', 'USD', 'TWD', 'THB');
  • yes thats why i need to check out in display currency rather than base currency – Manish Arora Jun 25 '14 at 9:32
  • @marius : after added base currency to $_supportedCurrencyCodes, still not working, and – user51361 Jul 26 '17 at 6:11
3

Magento did not allow this in older versions, as a 'hack' then created Website Pricing. You create a new website & store, and assign the prices in the website currency at the product level, that is the technical theory. The problem is when you come to use it as a business, exchange rate amounts at the website pricing level are not automatically updated, you need to manually or via a script maintain the prices, among others. If you have 5,000 products and 3 website currencies and one supplier currency then you need to perform 10,000 product updates per night to reflect the exchange rates -or- let the exchange rates slide. If you have multiple supplier currencies then it will make your head spin.

So we used a third party architecture on top of Magento which integrates all this together, plus DDP pricing, cogs and others. The primary issue is this, what you want is effectively what platforms such as Hybris, ATG, WebSphere provide. There are some extensions floating around you can try but you will find that as currencies and pricing is embedded deep in the core, any tiny change or difference in requirement will break the pricing.

Yes you can 'hack' it at the PayPal call, we did this years ago, but you will find your accounting being messed up and fx anomalies. The simple answer is, if you have to code anything in Magento you will cause either business issues or break the pricing - in the end this is 70% a business problem and 30% a technical problem.

  • Yes its more of business problem than technical one...i decided to go with multiple store views,let them handle the accounts problem – Manish Arora Jun 25 '14 at 9:31
3

Here is a FREE Magento Extension that supports PayPal payments for not supported currencies by PayPal.

https://github.com/Meabed/Paypal-Multi-Currency-Magento

First of all, we need to setup multi-currency shop (System -> Configuration -> GENERAL -> Currency Setup).

enter image description here

Then, we do necessary setup for PayPal Payment Method (System -> Configuration -> SALES -> Payment Methods).

enter image description here

After installing this module, you can go to System -> Configuration -> SALES -> Payment Methods -> Paypal Multi Currency and make necessary settings over there.

enter image description here

Here is the checkout page where you can see USD equivalent amount being displayed on Order Review step.

enter image description here

Finally, after the order is placed, the following information is displayed in Sales -> Orders in Magento admin/backend.

enter image description here

PS: The images above are taken from the extension's github.

0

There is an extension that worked for me, it not only works for paypal but for all the payment methods I had installed:

http://www.magentocommerce.com/magento-connect/store-currency-payment-checkout.html

the extension will process the payment in the store currency rather than the base currency. So if you see in the cart a totalization in AUD but you base currency is USD you will still charge and receive AUD in paypal or whatever payment gateway you use.

  • 1
    Single link answers are not the best. You should provide more details about what the extension does. – Marius Nov 19 '14 at 21:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.