Optional Extras with Tickets

Suppose you’re hosting a GA talk or workshop or similar event, and that there’s an optional lunch afterwards that costs an extra £10.

What people keep wanting to do is have one product: “The talk” with two price bands: “Just the talk” (£10) / “The talk plus lunch” (£17.50)

This really doesn’t work, and I’m writing this out here to try to decide whether to try to make it work the way people want it to, or to do more training so people understands how the system works and why it works that way.


Price bands don’t make sense on products that doesn’t have assigned seating.

If you have a seating plan, and different seats are different prices, the customer chooses which price they want to pay by choosing which seat they want to sit in, or, they can select the price they’re prepared to pay, and the system will pick them a seat at that price. The price band is a fixed property of the seat.

Using the “price bands” functionality on a GA product to select an optional extra turns all this on its head.

You’ve got 100 spaces available for the talk. If the prices bands were fixed per ticket in advance in the way that price bands work with assigned seating, you’d have to decide in advance that there were e.g. 80 “just the talk” tickets and 20 “the talk plus lunch tickets” which might mean that if no one wanted lunch you could sell out of “just the talk” tickets even when there were spaces left.

But if we don’t do that, and whether they want lunch or not is up to each individual, so the price band isn’t a property of the ticket but it’s a property of the order (more like a discount) instead, then we’ve got one word “Price Band” that stands for two completely different things in the system and works in completely different ways. Also, when a ticket is put into a basket, we’re going to be updating which price band it’s in, which is going to affect things like the gross potential box office take of a given show.

Also, having “Just the talk” and “The talk plus lunch” breaks down as soon as there’s more than one optional extra. “Just the talk”, “The talk plus optional thing A”, “The talk plus optional thing B”, “The talk plus optional things A and B” is already unwieldy and gets much worse as options are added.

Also, having both options in a single product means that there’s also no way of limiting the extras… if there’s only room for 30 to have lunch, and “with lunch” is just a different price available on the ticket, we don’t have a way of stopping you from overselling your lunches.

Also, having both options in a single product means that the UI for booking when discounts are involved gets much more complicated. If there are adult and child and concession tickets available, and you want 1 adult and 1 child with the lunch and 1 other adult and a concession without lunch, we need to start displaying one drop down per concession type per price band, which is going to be confusing and ugly.

Literally all these problems are solved by setting it up as two separate products: “The talk” at £10 each and “Lunch” at £7.50 each. Lunch is configured with a package so that it can only be bought with the Talk: you can’t have 1 talk ticket and 10 lunches. If you just buy the ticket and you don’t buy the lunch, then we can upsell you the lunch at the basket.

Right. I think I’ve talked myself into the “Training” option, rather than the “Trying to make it work” option, because I think the “Trying to make it work” option just makes the system more confusing for both people buying tickets and people doing the system. So: in future the system won’t let you select a price scheme on a GA product if that price scheme has multiple price bands.

You’re right - they need to be 2 separate products

1 Like

Maybe we could simplify it in admin though, so the interface is presented in a way that fits with peoples’ idea of optional extra.
e.g. we could have a optional extras check box, that when checked shows a simple form of optional extra name and additional cost. in the background we create an optional extras folder as a child of the current folder, add the extra product, create a the package that makes it only available with the purchase of the main product.

They could perhaps add, edit and delete “simple” optional extras from the within-product UI, but any other more complex requirements would be possible though editing the optional product and package individually.

Rather than managing it from the product screen of the “Main” product (Product A), I think I’d prefer to create the other product (Product B) by hand, and then “Other” tab of product B we have an option for “This product is an Add on” and a UI to select which products it’s an add on for. And then either manage a hidden package to link the two, or build a new data structure that can power a dedicated UI (because packages are too general really, and having a “ticket + meal” package gets in the way of any upsell or discount packages).

Oh, and Comar were doing stuff with optional extra meals and taxis home. I’ll have to remind myself how we set it up.

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.