Support the VirtueMart project and become a member

Main Menu

Paypal partial refund cancels whole order

Started by dmb, June 13, 2016, 16:39:39 PM

Previous topic - Next topic


J 3.5.1
VM 3.0.16

I see this has been an issue for years but there are some suggestions that it might be possible to handle more gracefully in the later versions - any ideas very welcome.

If a customer places an order for product A at $10 and product B at $30 then we issue a partial refund (say $25), the whole order is cancelled. This is a major problem for us as the products in question are attendance costs for events that we run, so it's quite normal for someone to book two events in onr order, find they can't attend one, and then we refund the amount less an admin fee. Right now we have people turning up to events that they've paid for but where we 'think' they cancelled, so we have capacity issues.

Is there any way to have the order status set to something other than "Cancelled" when the refund is made ? That would at least let our administrator spot which ones need manual adjustment.




You can assign whatever You want paypal to use when an order is refunded. Simply set this up in the setup for Papal payment.
If You don´t have any status You like for this create a new one to use.


Jörgen @ Kreativ Fotografi
Joomla 3.9.18
Virtuemart 3.4.x
Olympiantheme Hera (customized)
This reflects current status when viewing old post.


Where are you doing the Partial refund - within your paypal account administration pages ( I assume)

If so - you should be getting a VM order status of either Full Refund or Partial Refund (the default VM status code for both of these is R)

Within VM3 Paypal Configuration there is an option to differentiate the setting of the VM status for "Partial refund" and "Full Refund"

As mentioned above - by default this VM configuration sets both as R

This can be seen in the code snippet below

<field name="status_refunded" type="vmorderstate" scope="com_virtuemart" default="R"
                <field name="status_partial_refunded" type="vmorderstate" scope="com_virtuemart" default="R"

To change this default behaviour

Setup another Order Status for use with Partial Refunds

Then assign this new Order Status (lets call it "Q" - Partial Refund)  to the  VM PayPal partial refund option.

If your "full refund" option is set to "Cancelled" - change that as well!

You will then have differentiated statuses for full refund, Partial Refund and Cancelled

Joomla 4.4.5
php 8.1


That's perfect, thanks very much.

All the best,