In Seats, an event is always a single performance of a show, a single football match, a single concert. (See What is an Event?)
Sometimes, however, you'll want to book seats across multiple performances, and so across multiple events in Seats.
For example:
You're selling season tickets for all home games of a given soccer club. Season pass holders buy a single seat for the whole season.
You're selling seats for a multi-day event on Friday, Saturday and Sunday. Some people buy a single seat for the full five days, others buy a seat just for one or two of them.
You're selling seats for multiple time slots on the same day, but your ticket buyers are allowed to buy a single seat for consecutive time slots.
The good news is: Seats provides support for those out-of-the-box: you can render floor plans and book seats for multiple events at the same time.
In fact, there's two ways to do this: by using seasons or event groups. If the set of events is fixed (e.g. when selling season tickets for a sports club), you should use seasons. But if the events are different per ticket buyer, event groups are a better choice (like when selling multi-day tickets for a conference, or when the customer picks time slots).
Our documentation site has an in-depth article on seasons vs. event groups.
Seasons
To sell season tickets, you'll need to:
create a season, either through our web app or through the seasons API.
create events in the season. E.g. if your football season has 15 home games, you create 15 events.
render the floor plan by passing in the season key, as if it were a regular event.
after the user selected their seats, book them - again by passing in the season key.
Seats that are sold on the season level are made unavailable for individual events. And vice-versa: if a seat is sold on at least one event, it's not available for the season.
Event groups
Event groups work as follows:
render the floor plan, and specify an array of event keys in the
events
configuration (documentation here).
All available seats on the rendered floor plan are guaranteed to be available for all events in the list. Or, to put it differently, if a seat is booked for at least one of the events in your list, it won't be selectable on the floor plan you rendered.
after the user selected their seat on the floor plan, book the seat via the Seats API for the whole list of event keys, as described here.
Seats takes care of the all-or-nothing aspect of event groups: either booking succeeds for all events, or it doesn’t succeed for any of them.
Note: all events should obviously be linked to the same floor plan. You cannot render an event group across different seating charts.
You can adapt your group of events on the fly, just by changing the list of event keys. This means that you have full flexibility and control over how you organise your sales.
You can sell ticket packages and individual tickets at the same time: just change your floor plan configuration to use
events
instead of`event
for ticket package buyers.
you can sell seats for any combination of events as well: For example, on a three-day event (Fri, Sat, Sun), you can sell single seats for Friday only, a 2-day combi ticket (Fri-Sat and Sat-Sun) and a full 3-day pass, all at the same time.