Ingenico-ePayments / connect-extension-magento2

Ingenico Connect based Shopping Cart Extension for Magento 2.x
https://epayments.developer-ingenico.com/documentation/ecommerce-extensions/magento-2/
MIT License
4 stars 4 forks source link

Refund Issue with Ingenico-ePayments module #19

Closed marioestep closed 1 year ago

marioestep commented 3 years ago

Hello, we've come across and issue with this module.

We run a website with multiple currencies. The base currency of the website is Euro (€).

The moment the client purchases a product with a foreign currency, for example Dollar ($) and later on the client ask for a refund this is what happens in the website.

The clients currency, in our case Dollar is converted to Euro (the base currency of the website). And when the refund happens the base currency is converted to the clients currency.

Based on all these exchanges the client loses some money.

We don't want these exchanges to happen and we want our clients to be refunded the exact amount they have purchased in the website.

Magento 2 Version we use: 2.3.4 Ingenico Version: 2.4.5

Thank you

kanduvisla commented 3 years ago

Hi @marioestep ,

So if I understand you correctly:

Is the above scenario the problem you are facing? Or is it something else?

marioestep commented 3 years ago

Hi, yes, that's exactly it.

marioestep commented 3 years ago

If a client purchases something in their own currency, I don't want them to be part of the currency exchange till the moment the Order is Approved.

kanduvisla commented 3 years ago

@marioestep Thank you

I'll have to investigate this further since it looks like this is something that has to do with how the API is built and the fact that Magento can only perform a checkout with the base currency.

I'll keep you updated using this ticket.

marioestep commented 3 years ago

Thank you!

marioestep commented 3 years ago

Hello I'd like to add these two screenshots, these are real orders in our site.

First Screenshot

Screenshot_20210127-121239

Second Screenshot

-10000000094-Orders-Operations-Sales-Magento-Admin

Hopefully you get a better idea what seems to be the problem with the refund.

sergiuec commented 3 years ago

Is there any update on this issue? we have now another case but now the currency is USD and of course the refund amount is too large.

`HTTP/1.1 400 Date: Fri, 26 Feb 2021 15:28:33 GMT Server: Apache/2.4.39 (Unix) OpenSSL/1.1.1c X-Cnection: close Content-Type: application/json Connection: close Transfer-Encoding: chunked

{ "errorId": "603913a22bfcac80da8be6ff3e0a142d", "errors": [ { "code": "300430", "requestId": "xxxx", "message": "REFUND AMOUNT TOO LARGE", "httpStatusCode": 400 } ] } [] [] [2021-02-26 15:28:34] main.EMERGENCY: Unable to perform request using communicator configuration: The server returned an error. [] []`

Amount at backend of magento: View-Memo-for-Operations-Sales-Magento-Admin

Amount at ingenico backend is 507EURO

Ingenico-Shoppingcarts commented 3 years ago

@sergiuec I've been looking into the flow on our side Magento independent.

We manage orders consumer facing without effecting the total amount due to exchange rate. An order of $100,- can always be matched in refunds total of $100,-

Reflecting this to Magento we always use the base currency to process the transaction and the Display currencies are not used. This means if the base currency is EUR and the consumer views the product in Dollar. All communication to Ingenico. will be based on EUR. Authorization, Capture and Refund.

We are planning for 2021 to have a module to work with the display currency instead of base currency. This would mean implementing a sub-module. It is now targeted for Q3.

In order to do understand the history of the order, if it is on production. Please share the ID to our Merchant services.