<p><strong>Update:</strong></p>

<p>Commerce 2 now supports partial refunds for payment gateways that support partial refunds.</p>

<hr>

<p>Partial refunds on Commerce is definitely on our radar... it's the 8th most requested feature here: <a href="https://github.com/craftcms/commerce/issues" rel="nofollow noreferrer">https://github.com/craftcms/commerce/issues</a></p>

<p>Unfortunately, it's pretty impractical right now in Commerce 1 with our reliance on the <a href="https://omnipay.thephpleague.com/" rel="nofollow noreferrer">Omnipay</a>  ibrary for all of our payment gateways. They support the "lowest common denominator" and since many of the gateways they support don't support partial refunds, they don't support it at all.</p>

<p>The upcoming Commerce 2 makes Onmipay an optional requirement... meaning that it's much easier to write a plugin for an arbitrary gateway and add support for the ones that support partial refunds.  For example, the 1st party Commerce 2 <a href="https://stripe.com" rel="nofollow noreferrer">Stripe</a> plugin implements it and can be used as an example for other payment gateway plugis.</p>

<p>None of that doesn't help you now, though. You can always do a partial refund directly with the gateway if they support it (Stripe, Sagepay, etc.), but the downside is that won't sync back to Commerce 1 so order totals/inventory/etc. won't be updated on our end.</p>

<p>If the payment gateway has callback hooks for that type of thing, you can write a plugin that helps alleviate some of these issues, but none of it is a really clean solution.</p>

CC BY-SA 3.0
2018-02-14T10:22:58.507Z
thanks for your reply!
Is there a release date set for Commerce 2? would love to get started with this.
tomlaan
CC BY-SA 3.0
2018-02-15T17:20:35.547Z
We should have a public beta out in the next few weeks.
Brad Bell
CC BY-SA 4.0
2018-02-14T02:19:39.623Z
2018-11-16T23:20:31.590Z
2018-11-16T23:20:31.590Z
Brad Bell
<p>For Commerce 1, you may use the <a href="https://superbig.co/plugins/refund" rel="nofollow noreferrer">Refund</a> plugin with Stripe and Authorize.net.</p>

CC BY-SA 4.0
2018-05-28T09:47:37.333Z
2018-05-28T09:47:37.333Z
Fred Carlsen
<p>Is there a simple way to handle returned or partially returned orders in Craft Commerce?
I'm building a site for a shop that has to deal with a lot of returned orders (woman's dresses).</p>

<p>A very common situation would be: 
- A customer orders a product in 3 different sizes
- The customer returns 2 of those sizes and keeps the correct size</p>

<p>What would be a good way to handle this in Craft Commerce?</p>

<p>Since all the items in the shop have a limited stock it's a lot of manual work to go to every individual single item and change the stock quantity for every returned item. Is the possible to re-add the returns items to the stock in an easier way?</p>

<p>Is it possible to partially refund and order?</p>

<p>Also, the total revenue overview on the dashboard displays the total amount of all orders and doesn't keep track of refunded items. Can this be changed?</p>

<plugin-craftcommerce>
Craft Commerce returned orders stock and refund handling
# Craft Commerce returned orders stock and refund handling

(Asked by: username_0 on 2018-02-13)

Is there a simple way to handle returned or partially returned orders in Craft Commerce?
I'm building a site for a shop that has to deal with a lot of returned orders (woman's dresses).

A very common situation would be:
- A customer orders a product in 3 different sizes
- The customer returns 2 of those sizes and keeps the correct size

What would be a good way to handle this in Craft Commerce?

Since all the items in the shop have a limited stock it's a lot of manual work to go to every individual single item and change the stock quantity for every returned item. Is the possible to re-add the returns items to the stock in an easier way?

Is it possible to partially refund and order?

Also, the total revenue overview on the dashboard displays the total amount of all orders and doesn't keep track of refunded items. Can this be changed?

**Tags:** plugin-craftcommerce


---

## 2 answers

### Answer by username_1 on 2018-02-14. Score: 1

**Update:**

Commerce 2 now supports partial refunds for payment gateways that support partial refunds.

---

Partial refunds on Commerce is definitely on our radar... it's the 8th most requested feature here: <https://github.com/craftcms/commerce/issues>

Unfortunately, it's pretty impractical right now in Commerce 1 with our reliance on the [Omnipay](https://omnipay.thephpleague.com/) ibrary for all of our payment gateways. They support the "lowest common denominator" and since many of the gateways they support don't support partial refunds, they don't support it at all.

The upcoming Commerce 2 makes Onmipay an optional requirement... meaning that it's much easier to write a plugin for an arbitrary gateway and add support for the ones that support partial refunds. For example, the 1st party Commerce 2 [Stripe](https://stripe.com) plugin implements it and can be used as an example for other payment gateway plugis.

None of that doesn't help you now, though. You can always do a partial refund directly with the gateway if they support it (Stripe, Sagepay, etc.), but the downside is that won't sync back to Commerce 1 so order totals/inventory/etc. won't be updated on our end.

If the payment gateway has callback hooks for that type of thing, you can write a plugin that helps alleviate some of these issues, but none of it is a really clean solution.

> **Comments:**
> **username_0**: thanks for your reply! Is there a release date set for Commerce 2? would love to get started with this.  
> **username_1**: We should have a public beta out in the next few weeks.  

---

### Answer by username_2 on 2018-05-28. Score: 1

For Commerce 1, you may use the [Refund](https://superbig.co/plugins/refund) plugin with Stripe and Authorize.net.


---

