[Omise] Video 8. Partial and multiple refunds from the Magento side

0:00:02
Refunds are bad: Omise will charge you 3.65% + VAT for a refund.

0:00:03
You can avoid refunds by using the «Authorize» payment action instead of «Capture»: see it in my previous videos.

0:00:06
But sometimes refunds are happen even if you preauthorize your transactions and carefully review them before capturing.

0:00:07
In the previos videos I have shown how to make the full refund for an order (from the both Magento and Omise sides).

0:00:09
In this video I will show how to make a partial refund and multiple refunds from the Magento side.

0:00:11
You can do it from the Omise side too, it will be shown in the next video.

0:00:13
So, let’s place a test order with 3 products. I will then refund them one-by-one.

0:00:18
For the simplicity, the extension is set up to auto capture the payments (without the preauthorization stage).

0:00:25
The order is placed, and the payment amount is captured from the customer’s bank card.

0:00:28
The customer can see the order and its invoice on his account page.

0:00:36
Let’s review the order in the Magento 2 backend.

0:00:53
Let’s review the payment (charge) in the Omise dashboard.

0:00:56
The charge is in the «Successful» state, and it is captured.

0:01:01
Let’s continue to review the order in the Magento backend.

0:01:05
An invoice has been created, and it has the «Paid» status.

0:01:07
There are 2 transaction entries: for an initial charge API request, and for a 3D secure confirmation event.

0:01:09
The initial charge API request.

0:01:14
The 3D secure confirmation event.

0:01:21
There are 2 ways to refund a payment: from the Magento backend and from the Omise dashboard. Let’s check the first way.

0:01:24
To refund a payment from the Magento 2 backend, you need to open its invoice and create a credit memo for it.

0:01:37
You can choose the items you want to refund.

0:01:41
I will refund a single item. So it will be a partial refund.

0:01:48
You can also refund the shipping cost.

0:01:50
Then you can adjust the total refund amount using the «Adjustment Refund» (to refund more) and «Adjustment Fee» (to refund less) fields.

0:01:54
Then you press the «Refund» button, an API request is made to Omise.
Also, Magento updates all the sales documents for the order.

0:01:59
The refund is made. Let’s check the order.

0:02:14
Then, let’s check the payment (charge) in the Omise dashboard.

0:02:20
The Omise dashboard shows that the charge is partially refunded.

0:02:31
Let’s continue to review the order on the Magento side.

0:02:35
Let’s check the order in the customer’s frontend account.

0:02:39
The «Refunds» tab has been added. It lists the refunded items.

0:02:44
The «Items Ordered» tab lists all the items, and it marks the refunded ones.

0:02:55
Let’s check the «Credit Memo» document in the Magento backend.

0:02:59
It has the «Refunded» status.
Due to a Magento 2 core bug, the grid wrongly denominates the base currency.

0:03:02
Let’s make the second refund.

0:03:10
The «Items to Refund» table shows only the eligible to refund items.
It does not show the already refunded items.

0:03:14
I will refund a single item.
So it is another partial refund.

0:03:35
The refund is made. Let’s check the order.

0:03:51
Then, let’s check the payment (charge) in the Omise dashboard.

0:03:57
The refunded amount is increased.

0:04:01
The «Refunds» block lists both the refund API requests.

0:04:03
Let’s check the order in the customer’s frontend account.

0:04:08
The «Refunds» tab lists the both refunds.

0:04:19
The «Items Ordered» tab lists all the items, and it marks the refunded ones.

0:04:28
Let’s check the «Credit Memo» documents in the Magento backend.

0:04:32
There are two there.
Due to the a Magento 2 core bug, the grid wrongly denominates the base currency.

See also: