I have installed Braintree payment extension(v3.0.0) on Magento1.14.1.0 and did all the configurations.
Currently I am using sandbox account. I placed few orders, captured payments and did refunds but while checking transactions in admin > order details page, it is not showing refund transaction entries.
Is this a default behavior of this extension? Can we customize to display all transactions?
Hi @Megha
1) Make sure at the time of refund an order, you were still using Sandbox account.
2) BrainTree use following status for refund transaction. You can check here
3) If you are looking for something to customize this link will help you.
I hope these link can help you.
Thanks
--
If my answer is useful, please Accept as Solution & give Kudos
@MeghaThings to check:
1. Is your refund was successful?
2. Refund transaction does not shows up only for the Braintree PG?
3. Try an offline refund and see if that shows up.
This will help you decide in knowing if Braintree is culprit or you are having some other issue.
Problem solved? Please give 'Kudos' and accept 'Answer as Solution'.
Thanks Tarandeep,
I got the solution and implemented it.
Thanks Pankaj for checking
I got the solution and implemented it.
@MeghaIf you can put the solution here in the thread would be helpful in future for anyone else face the similar issue.
Problem solved? Please give 'Kudos' and accept 'Answer as Solution'.
Magento needs transaction id to save any transaction in `sales_payment_transaction` table but while debugging I found that Braintree module is not setting transaction id received from Braintree against object for Refund transaction. So I just set it by customizing method and it starts working.
File: \app\code\community\Gene\Braintree\Model\Paymentmethod\Abstract.php
Function: refund()
Changes Made: Around line no 165
Replaced
if ($result->success) { // Pass over the transaction ID $payment->getCreditmemo()->setRefundTransactionId($result->transaction->id);
with
if ($result->success) { // Pass over the transaction ID $payment->getCreditmemo()->setRefundTransactionId($result->transaction->id); $payment->setTransactionId($result->transaction->id);
Thanks,