This would allow us to refund just an affiliate fee that may have been charged in error.
For example, a user may create a duplicate curler profile by accident and be charged affiliate and membership fees for both.
The arbitrary partial refund doesn't solve this for the club, because it doesn't account for refunded affiliate fees in their remittance to the MA.
We need to add a flag to to order items to indicate if they've been refunded. I don't think we should automatically create the refund from an order item though, because you might have multiple order items on an order that you want to refund and you wouldn't want to do them separately (and send notification emails for each one).
Instead what we probably need to do is provide a list of checkboxes for each order item on the refund screen that lets the admin check off which order items the refund pertains to. If any of these boxes are checked though, then the amount of the refund needs to be equal to or greater than the total of all order items being refunded (including tax).
Problematic Use Case #1:
1. Curler purchased 2 leagues of different prices and received a 50% discount on the second league (2 league discount).
2. Curler tells the club they no longer want to play in the more expensive of the two leagues.
3. Admin refunds the more expensive league.
4. Curler still benefits from the 2 league discount on the cheaper league that wasn't refunded, and has only paid 50% of the amount.
Problematic Use Case #2:
Clubs have the ability to apply a fee based discount to leagues / products / competitions. For example, there could be a cheaper *members only* price for a bonspiel or a helmet. If a curler is benefiting from this discount and a club admin refunds their membership fee, then the curler is still benefiting from the discount they received for a fee that has been refunded.