Home › Forums › Ticket Products › Event Tickets Plus › WooCommerce Refunds
- This topic has 25 replies, 2 voices, and was last updated 9 years ago by
smscmarketing.
-
AuthorPosts
-
March 20, 2017 at 6:44 am #1256646
smscmarketing
ParticipantSorry – don’t mean to keep bothering, but any thoughts on why all but one of my events are returning no attendee data with that function provided? It seems like the way to go, but it isn’t working.
March 20, 2017 at 11:27 pm #1257106Barry
MemberNot a bother at all and my apologies for the delay in responding.
any thoughts on why all but one of my events are returning no attendee data with that function provided?
I’m not 100% clear if it is just one event that is ‘acting up’ or, as you indicated in an earlier post, only one event is providing the expected results.
It’s certainly difficult to troubleshoot from afar; but I wonder if you are able to identify anything the problematic events have in common. Were they created with an earlier release, for instance, or do they use ticket providers other than WooCommerce?
(I do want to note that, at this stage, the amount of further support we can provide is likely to be pretty limited.)
March 21, 2017 at 11:15 am #1257482smscmarketing
ParticipantYeah only 1 of my 30+ active events are returning any data for attendees. Almost all of them have people signed up.
I have been trying to determine if there is anything different about this one (or the ones not returning anything). The time they were made was the same, so same version is same, all WooCommerce tickets, etc…
I even try running the function independent of my loop of events and plug the event ID in directly, so I know it isn’t any sort of error with my loop and I still don’t get any results.
-
This reply was modified 9 years, 1 month ago by
smscmarketing.
March 21, 2017 at 12:07 pm #1257504smscmarketing
ParticipantDo you have maybe a custom query (either using WP Queries or MySQL) that would get me the list of attendees assigned to an event and the status of their ticket (and the WooCommerce order ID if possible…), based on the event id? The query is happening on the actual attendee list page, if I can get that data in my custom report, I think I will be golden.
-
This reply was modified 9 years, 1 month ago by
smscmarketing.
March 21, 2017 at 5:06 pm #1257677Barry
MemberPerhaps some SQL like this would form a base you could build on and adjust further?
SELECT attendees.ID AS attendee_id, orders.post_status AS order_status, billing_email.meta_value AS customer_email FROM wp_posts AS attendees LEFT JOIN wp_postmeta AS related_event ON related_event.post_id = attendees.ID LEFT JOIN wp_postmeta AS related_order ON related_order.post_id = attendees.ID LEFT JOIN wp_posts AS orders ON related_order.meta_value = orders.ID LEFT JOIN wp_postmeta AS billing_email ON billing_email.post_id = orders.ID WHERE related_event.meta_value = 12345 -- Adjust to match the event ID AND related_event.meta_key = '_tribe_wooticket_event' AND related_order.meta_key = '_tribe_wooticket_order' AND billing_email.meta_key = '_billing_email';Observing the note to adjust the event post ID accordingly.
March 22, 2017 at 7:57 am #1258029smscmarketing
ParticipantThank you. I will try this and see if I can get to a good place. But, based on my better understanding (see below), I think we still have some things to overcome.
Regarding the overall process – I have been working more directly with it and am understanding what is happening better.
When you process a refund in WooCommerce for a ticket, it doesn’t actually do anything to the attendee list entry. I was mistaken about that. It returns the inventory to the WooCommerce product, but leaves the attendee on the list. So, inventory is correct, but if you want to see who is attending, everyone is there, including the refunded ticket. And unless you change the WooCommerce order status to “Refunded” manually, it still says it is a completed order on the attendee list. Which is fine if the order was for one event ticket (we can change to refunded), but if they had multiple and only refunded one, you wouldn’t change the order status to “Refunded”. The order would remain in a “Completed” status. Basically, again – you would look at the attendee list and have no idea which one was refunded and not technically valid anymore.
Ok – with all the above in mind, the next solution to help in this is that we manually delete the attendee after we do the refund. Which is fine – we can do that. The problem with that is that it also returns 1 ticket to the inventory. So, you do the WooCommerce refund, inventory is return – and delete the attendee – inventory is returned. Basically, double returning the inventory. We then have to make another step of reducing the inventory after deleting the attendee.
Both refunding the order and deleting the attendee seems like something we have to do to maintain some order. I also am guessing that we need to delete the attendee to prevent that user from seeing that they are signed up for that class after we refund.
So – the process is going to look like this
- Refund in WooCommerce – Qty of tickets, returned to inventory, inventory correct.
- Delete Attendee from Attendee List – Qty of tickets is increased again, incorrect inventory now.
- Now fix inventory – reduce the inventory by the number of cancelled attendees, inventory correct AGAIN
I can tell the store manager this is the process, but it seems sort of convoluted. I am sure they are going to look at me and say – really?
Is there anything built in anywhere to assist me in this process? Like a function to delete the attendee (and not change inventory twice) when the WooCommerce refund is triggered? That would literally fix everything. Then when a refund is processed, each attendee refunded would be deleted – and inventory would only be adjusted by the WooCommerce refund. OR – the opposite – when the Attendee is deleted, it automatically creates the “refund” for that portion of the WooCommerce order?
I know much of this is feature request type stuff, but I thought I would run through it all before I go that route. Maybe there are some things built in to deal with this, now that I can understand the process better.
March 22, 2017 at 12:54 pm #1258281Barry
MemberSo, inventory is correct, but if you want to see who is attending, everyone is there, including the refunded ticket
This is by design.
A ticket has been issued and – virtual or not – can be considered to be in the customer’s possession. It’s also not a given that a refunded order means they are not allowed to turn up at the venue.
It’s continued inclusion on the attendee list means however that staff are empowered to make an informed decision (they can see that the ticket was indeed issued – but was refunded, for instance) and that potentially makes a lot of situations easier to deal with than having a customer turn up with what appears to be a valid ticket, but no trace of it in the attendee list.
Which is fine if the order was for one event ticket (we can change to refunded), but if they had multiple and only refunded one, you wouldn’t change the order status to “Refunded”. The order would remain in a “Completed” status.
I take your point and yes, that means there are circumstances where an entry on the attendee list is not flagged as having been refunded.
In such a case, some manual administrative work is required – this might involve manually deleting the attendee record. So far as I understand things, in the case of partial refunds or stock adjustments being made via the order screen, we cannot easily identify which precise ticket/attendee record that change relates to.
Ok – with all the above in mind, the next solution to help in this is that we manually delete the attendee after we do the refund. Which is fine – we can do that. The problem with that is that it also returns 1 ticket to the inventory. So, you do the WooCommerce refund, inventory is return – and delete the attendee – inventory is returned. Basically, double returning the inventory. We then have to make another step of reducing the inventory after deleting the attendee.
I’d love to hear your own thoughts here: how would you like this to be handled? Right now, though, yes – manual work is required to correct things.
Automatically restocking tickets when an attendee is deleted is something we added following feedback from other users. Bear in that if an order is refunded, we can’t always assume that the corresponding attendees/tickets are void and that if an order is partially refunded with a matching stock adjustment, it is not currently possible for us to determine which specific ticket the change relates to.
I can tell the store manager this is the process, but it seems sort of convoluted. I am sure they are going to look at me and say – really?
Could you issue a partial refund but avoid re-stocking the product inventory? That seems like a possible way to reduce complications.
I know much of this is feature request type stuff, but I thought I would run through it all before I go that route.
Feature requests are the right way to go for much of this.
They provide us with a sense of demand and allow others to comment and elaborate on their own situations. Thanks again for all of the feedback so far 🙂
March 22, 2017 at 1:41 pm #1258294smscmarketing
ParticipantFair enough, I can see how common usage has evolved the way this works.
I guess the big thing is some connection on the refund and the attendee as an option or something. Not sure how that would plugin to the existing systems – it almost seems like something that would be on the WooCommerce side of things (when you press the Refund button, you get a check box to remove corresponding attendees). But, I can’t really say for sure if that would work.
I guess we handle it all manually – which is fine, just not desirable.
For now, I think the only real thing I could see being useful and not ultra change on process is to add the Attendee total in the main class view:
instead of just:
“10 sales (92 remaining)”maybe show:
“10 sales, 8 attendees (92 remaining)”The second reflecting: 100 tickets, 10 sold, 2 attendees deleted (so attendee list is 8 tickets)
I guess that would be a feature request, though… Thanks!
March 22, 2017 at 3:07 pm #1258339Barry
MemberI guess we handle it all manually – which is fine, just not desirable.
I fully understand.
What you outlined certainly sounds achievable but we also need to balance this with the complexity, cost and stability of the plugin, besides our mutual support of Easy Digital Downloads as an ecommerce backend. In other words, we’d have to think very carefully before adding something like that and I hope that’s understandable.
I guess that would be a feature request, though… Thanks!
Please do — any if you wish to share specific UserVoice URLs you create here in this topic (to better help others researching the same things to locate them) that would be absolutely fine.
April 13, 2017 at 9:35 am #1269553Support Droid
KeymasterHey there! This thread has been pretty quiet for the last three weeks, so we’re going to go ahead and close it to avoid confusion with other topics. If you’re still looking for help with this, please do open a new thread, reference this one and we’d be more than happy to continue the conversation over there.
Thanks so much!
The Events Calendar Support Team -
This reply was modified 9 years, 1 month ago by
-
AuthorPosts
- The topic ‘WooCommerce Refunds’ is closed to new replies.
