I see a number of issues reported that if an administrator sends a partial refund to a customer via Paypal then Magento receives an IPN that causes the whole order to be marked as Refunded (e.g. https://collaborate.magento.com/magento/topics/paypal_refunds_and_automatic_credit_memo_generated).
Is it possible to issue a partial refund by creating an Online Credit Memo within the Magento invoice view?
What is the best approach for this scenario? Please note that this applies to Paypal Standard (not Express or other integrations).
Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.
We ended up coding a module to rewrite the core IPN Model which suppresses the automatic creation of Credit Memos when a Paypal Refund is issued. Instead, it adds an Order Comment with the Paypal Transaction ID (for reconciliation) and raises an Admin Notification that the administrator should manually create an Offline Credit Memo to correlate with the monies refunded at Paypal. This allows the administrator to mark the appropriate Order Items as Refunded, apply alterations to the amount (Adjustment Fees, etc). This is now working happily in production and can be reviewed in our Github repo.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0