Tim, I think I got it figured out.
Open the order, click refund, and you will notice, you can just put an amount in without touching the inventory. Put a note on there and have it mailed to the customer and click refund.
Heres a rough guide: https://docs.shopify.com/manual/your-store/orders/refund-order
I calculated the exact amount by adding the item in the cart and checking in the checkout section with the code applied, if you dont wanna do math :)
5 years later, is there a better way to do that?
Being able to apply a discount code on a placed order (if payment is not captured) should be an option available no?
Let us know if you plan to do that.
same issue here (just launched my online store, and 2 of the first 10 orders I've had this requirement) , here is what I've done, not sure if there is a better way:
1- I don't capture payments automatically (have it set as manual: i.e. payment processor authorises but I have to take action to take the money ... I did this step regardless to verify the accurary of the first orders)
2- I click on capture payments and only capture partial amount: (e.g. $10 promo code customer forgot to add to waive a delivery fee) ... annoyance is that the order shows partially paid, but it's a good order.
Any better way would be appreciated
I agree, I wish there was a better way to do this other than doing a manual refund. Most of our discount codes are one time use, so I technically don’t mind manually applying the discount afterwards if customer forgot, but the risk is they can still use the coupon again next time. I was happy to see Shopify now has the ability to edit orders after they are placed (remove and add items which then refunds the customer or sends them an invoice for the new balance). It seems it would now be an easy fix to be able to add discounts in the same way (when editing the order) so it’s not just a generic refund, but actually gets applied in the standard manner as if they had used it at checkout.
So still need to manually calculate the price difference? Would be nice to allow operator to add code for the customer to an existing order. That helps us to caculate the channels and accuracy.