Jump to content

Currency is not supported for PayPal 3.1.2 & Prestashop 1.5.0.17


luisgalvan

Recommended Posts

PayPal is giving the error 3.1.2 L_LONGMESSAGE0 -> Currency is not supported for Prestashop version 1.5.0.17. When I have a currency other than the 24 accepted by Paypal. Prestashop is not doing the conversion to U.S. $ as it did in version 1.4.8.3

 

In version 1.4.8.3, my default currency is RD$ (dominican pesos) or or any other currency and in the checkout process Prestashop done correctly the conversion to U.S.$.

 

In Module / Payment, Currency restrictions I have to indicate "mandatory" one of the options:

- Customer currency

- Shop default currency

 

This did not happen in version 1.4.8.3

 

Anyone have a solution to fix this problem?

Link to comment
Share on other sites

  • 3 weeks later...

Conclusion, we are forced to look for another e-commerce software solution for all of us in countries that do not use one of the currencies accepted by PayPal, because prestashop and / or paypal module can not make the conversion to one of these currencies automatically.

Yes I must say it is a bit disappointing that prestashop is not responding to our questions because paypal does work with unsupported currencies in older version of Prestashop and older PayPal module - So that means they should be able to make it work again. I have two shops, one on prestashop 1.4 and one on 1.5. The shop on 1.4 has working Paypal module and I make a lot of sales from PayPal users. - Unfortunately I have spent to much time building the new store around Prestashop 1.5 so I do not want to start over with the older version of prestashop. - However, if you really need paypal, this is something you can do. I still think even the order version of prestashop is much better than most other free eCommerce platforms out there.
  • Like 1
Link to comment
Share on other sites

  • 2 months later...

This is really freaking disappointing! I've started developing a new webstore on PS 1.5.3.1 and the damn PayPal module won't convert my non supported currency to $. This used to work on PS 1.4.9.

What the hell is wrong with PS developers!? I had so soo sooo many headaches in the last month due to PS 1.5! It's worst than 1.4.9 but I can't downgrade now cause the store is almost done. Gonna stick with 1.4.9 in future projects or switch to some other e-commerce platform!

Btw I managed to come up with a temporary workaround for the L_LONGMESSAGE0 -> Currency is not supported error.

First I've added the US Dollar as a second currency (but NOT the default one).

I've hooked the Currency Block into the Top of payment page hook.

This is possible by adding this extra code to blockcurrencies.php:

 

public function hookDisplayPaymentTop($params)
{
if ($this->_prepareHook($params))
return $this->display(__FILE__, 'blockcurrencies.tpl');
}

And then edit blockcurrencies.css to place the currency block exactly wherever you want. I placed it just to the right of the PayPal checkout option. And above you can specify to the clients that then need to switch the Currency before they can pay using PayPal.

 

This workaround should not be an option! Wtf is wrong with PS developers!?!?

  • Like 1
Link to comment
Share on other sites

Thanks dpcdpc11 . I might try you workaround in the meantime. I am in exactly the same boat as you. I cannot afford to downgrade back to 1.4 because I have spent too much time, effort and money on getting my 1.5.1 shop to where it is now. I have been running it without PayPal payment option for months now due to this problem and it has defenitely affected my sales.

 

Come on PS developers. Please help us out here.

Link to comment
Share on other sites

thanks for the link but I can confirm your experience that it's not working with this version (3.4.4) either.

It does work only if you set the default currency to something like Dollar or Euro and only if you convert the currency into a compatible one before using the PayPal button (using for example my temporary solution presented above).

I wonder if we could hard code the paypal module to make this conversion just before the payment, which is actually java script code??

javascript:setCurrency(3)

Of course this would be a workaround as well... someone has to fix this damn paypal module so we can use it with currencies not officially supported by paypal! It freaking used to work before... what the hell change something that was working just fine??

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

Hey guys I'm also having that same problem, I have a few other online shops in older versions of Prestashop and the paypal module works perfectly for non-supported currencies. But the same as you I have built a new shop on 1.5.3.1 and now I'm stuck!! is there something on github about this?

Link to comment
Share on other sites

  • 2 weeks later...

I have made some tweaks to make this works, but not a full solutions, just a temporary solutions. ermm...i mean not an elegance solution... but anyway. If you want to try it out...

 

first you must set a US$ currencies.

 

make sure you install the currencies blok module.

 

And then set in BO->Modules->Payment

Currencies Restrinction

 

All currecies is checked, and Customer currency is also checked on the PayPal.

 

and then you have to know the ID of your US currencies (in this example it will be 2). just hover your mouse cursor over the currencies blok for the $ it will show in the status bar of the browser ->javascript:setcurrencies(2) for example, 2 will corelate to the us $.

 

Then you have to edit express_checkout_payment.tpl in your paypal module and change the codes to codes below.

 

{*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2013 PrestaShop SA
*  @license	http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*}
<p class="payment_module">
{if $cookie->id_currency == 2}
  <a href="javascript:void(0)" onclick="$('#paypal_payment_form').submit();" id="paypal_process_payment" title="{l s='Pay with PayPal' mod='paypal'}">
{else}
  <a href="javascript:setCurrency(2);" id="paypal_process_payment" title="{l s='Pay in US$ using PayPal ' mod='paypal'}">
{/if}
 {if isset($use_mobile) && $use_mobile}
  <img src="{$base_dir_ssl}modules/paypal/img/logos/express_checkout_mobile/CO_{$PayPal_lang_code}_orange_295x43.png" />
 {else}
  {if isset($logos.LocalPayPalHorizontalSolutionPP) && $PayPal_payment_method == $PayPal_integral}
{if $cookie->id_currency == 2}
<img src="{$logos.LocalPayPalHorizontalSolutionPP}" alt="{$PayPal_content.payment_choice}" height="48px" />
{else}
   <img src="{$logos.LocalPayPalHorizontalSolutionPP}" alt="PayPal payment only support US$, please click here to change to US$ to continue checkout in PayPal" height="48px" />
   {/if}
  {else}
 {if $cookie->id_currency == 2}
<img src="{$logos.LocalPayPalLogoMedium}" alt="{$PayPal_content.payment_choice}" />
{else}
<img src="{$logos.LocalPayPalLogoMedium}" alt="PayPal payment only support US$, please click here to change to US$ to continue checkout in PayPal" />
{/if}
  {/if}
  {if $cookie->id_currency == 2}
  {$PayPal_content.payment_choice}
  {else}
PayPal payment can only support US$, please click here to change to US$ to continue checkout in PayPal
  {/if}
 {/if}

</a>
</p>
<form id="paypal_payment_form" action="{$base_dir_ssl}modules/paypal/express_checkout/payment.php" data-ajax="false" title="{l s='Pay with PayPal' mod='paypal'}" method="post">
<input type="hidden" name="express_checkout" value="{$PayPal_payment_type}"/>
<input type="hidden" name="current_shop_url" value="{$PayPal_current_shop_url}" />
</form>

 

 

if your currencies ID for the $ is different then search this line $cookie->id_currency == 2, and change the 2 to any number related to your ID for the us $.

 

then on the checkout page, if your currencies is not $, by clicking paypal checkout will change the currencies to $ and let the customer to review the changes, before they are really checkout to paypal.

 

Hope it helps.

Edited by Japri (see edit history)
  • Like 1
Link to comment
Share on other sites

I think this allso will work:

 

in paypal module express_checkout/process.php line 102

 

$this->currency = new Currency((int)$this->context->cart->id_currency);

 

change to:

 

$this->currency = new Currency((int)$this->context->cart->id_currency=2);

 

where 2 is currency id

  • Like 3
Link to comment
Share on other sites

I think this allso will work:

 

in paypal module express_checkout/process.php line 102

 

$this->currency = new Currency((int)$this->context->cart->id_currency);

 

change to:

 

$this->currency = new Currency((int)$this->context->cart->id_currency=2);

 

where 2 is currency id

 

Finally a simple yet clever solution! Thank you mehnihma!!! I can confirm that it works! I'm using the Express Checkout and not the Standard 5 steps.

Link to comment
Share on other sites

I think this allso will work: in paypal module express_checkout/process.php line 102
 $this->currency = new Currency((int)$this->context->cart->id_currency); 

change to:

 $this->currency = new Currency((int)$this->context->cart->id_currency=2); 

where 2 is currency id

 

Thank you, it solved my problem! :)

Link to comment
Share on other sites

  • 5 weeks later...

I think this allso will work:

 

in paypal module express_checkout/process.php line 102

 

$this->currency = new Currency((int)$this->context->cart->id_currency);

 

change to:

 

$this->currency = new Currency((int)$this->context->cart->id_currency=2);

 

where 2 is currency id

 

100% works!!

Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...
  • 1 year later...
  • 4 months later...

We're continuing to loose clients how don't know/don't want to know how to change the currency.

 

The fix is simple but with the last versions of the module it don't work. @202eccomerce have to implement the fix in the new versions because IT'S a MUST.

We could have an option in the backend of the module to check to which currency to convert if the checkout currency is unsupported by PayPal's API.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...