We are relatively new to Shopify and are using it for both POS and online transactions. The refund functionality works well but we'd like to see for there to be exchange functionality added so an exchange for a different size or entirely different product could be done in a single transction. Currently you woud have to refund the original purchase and recharge the new item. My inquiry resulted in a new feature request but of course they probably wont move forward with it without additional merchants requesting the same and so I ask if you are interested in seeing exchange functionality developed and added please email email@example.com to request this feature. The more people we have asking for it, the more likely it will become possible.
Refund and exchange functionality issues have been widely discussed over last six months mostily in the POS forum section. Keep pushing as there are many voices requesting change and indications are good that issue on refunds and exchanges are to be addressed shortly. But never know until it is done. You may not have noticed yet that refunds does not report correctly. In your scenario above, when you refund a product within an order Shopify will still count the original sale as a revenue event. There is no negative sale recorded within shopify Product reports. Your order reports will show a fall in sales for the reunds but not on the day of the refund. Instead order sales reports will go back in time and lower the sale of an event already past as opposed to sowing negative sale event on the day of the refund. So sales in product reports will be different than sale in order reports and none of them will book the return on the date of the return unless it is a same day sale-return. There is a partial work around until fixed and that is to refund the entire order and then cancel the order. When an order is canceled then product sales reports will be reduced by the value of the canceled order. Unfortunately only entire orders can be cancelled not partial and there is no work aorund for Shopify going back in history and changing an order that already happened.
This issue has been debated at length in this forum and between certain merchants and shopify directly. My understanding is something may be rolled out within the next month to fix this. You may not have noticed yet but Product Sales reports do not yet adjust downward for refunds unless you subsequently cancel the order. Without canceling the order Shopify will continue to count it as a sale while and Order Reports can exclude uncancelled refunds if are paying for the unlimited plan but the Product Sales and Order Sales will still not equal. Also be aware that refunds/cancelation do not current get accounted for within the day of the refund/cancel; rather shopify currently goes back in time and changes the original order details. Again, I believe this may get fixed shortly but only time will tell.