Posted: October 1, 2018 at 9:55 pm
We have set two events, when the guest registered for event A, our custom code will help the guest registered for event B (a free gift coupon) at the same time (in one transaction). Then the confirmation email (registration approval message) with two QR codes should be sent to the guest after successful payment.
For both events, the initial status is “Pending payment” and the notifications involved is “Registration approval”.
Ideally, event B (free gift coupon) should only be approved and sent related message with success payment of event A. And we found it’s the case in most of the transactions. However, we found occasionally, the system will send out the gift coupon of event B alone even the guest didn’t complete the payment. We guess the system flow in this case is as per below:
Event A: initial status – pending payment > guest finalized registration (registration status – pending payment) > since no payment made, status remains
My question is, since most of the cases, event B will remains pending payment if the guest abandon the transaction even after finalized registration, then in what case and in which moment, the event B will change status to “Approved” without event A getting paid?
Thank you and please let me know if you need further information.
Which payment methods do you have active?
Is event A always the event added first to the cart?
Can you link me to an event so I can view your set, please?
So EE is designed not to have a dependency between different events (IE a paid ticket from Event A does not relate to a ticket on Event B) so if the user manages to finalize a registration with a paid ticket from 1 event and a free ticket from another, the free ticket should change to Approved.
With only a single online payment method active (PayPal Expres) I’ve not been able to force my way to finalize the registration and trigger the same problem but it sounds like thats what is happening. If you add the free ticket to the cart from the same event the paid ticket is for that should prevent it but I have no idea how you are adding the current free ticket into the cart.
With offsite payment methods there is a cron job scheduled when the user is directed to the payment provider (in this case PayPal) which checks the status of the registration/payment when the session expires (roughly 1 hour). I tested this on your site and my registrations set to pending payment, but it may be somehow related to your code and that check.
Have you noticed any kind of pattern to registrations that show the free ticket as approved?
I cannot identify any pattern to registrations that show the free ticket as approved from those stay incomplete. But I can reproduce the issue when I go further on payment process, like only abandon right before final “Pay” button in PayPal. However, since under debug mode, we can only use PayPal account to pay, I am not sure if it also the case who pay by credit card.
Our code basically just helps to add the event to the cart and hidden the form / cart of the free ticket from the front end. It did nothing to the backend process. Don’t think our code will make the changes to the registration status.
Understand that EE is not designed to have dependency between events, but appreciate if you can let us know more in what case the registration status will change from “Pending payment” to “Approved”. If the cron job did that, then why not all incomplete transactions of the free ticket changed?
Ok, so I can reproduce on a test site if I add a paid ticket from one event and a free ticket from another event, then select an offsite payment method (such as PayPal Express) and then just close the browser when I arrive at PayPal.
An hour later the session will expire and then shortly after that the cron job will run, it’s the cron job that is Approving the free registration.
It also happens if I for the cron to run rather than wait for the session to expire.
However, thats exactly what I tested on your site and the same did not happen, my registrations on your site were set to pending payment, I can’t currently retest as the ticket sales have ended on your site.
I didn’t say you changed the back end process?
However, if the free registration is from a different event from the paid ticket (I can see on your event it is) then is expected for that registration to be approved when the registration is finalized, be that by the user hitting the thank you page or the cron job running for an offsite transaction check.
A registration assigned to a ticket that is free will be Approved when the registration is finalized.
A registration assigned to a ticket that is paid will be Approved when the transaction total amount owing is paid in full.
2 registrations from the same event in a single group, 1 paid 1 free, will both be set to pending payment until the total amount due is paid in full. When the amount is paid, both of those tickets will be switched to Approved.
2 registrations from the different events in a single group, 1 paid 1 free, will be a little different. When the registration is finalized if there is monies owing then the paid ticket will show as Pending Payment, the Free ticket will be Approved. This happens because again, there is no dependency between 2 events so the paid ticket on Event A doesn’t apply to the Free ticket on Event B.
With custom code, I have no idea.
Try the same setup without using cvustom code, manually add the ticket from Event A and B to the cart yourself, then close the browser when you get to PayPal, wait roughly an hour and visit your home page.
Check your registrations in the admin.
The support post ‘What trigger a free event status to "Approved" if registered with a paid event?’ is closed to new replies.
Have a question about this support post? Create a new support post in our support forums and include a link to this existing support post so we can help you.