Season Passes
Season passes are a specific kind of deal promotion setup in Vista that allow customers to purchase a series of tickets to sessions within a pre-configured event at a discounted rate.
A typical example would be a season or festival screening a collection of films that a customer can purchase a set of 5 tickets at $10 instead of the standard rate of $15.
Specific API endpoints exist to facilitate building UIs around this feature.
Retrieving sessions for the pass
A dedicated endpoint is available to return the films and showtimes associated with the pass (a.k.a. the promotion's event).
GET: /RESTData.svc/cinemas/{cinemaId}/seasonpassdeals/{promotionId}/filmsessions
Retrieving promotion rules
The standard deals endpoints will not present the details of the season pass correctly so a dedicated endpoint is available for retrieving promotional ticket pricing and how many of which films the customer must select to qualify.
Multiple SeasonPassDealFilmGroups
may be configured requiring customer to select from discrete
sets of films. e.g. select 3 from group A and 2 from group B.
GET: /OData.svc/SeasonPassDetails
Response:
{
"odata.metadata": "http://127.0.0.1/WSVistaWebClientDev/OData.svc/$metadata#SeasonPassDeals",
"value": [
{
"ID": "0000000001-0000000051",
"CinemaId": "0000000001",
"PromotionId": "0000000051",
"CinemaEventCode": "0000000006",
"SeasonPassDealTicketTypeGroup": {
"CinemaId": "0000000001",
"SeasonPassDealTicketTypeGroupId": 2021,
"ListComment": "Supported tickets",
"TicketTypes": [
{
"CinemaId": "0000000001",
"SeasonPassTicketTypeId": 4,
"TicketTypeCode": "0001",
"PriceGroupCode": null,
"Description": "Adult",
"MinimumPriceInCents": 1000,
"MaximumPriceInCents": 1000
}
]
},
"SeasonPassDealFilmGroups": [
{
"CinemaId": "0000000001",
"SeasonPassDealFilmGroupId": 2022,
"MinimumNumberRequired": 3,
"MaximumNumberAvailable": 3,
"ListComment": "Select 3 of the following",
"Films": [
{
"SeasonPassFilmId": 3031,
"FilmCode": "HO00000013",
"Title": "Lone Survivor"
},
{
"SeasonPassFilmId": 3027,
"FilmCode": "HO00000016",
"Title": "Robocop"
},
{
"SeasonPassFilmId": 3029,
"FilmCode": "HO00000025",
"Title": "Enter the Dragon"
},
{
"SeasonPassFilmId": 3025,
"FilmCode": "HO00000035",
"Title": "Con Air"
},
{
"SeasonPassFilmId": 3030,
"FilmCode": "HO00000045",
"Title": "The Big Boss"
},
{
"SeasonPassFilmId": 3028,
"FilmCode": "HO00000053",
"Title": "Dunkirk"
}
]
}
]
}
]
}
Purchasing a season pass
A dedicated endpoint exists also for adding a season pass to an order. While similar
to other ticketing calls the season-pass API takes in the custom SeasonPassTicketTypeId
returned in the above call and applies the custom season pass deal logic that won't
get applied implicitly like other deals.
POST: /RestTicketing.svc/order/season-passes
Body:
{
"UserSessionId": "960d9d26e4df4892b2bf23c071fdc8e0",
"CinemaId": "0000000001",
"SeasonPasses": [
{
"SeasonPassTicketTypeId": 4,
"Qty": 1,
"Tickets": [
{
"SessionId": 67424
},
{
"SessionId": 67423
},
{
"SessionId": 67419
}
]
}
],
"ReturnOrder": true,
"BookingMode": 0
}