News:

Support the VirtueMart project and become a member

Main Menu

Multi-currency store : wrong currency on paypal interface

Started by fafiou, January 06, 2009, 02:02:50 AM

Previous topic - Next topic

fafiou

Hi folks,

Joomla! 1.5.8
VM 1.1.2
Currencies accepted: CHF, EUR and USD
Default currency in the store: CHF


My problem is seen a lot of times into the forum and solved sometimes, but the solutions that I've seen don't work in my case.


Description of the bug:
If I confirm order after the checkout without changing currency, emails display prices into CHF currency (ex: 40 CHF) but Paypal displays the same amount in USD (40 USD).

If I use the currency converter before to confirm order, the PayPal currency is ok (CHF in my example).

I've changed the code into Extra file info of the Paypal payment method as mentionned into several topics.

"currency_code" => $_SESSION['vendor_currency'],
remplaced by
"currency_code" => $_SESSION['product_currency'],

But the problem is not solved.
And I'm not alone in this case as I've seen in a lot of topics.


It's a very serious bug and I need some help.
I can't believe that a such bug is not already fixed by a VM genius.


Then If you have some advices, I don't say no ;)

Thank you.

weeonesbyjajoc

#1
I too am having this same issue, but from CAD to USD.

Anyone?  Some how I think there is just something quick and easy I'm missing but can't seem to find it anywhere.

HELP!


I have fixed this problem simply by changing the php code for the paypal module as per the previous posters mention of changing the currency from

"currency_code" => $_SESSION['vendor_currency']

to

"currency_code" => $_SESSION['product_currency']

This seems to be working fine now.

weeonesbyjajoc

Now the problem seems to be reversed.  A US Customer checks out in CAD and the paypal payment gets sent to me in USD.  Clearly the above didn't fix the problem only switched the problem.  Why isn't the currency being set by what the customer chooses?  Anyone?

ufo_hk

Joomla! 1.5.8 (and 1.5.9) on three sites all configured similarly.
VM 1.1.2
Currencies accepted: NZ, EUR, USD and AUD
Default currency in the store: NZ

Paypal script code also changed:
"currency_code" => $_SESSION['vendor_currency']
to
"currency_code" => $_SESSION['product_currency']

Order is always placed with paypal as USD until currency change is confirmed. Once currency has been changed all further orders from that browser session are correct in terms of currency submitted to paypal.

As per original post it would seem that this is a confirmed "bug", although looking through the bug tracker list I don't see anything listed associated with this issue.

It would be great to know if the issue is being dealt with and there is a fix other that making site default currency US. Is it a fix in 1.1.3 expected soon?


scotsit

I am having the same problem on a Euro default site where customers can choose GBP or USD. Whatever happens, if customers try to pay in anything other than the default currency, paypal always gets an incorrect value regardless of how well it looks in VirtueMart.

This item and similarly titled ones are scattered across the forum. Any chance a Moderator can get this into a single topic and promote this issue for a fix?

CB11

I am having similar problems.

The default currency on my website is AUD and we offer the Virtuemart currency selector.

If a customer changes the currency e.g. from AUD to USD, it looks to be OK in the purchase order email but in PayPal it will display in AUD but the USD amount so we are charging our customers less.

The error message we get from PayPal is:
During a paypal transaction on your site the received amount didn't match the order total.
                   Order ID: 51.
                   Order Number: 9_8c1f9448edb8f706bfd7b2ec6cef56.
                   The amount received was: 101.47 AUD.
                   It should be: 101.47 USD.

Can anyone advise whether this is a PayPal setting issue or a virtuemart issue?

Thankyou

cynvill

hi,

I'm having the same problem here. Did anyone figure out a solution?

Thanks,

Cynthia

Icewraithuk

Same problem here - any news on a fix or getting this escalated?

Glenis

I found the method above by weeonesbyjajoc works (on my test runs) . Thanks weeonesbyjajoc !

"currency_code" => $_SESSION['product_currency']

In Paypal I have listed all of the currencies I use ie USD,GBP, AUD, NZD - maybe that's everyone's problem?

Webdongle

mmmmmmmmmm  perhaps there is a reason for this.

Banks take commission on exchange rates.  Therefore, when a customer orders while seeing their price but your currency/price goes to the gateway then the first commission is payed by the customer.  And the gateway then pays you your price less their charge for the sevice.

But if the recieve the request in your customers currency then they convert it to yours.  Because banks have two exchange rates (one for buying and one for selling) you will get your price minus commission and minus the charge for the service.

?????????  just a thought ?????????
When I'm right no one remembers but when I'm wrong no one forgets  :'(

Glenis

There is only one Paypal fee.
Well it did work but now I have a problem with the Shipping and Handling.  S & H works fine in the default currency but when using the conversion it is correct when you get to the final confirmation page but when you click the confirmation link and go to Paypal it changes the amount, and depending on the currency it can be more or less than the final confirmation page. 
The client confirmation email is in the new amount as well.  Seems to be doing a double conversion somewhere.  Converts once at the checkout stage and again at the confirmation stage.

Any ideas? Solutions?

Webdongle

Quote from: Glenis on February 28, 2009, 04:46:08 AM
....... Converts once at the checkout stage and again at the confirmation stage.

Any ideas? Solutions?

Paypal is a bank and banks work on two exchange rates buy and sell

"About the Full Universal Currency Converter
The Full version of Universal Currency Converter, the world's most popular currency tool, lets you to perform currency and foreign exchange rate calculations using live, up-to-the-minute mid-market currency rates."
http://www.xe.com/ucc/full/
When I'm right no one remembers but when I'm wrong no one forgets  :'(

Icewraithuk

Hi,

A bit more detail on the problem...
My site is based in the UK and all my prices are in GBP, I offer a currency convertor to allow customers to see the prices in USD or EUR.

with "currency_code" => $_SESSION['vendor_currency'],
If a customer chooses to see prices in USD or EUR and then goes through checkout, PayPal will pay me the amount they had in their curreny (say $23.35) in GBP (I get £23.35) - this is obviously not great for my customers!

If I make this change:
"currency_code" => $_SESSION['vendor_currency'],
replaced by
"currency_code" => $_SESSION['product_currency'],

it all looks good, but now it seems that when a customer tries to checkout in GBP, everything looks right, except I receive the GBP amount in USD (So if it was £16.35 I get $16.35) - this is obviously very bad for me :)

For the moment, I am going to remove the facility to allow multiple currencies, but would really like a solution to this?

Webdongle

Quote from: Icewraithuk on March 03, 2009, 15:05:50 PM
Hi,

A bit more detail on the problem...
My site is based in the UK and all my prices are in GBP, I offer a currency convertor to allow customers to see the prices in USD or EUR.

with "currency_code" => $_SESSION['vendor_currency'],
If a customer chooses to see prices in USD or EUR and then goes through checkout, PayPal will pay me the amount they had in their curreny (say $23.35) in GBP (I get £23.35) - this is obviously not great for my customers!

If I make this change:
"currency_code" => $_SESSION['vendor_currency'],
replaced by
"currency_code" => $_SESSION['product_currency'],

it all looks good, but now it seems that when a customer tries to checkout in GBP, everything looks right, except I receive the GBP amount in USD (So if it was £16.35 I get $16.35) - this is obviously very bad for me :)

For the moment, I am going to remove the facility to allow multiple currencies, but would really like a solution to this?

They buy at one rate and sell at another so make commission on both transactions.  The currency converter uses a rate inbetween the two for comparison purposes.

Therefore when the customer is looking at the converted price they are not seeing the buying price of the bank.  The price that the currency converter is for comparision purposes only.

Paypal will only allow calculation of their exchange rate for people buying through their Paypal account.  They will not disclose their exchange rate for people who pay using credit/debit cards.
https://www.paypal.com/helpcenter/main.jsp;jsessionid=JtSDGR1Vxf43rMRkmPnnrQTF5hLvqmNGN8vRnvpFyCHrJ92GMgQD!-503516583?locale=en_GB&_dyncharset=UTF-8&countrycode=US&cmd=_help-ext&serverInstance=9005&t=solutionTab&ft=&ps=solutionPanels&solutionId=17628

When i get my site up and running i will stick to £.  There will be a page on the site explaining about exchange rates with links pointing to a site that displays exchange rates.  There will also be a disclaimer that the exact rate will be calculated at the time of the transaction.
When I'm right no one remembers but when I'm wrong no one forgets  :'(

Icewraithuk

Sorry, I think you may have missed the point about my post - it's not about currency conversion, per se...

The point is, in the first example, the amount gets passed to PayPal as <currency type><amount in GBP> and in the second example it gets passed to PayPal as <USD><amount in whatever currency they have selected>

PayPal never gets a chance to do the conversion - it just either processes the transaction in whatever currency has been passed with the wrong amount (option 1) or in USD with the wrong amount. It's only when it lands in my account that it does any kind of conversion - this is about what happens before that.

I would be quite happy to accept, if my site did the conversion and came up with $23.50 and PayPal converted that back to a slightly lower amount in GBP when it landed in my account, but that's not what's going on here.

Let me try and make a better example...

Option 1:
3 items in the basket, values = 16GBP, 16.35EUR, 18.50USD
I will get paid 16GBP if customer had GBP selected, 16.35GBP if the customer had EUR selected or 18.50GBP if the customer had USD selected - nothing to do with PayPal conversion, it's Virtuemart passing the details badly

Option 2:
Same items/prices
I will get paid 16USD if the customer had GBP selected, 16.35USD if EUR or 18.50USD if they had USD selected - again, Virtuemart passing the wrong currency type to PayPal.

Hope that's a bit clearer?