I am using the commerce multi-currency module on a Commerce Kickstart 2.4 installation to allow the user to switch currencies and have the currency conversion working.

Default currency is EUR, USD & GBP have also been enabled.

The behavior when checking out is peculiar:

  1. When selected currency is EUR, WPS receives amount in EUR, OK
  2. When selected currency is USD, WPS receives amount in EUR again, at least the amount is correct (the original unconverted price from the site?)
  3. When selected currency is GBP, WPS fails with the following message

The link you have used to enter the PayPal system contains an incorrectly formatted item amount.

Based on 1 & 2, I would have thought that the CPP module uses always the original price, but case 3 indicates that the price in GBP is attempted to be passed to Paypal, but fails. How should this normally work? In default currency or current user currency?

I would have thought that Paypal definitely supports GB Pounds Sterling...

Let me know if any further information is needed. Thank you.

Comments

marktheshark’s picture

Note that I have the default currency set to EUR in the Paypal WPS settings as well:

Transactions in other currencies will be converted to this currency, so multi-currency sites must be configured to use appropriate conversion rates.

I have not checked:

Allow transactions to use any currency in the options list above.

marktheshark’s picture

This is a serious problem for charging in pounds, any update?

marktheshark’s picture

Title: Commerce Multi-currency + payment in GBP -> "Incorrectly formatted amount" » Unable to pay in Pounds Sterling -> "Incorrectly formatted amount"
Priority: Normal » Major

Updating issue title and priority

Stan Turyn’s picture

Select "Allow transactions to use any currency in the options list above" in the rule for Paypal payment method

marktheshark’s picture

It is my understanding that the module should always send the default currency (e.g. EUR) when this setting is disabled.

However, note that this still generates an error only for GBP and not for EUR or USD.

rudins’s picture

Problem: converted amount is not rounded to 2 decimal places.

Tmp solution http://drupal.org/node/1172028#comment-4715928

das-peter’s picture

Currently it doesn't look like we can cover such issues by architectural changes - thus following guidelines for payment gateways should apply: http://www.drupalcommerce.org/discussions/7670/design-pattern-payment-ga...

I hope we can get this into the official documentation soon.

rszrama’s picture

Version: 7.x-2.0-beta1 » 7.x-2.x-dev
Priority: Major » Normal
Status: Active » Fixed

I'm pretty sure I fixed this in response to an issue in Commerce itself, so please update to 2.x-dev and try again. If it's still an issue, I'd love to have more info so I can actually reproduce the problem. Nothing above really tells me what's going on or how to reproduce it. Turn on IPN logging, too, and report the actual parameters being sent to PayPal and response being returned.

The commit: http://drupalcode.org/project/commerce_paypal.git/commitdiff/5481b53

marktheshark’s picture

I'm using Kiskstart. Is this change included in the latest CK dev?

rszrama’s picture

Nope, because there hasn't been a new release of this module yet incorporating the change. You can just update to dev independently.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

marktheshark’s picture

Latest dev appears to be solving the problem, thanks. Would recommend it to become part of the non-dev releases and Commerce Kickstart as well.

marktheshark’s picture

By the way, updated to latest Kickstart, forgot that the fix is still not included in Commerce Paypal bundled with Kickstart and all payments with USD currency failed for my site.

Isn't it time this fix got included in the stable line?

rszrama’s picture

Release schedules being what they are, sure... but it's gonna be two more weeks until Kickstart has a 2.9.