Home » Magento9 August 2010

Magento: PayPal Website Payments Standard not displayed

Problem:

PayPal payment method is not displayed in payment method section of onepage checkout in Magento.

I am using “PayPal Website Payments Standard“.

I have enabled this module from backend.

System -> Configuration -> SALES -> Payment Methods -> PayPal Website Payments Standard.

Cause:

The possible cause is because base currency of your shop is not supported by PayPal.

You can find the Paypal supported currencies in app/code/core/Mage/Paypal/Model/Config.php:

If your currency code is not in the above list then your currency is not supported by Paypal. And, this is the reason why you are not seeing Paypal payment methods on Checkout page.

Solution:

As a workaround, you can add your currency to the $_supportedCurrencyCodes array. For example, I have added NPR as the supported currency code below:

After this, Paypal payment method will be displayed in the Checkout page.

Change currency code sent to Paypal

To change the data sent from your site to Paypal, you have to modify getStandardCheckoutFormFields() function of Mage_Paypal_Model_Standard class (app/code/core/Mage/Paypal/Model/Standard.php). This function returns an array ($rArr) with some necessary parameters. You need to change the value of ‘currency_code‘ and ‘amount‘ of the array. Currency_code can be any currency code that is supported by PayPal and Amount must be converted from your base currency to that particular currency code.

Hope this helps. Thanks.

Magento

Get New Post by Email

Find me on

FacebookTwitterGoogle+LinkedInRSS Feed
  • Newberemis

    Cuando haces pruebas con sandbox pon a ==> Debug Flag = No a mi tampoco me funcionaba pero ahora si me funciona

  • Yes, you are very much right, you cannot open a PayPal account for Charity, if your charity is registered in India, same thing happened with me also, I applied a Charity account for my client and after completing all the formalities they just denied for the account.
    I have a suggestion for you, apply for a normal account with some other website and then use it for your Charity website, I have list of websites who are doing the same thing.
    You can also try some other Payment Gateways like CCavenue, but in case you are using Vbulletin script, I don’t think so that it may help you. The first suggestion may work for you.

  • Suzie

    You’ve got a great magento tutorials. Thanks. I got a doubt about the above post….
    Where do I find this “The above code is present in the class Mage_Paypal_Model_Standard. You can add your shop’s base currency code to the array.”
    Can you please be more specific as to where and how I should change it “you have to modify getStandardCheckoutFormFields() function of Mage_Paypal_Model_Standard class. This function returns an array ($rArr) with some necessary parameters. You need to change the value of ‘currency_code‘ and ‘amount‘ of the array.”

    My customers are in India (Rs.). Bank account in US. I would like to enter prices in Rs. in “Catalog” >Manage Products> Prices. Please help! Thanks – Suzie

  • Vinsanity68

    Mukesh, I need help on this topic. I am using magento 1.4.1.1 and protected $_allowCurrencyCode is not in the Standard Class.

  • It’s in Mage_Paypal_Model_Config class. And it’s in $_supportedCurrencyCodes variable.

    In Magento 1.4.*, you have to rewrite the following classes:-

    – Rewrite Mage_Paypal_Model_Config class to allow Your Currency as supported currency.
    – Rewrite Mage_Paypal_Model_Standard class to change the array parameters sent to Paypal.

    Thanks.

  • COBAY

    very useful posting !
    thank you !

  • COBAY

    thak you for kindly answer.

  • COBAY

    the below is example of your override class.

    class [your-package-name]_[your_module_name]_Model_Standard extends Mage_Paypal_Model_Standard {

    public function getStandardCheckoutFormFields(){
    $arr_paypal = parent::getStandardCheckoutFormFields();

    $original_currency_code = $arr_paypal[‘currency_code’];
    $original_amount = $arr_paypal[‘amount’];

    //convert from original amount to target amount
    //……..you should put converting code here
    //$converted_amount = ~~~~~~~~~;

    //converted value
    $arr_paypal[‘currency_code’] =’USD’; //one of paypal supported currencies.
    $arr_paypal[‘amount’] =$converted_amount;

    Mage::log(print_r($arr_paypal,true)); // [home]/var/log/system.log

    return $arr_paypal;
    }

    }

  • Sonia Reynold

    Hi anyone can tell where I can write the currency conversion code. I couldnt see no appropriate place in  Mage_Paypal_Model_Standard class to insert the code, am using Magento ver. 1.4.2.0

  • Cem BEYAZ

    If you edit /app/code/core/Mage/Paypal/Model/Config.php file you will see the country codes in line 208.

    Original Code
    protected $_supportedCurrencyCodes = array(‘AUD’, ‘CAD’, ‘CZK’, ‘DKK’, ‘EUR’, ‘HKD’, ‘HUF’, ‘ILS’, ‘JPY’, ‘MXN’,
    ‘NOK’, ‘NZD’, ‘PLN’, ‘GBP’, ‘SGD’, ‘SEK’, ‘CHF’, ‘USD’, ‘TWD’, ‘THB’);

    Modified Code for Turkish Liar
    protected $_supportedCurrencyCodes = array(‘AUD’, ‘CAD’, ‘CZK’, ‘DKK’, ‘EUR’, ‘HKD’, ‘HUF’, ‘ILS’, ‘JPY’, ‘MXN’,
    ‘NOK’, ‘NZD’, ‘PLN’, ‘GBP’, ‘SGD’, ‘SEK’, ‘CHF’, ‘USD’, ‘TWD’, ‘THB’, ‘TRY’);

    You will see the PayPay in Payment but I dont test it wether working or not.

  • Leo

    Hi all,
    Where should I make the corresponding changes for paypal express?

  • Shrikant Waghare

    thanks

  • Ashpreet Singh

    Thanks Kudos!!

  • I got your point, but could you pls explain below one briefly,

    :: Change currency code sent to Paypal

    To change the data sent from your site to Paypal, you have to modify getStandardCheckoutFormFields() function of Mage_Paypal_Model_Standard class (app/code/core/Mage/Paypal/Model/Standard.php). This function returns an array ($rArr) with some necessary parameters. You need to change the value of ‘currency_code‘ and ‘amount‘ of the array. Currency_code can be any currency code that is supported by PayPal and Amount must be converted from your base currency to that particular currency code. ::

  • I am using magento 1.9.2.3, could you pls explain how can i Mage_Paypal_Model_Standard.