Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Waiting list voucher not send out without apparent reason #3628

Open
fefrei opened this issue Oct 2, 2023 · 2 comments
Open

Waiting list voucher not send out without apparent reason #3628

fefrei opened this issue Oct 2, 2023 · 2 comments

Comments

@fefrei
Copy link
Contributor

fefrei commented Oct 2, 2023

Problem and impact

I've managed to get into a waiting list state that is either broken, or probably just confusing. Here's the situation:

  • I'm selling (free) tickets for two iterations of an event. They are created as two variations of the same product.
  • I'm also offering a flexible ticket where the customer allows me to assign them a date.
  • There's also internal variants of the standard tickets, bookable only with a voucher.

This is actually surprisingly easy thanks to Pretix's flexible quota system. There are three quotas: One for total available spots, and two each for the two iterations. (They're 30 + 30 = 60 spots, so the quotas sum up.) The standard tickets count into both the general and iteration-specific quota, the flexible tickets only into the general quota.

I then found myself in the following situation, which I find contradictory:

  • One iteration of the event has sold out.
  • This is because the event-specific quota is full:
    image
  • There is one user on the waiting list, waiting for a spot:
    image
  • No vouchers have been automatically created. There are only manually created ones, for the internal variants of the tickets:
    image

Note the quota page claims there are 5 vouchers reserved from the quota, but only 4 vouchers remain, and the waiting list entry does not have a voucher. These screenshots are consistent – I refreshed all pages again, nothing changed while taking the screenshots.
Before I was able to take the screenshots, the one voucher wasn't used up yet. At that point, the “Vouchers and waiting list reservations” entry showed a count of 6. I never created 6 vouchers for the product, so this clearly counted the waiting list entry.

In this state, Pretix refused to create a voucher for the waiting list entry as the product was unavailable (even when I manually clicked the button). It also showed as sold out in the online shop. I do not understand why – it looked as if the waiting list entry was somehow counted both into the “Waiting list (pending)” and “Vouchers and waiting list reservations” counts and the user blocked themselves from buying the product (which was unavailable because they themselves were on the waiting list‽

The situation eventually resolved itself. Now, another user was able to purchase a ticket (without using a voucher). The quota now matches what I expect:

image

But of course, the user shouldn't have been able to skip the waiting list entry – provided they didn't have it in their cart already (but the quota didn't say that).

I have multiple possible explanations for what is going on:

  • The ticket was blocked by being in a user's cart, but this was not showing up on the quota page. Are the numbers on the quota page eventually-consistent estimates? (If so, maybe this should be communicated on the page?)
  • I just seriously misunderstood what's going on. (Maybe the labels on the quota page could be made more clear then?)
  • There's a bug in waiting list handling for products with multiple quotas.

Feel free to close this if it makes no sense to try to track this down – I have no expectation of support, just trying to help :-)

Expected behaviour

No response

Steps to reproduce

No response

Screenshots

No response

Link

No response

Browser (software, desktop or mobile?) and version

No response

Operating system, dependency versions

No response

Version

2023.8.0

@raphaelm
Copy link
Member

raphaelm commented Oct 2, 2023

Note the quota page claims there are 5 vouchers reserved from the quota, but only 4 vouchers remain, and the waiting list entry does not have a voucher.

This might be a "hidden" voucher given to a person who was successful on the waiting list. These don't show up in the voucher menu, but only if you extend the filter for old entries in the waiting list menu.

But of course, the user shouldn't have been able to skip the waiting list entry – provided they didn't have it in their cart already (but the quota didn't say that).

Yes, it should not be possible to skip ahead of the waiting list, but it's hard to tell the exact state of things when this happened.

* The ticket was blocked by being in a user's cart, but this was not showing up on the quota page. Are the numbers on the quota page eventually-consistent estimates? (If so, maybe this should be communicated on the page?)

No, the info is up to date.

* I just seriously misunderstood what's going on. (Maybe the labels on the quota page could be made more clear then?)
* There's a bug in waiting list handling for products with multiple quotas.

Could both be the case, I'm not quite sure from reading this either at the moment :/

@fefrei
Copy link
Contributor Author

fefrei commented Oct 3, 2023

Thanks for your response, it's appreciated!

Indeed, it looks like a voucher was redeemed properly (properly replacing an item in cart that was never booked):

image

That makes it all plausible, thank you! So the issue was me not looking at the filters in the waiting list view.

I thought a moment about ways to make this more obvious. I don't have a super clear answer (I think the UX is actually quite good here, I was just a bit blind), but one possible suggestion would be make the default filter in the waiting list view wider – one option would be to filter for "active" entries, meaning entries that are either waiting for a ticket or have a voucher assigned that's waiting for redemption. (The hope would be that that filter captures all entries needed to understand the state the system is in, while excluding entries that have been "settled" in either way.)


As an aside, I think the waiting lists are not working for my double-quota-system as I'd expect: I have three waiting list entries for one instance of the event now. These entries are part of the Waiting list (pending) block of the total quota, meaning that waiting list entries for the first instance of the event are actually blocking sales of tickets for the second instance.

Fixing this would probably require revisiting the design decision that waiting list entries reserve a spot in all quotas, not just the ones that are full. I assume this is too complicated – but if you're open to considering that and want me to split this out into a dedicated issue, let me know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants