Force minimum number of tickets purchased
Offer a reduced ticket price for buying X or more, and force the quantity of that ticket to start at X.
We sell reduced price tickets for groups of 3 or more, but the quantity on the product page always starts at 1, which allows anyone to buy only one ticket at the lower price. Currently we have to say, "Contact us for 3 or more" and process these sales manually.
Eventbrite does this beautifully, but we're trying to get away from the extra fees.
Hello all, this is a great idea.
For our WooCommerce users, the good news is that there are a few third-party plugins that should help with this in the meantime:
Bastien Bournet-Charrier commented
Just want to point out that the solution suggested by Bill works like a charm and should be added to the official suggested solution.
Bill Beale commented
I had the same issue with zero quantities. For Woo tickets, and for RSVPS. With tickets was sent straight to Cart, and with RSVPs a zero quantity would trigger the " Please fill in the RSVP confirmation name and email fields" (when the request for these is only shown after a quantity is entered).
Found this snippet from May 2016 by Brook, which solves it very nicely for both cases.
Thank you. The gist in Admin's 4/7 post worked. Hope to see this added to the plugin soon.
I'm the OP. I ended up editing the "raw" code and setting that field with default=1 instead of 0. This is beyond the intention or knowledge of most people that want to mess with a bought plugin, but it got me around the problem. I like Modern Tribe's work, but ultimately, I went with another higher-maintenance solution that had more flexibility. This other solution wouldn't work for most people that enjoy the simplicity of this plugin
Any progress on this issue (a couple years later)?
Just as the OP described, we have a situation where a customer added two ticket types; both with number fields that default to 0. Many of their visitors would miss this and click Add to Cart before setting the quantity, which of course shows a "no items in your cart" message. Then came the phone calls complaining the website is broken...
Please update this plugin to not allow the visitor to click Add to Cart if all the ticket option quantities are 0. If any of them are 1 or greater, allow the button to be clicked.
I would like to suggest that the interface for RSVPing be improved. Currently at the bottom of an event page there is an RSVP button and it is not clear that one needs to input a value into the numeric box above the button. Worse, if you leave the number of RSVPs at "0", the error message that is displayed says:
Please fill in the RSVP confirmation name and email fields.
This is misleading as the issue is the number of RSVPs hasn't been specified, not that the confirmation name and email are missing (in fact, those fields aren't even visible until the customer enters a number for the quantity of RSVPs).
Thomas Davis commented
Thomas Davis commented
Note that you can sell more than 1 type of ticket on a single event so it may not be advantageous to set the minimum at 1. However, it would be desirable to prevent the page from moving to the shopping cart when the sum of all ticket quantities equals zero or what ever the desired configuration is set to.
I needed this solution as well, turns out that this plugin does the job - https://en-gb.wordpress.org/plugins/woocommerce-bulk-discount/. Lets you reduce the price of a ticket by a percentage of your choosing once a minimum order is reached. You can have multiple steps as well (i.e. 20% off when you buy 4 and 50% off when you buy 10)
Thank you Mike for sharing this solution. We are looking into perhaps writing a tutorial on tying the two plugins in. We first want to do a little more testing with that plugin to see how well it works with The Events Calendar.
This is a potential feature in woocommerce already with Dynamic Pricing:
I'm out of votes... but i would love this feature too
Yes, the tutorial is for all ticketed events across your calendar. If you're interested in doing that for a single event, it would be more complicated. You might try posting in our forums (http://m.tri.be/18de) and see if we can help point you in the right direction to achieve that.
I checked out the tutorial link and I'm a little confused ... it proposes a code change to the php to change the default to 1 - but wouldn't that change it for every event? How can you change it JUST for an event that has only 1 ticket type?
Trevor Gehman commented
The solution works, and I use it, but I think a better idea would be: Make the quantity 0 if there is more than one ticket setup for an event, but make it default to "1" if there is only 1 ticket associated with the event.
Just block going to the cart page until at least ONE of the tickets is >= 1.
All I'm asking is that the code not let the user go to the next page (cart) with nothing chosen (all items 0 quantity). The fact that that [add-to-cart] allows the user to go to the cart page with 0 items - is wrong. You even handle it by showing "The Cart is Empty"... that should never happen.
It should respond "You must buy/choose at least one ticket" and stay on the item choice page.
That's a good point Saskia. And is definitely one of the main things we have considered when discussing this in the past.
One feature we are talking about implementing is preventing the submission when there are no items in the cart, and notifying the user that they need to select an amount before clicking add to cart if they accidentally click. Would that work for everyone?
Yes, you make a good point.
Perhaps a feature that allows setting a *default* quantity for *each* item (0,1, etc)
UI could also handle this better. Since these elements are multi-select, you only carry over elements that are checked.
[ ] Qty: 0 Kids
[X ] Qty: 2 Adults
[ ] Qty: 0 Seniors
[Add To Cart]
... or at the very least - block [Add-To-Cart] until at least ONE of the tickets is > 1.
The behavior I see is "0" still let's it go to the /cart screen with "your cart is empty".
I had a question like this once. And I know there is a 'simple' solution. But seeing as I'm not a programmer, I'll leave it to Tri.be to provide the code :P
But if you think about it a bit longer, it does make sense why the default is set to zero. Imagine an event with multiple ticket types: for kids, adults and seniors. If the defaults would be 1 instead of 0, and I'd press 'add to cart' it would add 3 tickets to the cart instead of 1. Which would probably result in angry instead of confused costumers.
Trevor Gehman commented
Yes, I came here to suggest this as well. I'm baffled that this made it through testing. Definitely needs to be fixed.