Whenever a customer cancels an event they've booked (marking them red in the Event back-end) the payment still remains as outstanding in the finance section.
That could potentially lead to confusion about outstanding payments from customers. Only when you manually delete the customer from the event is the entry in the outstanding payments gone.
That would necessitate a WordPress Administrator to either manually delete the customer from his cancelled event, or to manually delete their corresponding entry in the outstanding payments, which cannot be the intended way for it to be handled.
Because if that is the case the Administrator would need to scour their email for the corresponding cancellation, then find the correct event and manually remove the customer.
You can run this against your database to get a list of canceled / rejected customer bookings, including the corresponding event (change DBPREFIX to whatever your prefix is)
SELECT DBPREFIX_amelia_customer_bookings.info, DBPREFIX_amelia_customer_bookings.status, DBPREFIX_amelia_customer_bookings.price, DBPREFIX_amelia_events_periods.periodStart, DBPREFIX_amelia_events_periods.periodEnd, DBPREFIX_amelia_events.name, DBPREFIX_amelia_payments.status FROM DBPREFIX_amelia_customer_bookings, DBPREFIX_amelia_customer_bookings_to_events_periods, DBPREFIX_amelia_events_periods, DBPREFIX_amelia_events, DBPREFIX_amelia_payments WHERE DBPREFIX_amelia_customer_bookings.id = DBPREFIX_amelia_customer_bookings_to_events_periods.customerBookingId AND DBPREFIX_amelia_payments.customerBookingId = DBPREFIX_amelia_customer_bookings.id AND DBPREFIX_amelia_customer_bookings_to_events_periods.eventPeriodId = DBPREFIX_amelia_events_periods.id AND DBPREFIX_amelia_events_periods.eventId = DBPREFIX_amelia_events.id AND DBPREFIX_amelia_customer_bookings.status IN ('canceled', 'rejected');
Then you can pick one of the events / customers and check your payment / finance section in Amelia and you will see that the payment is still shown as pending, even though it should be removed altogether.
This is a very serious bug that needs an urgent fix!
I've already written a SQL to delete them from my database, I'd rather not mess around in there before getting a reply.
Our developers confirmed that this is not a bug, this is how the plugin works at the moment.
If a customer cancels an event (or an appointment), there are a lot of businesses that will not refund that payment, as that is their policy. Other businesses do want the payment to be removed, however removing the payment from the payment section doesn't initiate a refund, since Amelia doesn't have that option.
All refunds have to be processed manually, and after the customer is refunded, the payment needs to be removed from the finance section (also manually). There's no way that the payment will be removed if a customer cancels their booking.
You can suggest that as a "feature request" here, or check if this request was already submitted and vote for it.
Could you maybe ask your devs to take a look over my database side SQL fix, just to make sure I won't cause any unintended problems before using it?
DELETE DBPREFIX_amelia_customer_bookings, DBPREFIX_amelia_customer_bookings_to_events_periods, DBPREFIX_amelia_payments FROM DBPREFIX_amelia_customer_bookings INNER JOIN DBPREFIX_amelia_customer_bookings_to_events_periods INNER JOIN DBPREFIX_amelia_payments INNER JOIN DBPREFIX_amelia_events INNER JOIN DBPREFIX_amelia_events_periods WHERE DBPREFIX_amelia_customer_bookings.id = DBPREFIX_amelia_customer_bookings_to_events_periods.customerBookingId AND DBPREFIX_amelia_payments.customerBookingId = DBPREFIX_amelia_customer_bookings.id AND DBPREFIX_amelia_customer_bookings_to_events_periods.eventPeriodId = DBPREFIX_amelia_events_periods.id AND DBPREFIX_amelia_customer_bookings.status IN ('canceled', 'rejected')
This basically just removes any db entries in amelia_customer_bookings, amelia_customer_bookings_to_events_periods and amelia_payments for canceled / rejected customers. So it shouldn't really cause any trouble, but I'd feel safer knowing the devs said it should be fine for me to do it that way.
Hi there,
I've come across a super annoying bug in Amelia.
Whenever a customer cancels an event they've booked (marking them red in the Event back-end) the payment still remains as outstanding in the finance section.
That could potentially lead to confusion about outstanding payments from customers. Only when you manually delete the customer from the event is the entry in the outstanding payments gone.
That would necessitate a WordPress Administrator to either manually delete the customer from his cancelled event, or to manually delete their corresponding entry in the outstanding payments, which cannot be the intended way for it to be handled.
Because if that is the case the Administrator would need to scour their email for the corresponding cancellation, then find the correct event and manually remove the customer.
You can run this against your database to get a list of canceled / rejected customer bookings, including the corresponding event (change DBPREFIX to whatever your prefix is)
SELECT DBPREFIX_amelia_customer_bookings.info, DBPREFIX_amelia_customer_bookings.status, DBPREFIX_amelia_customer_bookings.price, DBPREFIX_amelia_events_periods.periodStart, DBPREFIX_amelia_events_periods.periodEnd, DBPREFIX_amelia_events.name, DBPREFIX_amelia_payments.status FROM DBPREFIX_amelia_customer_bookings, DBPREFIX_amelia_customer_bookings_to_events_periods, DBPREFIX_amelia_events_periods, DBPREFIX_amelia_events, DBPREFIX_amelia_payments WHERE DBPREFIX_amelia_customer_bookings.id = DBPREFIX_amelia_customer_bookings_to_events_periods.customerBookingId AND DBPREFIX_amelia_payments.customerBookingId = DBPREFIX_amelia_customer_bookings.id AND DBPREFIX_amelia_customer_bookings_to_events_periods.eventPeriodId = DBPREFIX_amelia_events_periods.id AND DBPREFIX_amelia_events_periods.eventId = DBPREFIX_amelia_events.id AND DBPREFIX_amelia_customer_bookings.status IN ('canceled', 'rejected');
Then you can pick one of the events / customers and check your payment / finance section in Amelia and you will see that the payment is still shown as pending, even though it should be removed altogether.
This is a very serious bug that needs an urgent fix!
I've already written a SQL to delete them from my database, I'd rather not mess around in there before getting a reply.
Hi, Reichel,
Thank you for choosing Amelia.
I have to contact our developer team in order to see if there's any workaround to overcome this issue.
I will get back to you at the earliest possible time.
Best Regards.
Hi there,
since it's been almost a week since my initial question, I thought I'd ask if the devs have any fix / workaround, yet?
Hi, Reichel,
Sorry for the delay.
Our developers confirmed that this is not a bug, this is how the plugin works at the moment.
If a customer cancels an event (or an appointment), there are a lot of businesses that will not refund that payment, as that is their policy. Other businesses do want the payment to be removed, however removing the payment from the payment section doesn't initiate a refund, since Amelia doesn't have that option.
All refunds have to be processed manually, and after the customer is refunded, the payment needs to be removed from the finance section (also manually). There's no way that the payment will be removed if a customer cancels their booking.
You can suggest that as a "feature request" here, or check if this request was already submitted and vote for it.
Best Regards.
Well that's a shame...
Could you maybe ask your devs to take a look over my database side SQL fix, just to make sure I won't cause any unintended problems before using it?
DELETE DBPREFIX_amelia_customer_bookings, DBPREFIX_amelia_customer_bookings_to_events_periods, DBPREFIX_amelia_payments FROM DBPREFIX_amelia_customer_bookings INNER JOIN DBPREFIX_amelia_customer_bookings_to_events_periods INNER JOIN DBPREFIX_amelia_payments INNER JOIN DBPREFIX_amelia_events INNER JOIN DBPREFIX_amelia_events_periods WHERE DBPREFIX_amelia_customer_bookings.id = DBPREFIX_amelia_customer_bookings_to_events_periods.customerBookingId AND DBPREFIX_amelia_payments.customerBookingId = DBPREFIX_amelia_customer_bookings.id AND DBPREFIX_amelia_customer_bookings_to_events_periods.eventPeriodId = DBPREFIX_amelia_events_periods.id AND DBPREFIX_amelia_customer_bookings.status IN ('canceled', 'rejected')
This basically just removes any db entries in amelia_customer_bookings, amelia_customer_bookings_to_events_periods and amelia_payments for canceled / rejected customers. So it shouldn't really cause any trouble, but I'd feel safer knowing the devs said it should be fine for me to do it that way.
Thanks again.
Reichel,
Our developer confirmed that it should work fine.
However, we recommend you create a backup of the website before running this query just to be 110% sure that your database is safe.
Best Regards.