In-seat delivery
Concession items can have in-seat delivery requested at the time they are added to an order. In-seat delivery fees may be automatically charged depending on whether such feature is enabled.
Some requirements must be met for in-seat delivery:
- The concession itself must be configured to allow in-seat delivery. In the BO/HO items cabinet,
Allow in-seatshould be checked. - In the AddConcessions request:
DeliveryOptionshould be set to 1 (InSeatDelivery).DeliveryInfomust be specified on the concession item (or package child item).SessionIdmust be set.
Example request and response
POST: /RESTTicketing.svc/order/concessions
Request:
{
"UserSessionId": "d9664d6202394bb2baac345e349f29b8",
"CinemaId": "0001",
"SessionId": "1",
"Concessions": [
{
"ItemId": "000000000000001",
"Quantity": 1,
"DeliveryOption": 1,
"DeliveryInfo": {
"Seats": [
{
"RowId": "A",
"SeatNumber": "1"
}
],
"Comment": "Item comment for my delivery"
}
}
],
"InSeatOrderDeliveryInfo": {
"Comment": "Order comment for my delivery"
},
"ReturnOrder": true
}
Response:
{
"Order": {
"Concessions": [
{
"Id": "1",
"ItemId": "000000000000001",
"Quantity": 1,
"DeliveryOption": 1,
"DeliveryInfo": {
"Seats": [
{
"RowId": "A",
"SeatNumber": "1"
}
],
"Comment": "Item comment for my delivery"
}
}
],
"TotalValueCents": 500,
},
"Result": 0
}
InSeatOrderDeliveryInfo properties
The following properties can be set via InSeatOrderDeliveryInfo and apply to all concessions that have in-seat delivery requested.
Commentis an order comment that is recorded at the cinema and is displayed on the order tile of kitchen screens (when an item requires preparing). It can be updated subsequently at the cinema.DeliveryWindowValueallows specifying an offset in minutes to the session start time or a percentage of the session's duration. For more information on delivery windows, see below.DeliveryWindowDescriptionallows adding a description to the delivery window value. However, since it does not display on the order tile of kitchen screens, it is recommended to useCommentto record notes or comments instead.
DeliveryInfo properties
The following properties can be set via DeliveryInfo on a concession or package child item that has in-seat delivery requested.
Seatslists the array of seats for delivery, described byRowIdandSeatNumber.Commentis an item comment that is recorded at the cinema and is displayed next to the item on the order tile of kitchen screens (when the item requires preparing). It can be updated subsequently at the cinema.DeliveryWindowValueis the same as the property set viaInSeatOrderDeliveryInfoabove, but can be specified per item. The item-levelDeliveryWindowValuespecified inDeliveryInfowill override any order-level value specified inInSeatOrderDeliveryInfo.DeliveryWindowDescriptionis also the same property set viaInSeatOrderDeliveryInfoabove, but can be specified per item. However, since it does not display on the order tile of kitchen screens, it is recommended to useCommentto record notes or comments instead. The item- levelDeliveryWindowDescriptionspecified inDeliveryInfowill override any order-level description specified inInSeatOrderDeliveryInfo.
The properties from InSeatOrderDeliveryInfo and DeliveryInfo can be printed onto prepare slips in a cinema's kitchen setup (depending on the print template and if an item requires preparing). For more information on available print template fields, please see Vista's Technical Support Guide.
Delivery windows
Delivery windows allow patrons to request in-seat delivery at a specific time relative to a session start time.
Requesting delivery windows requires that a DeliveryWindowValue is set, which can be:
- a number in minutes from the start of the session (e.g. '15', '72' or '-5') where a negative number denotes x minutes before the showtime starts, or
- a percentage of the session duration (e.g. '50%' or '-10%') where a negative percentage denotes a delivery time before the showtime starts (e.g. '-10%' of a 90 min session will set a delivery time 9 minutes before the session start time). For a percentage value, the string must end with '%'.
Default delivery window values and their descriptions (e.g. "1st Sitting", "2nd Sitting"), which have been configured at the cinema can be retrieved via the GetDeliveryWindowsForCinema endpoint.
The following example shows a request for the first item to be delivered halfway through the session via the DeliveryInfo object. All other items
are requested for delivery 10 minutes into the session via the order-level InSeatOrderDeliveryInfo object.
POST: /RESTTicketing.svc/order/concessions
Request:
{
"UserSessionId": "d9664d6202394bb2baac345e349f29b8",
"CinemaId": "0001",
"SessionId": "1",
"Concessions": [
{
"ItemId": "000000000000001",
"Quantity": 1,
"DeliveryOption": 1,
"DeliveryInfo": {
"Seats": [
{
"RowId": "A",
"SeatNumber": "1"
}
],
"Comment": "Item comment for my delivery",
"DeliveryWindowValue": "50%" <--- This is an item-level DeliveryWindowValue
}
},
{
"ItemId": "000000000000003",
"Quantity": 2,
"DeliveryOption": 1,
"DeliveryInfo": {
"Seats": [
{
"RowId": "A",
"SeatNumber": "1"
}
],
"Comment": "Item comment for my delivery"
}
},
{
"ItemId": "000000000000004",
"Quantity": 1,
"DeliveryOption": 1,
"DeliveryInfo": {
"Seats": [
{
"RowId": "A",
"SeatNumber": "1"
}
],
"Comment": "Item comment for my delivery"
}
}
],
"InSeatOrderDeliveryInfo": {
"Comment": "Order comment for my delivery",
"DeliveryWindowValue": "10" <--- This is an order-level DeliveryWindowValue
},
"ReturnOrder": true
}
Package items
For package items, DeliveryOption must be set to 1 (InSeatDelivery) on the package parent item.
DeliveryInfo can be specified on either the package parent item or package child items. DeliveryInfo specified on a package child
item will take precendence over any delivery information specified on the package parent item. If no DeliveryInfo is specified on
a child item, it will inherit any DeliveryInfo specified on the parent item.
POST: /RESTTicketing.svc/order/concessions
Request:
{
"UserSessionId": "d9664d6202394bb2baac345e349f29b8",
"CinemaId": "0001",
"SessionId": "1",
"Concessions": [
{
"ItemId": "000000000000005",
"Quantity": 1,
"DeliveryOption": 1,
"DeliveryInfo": { // DeliveryInfo is specified on the package parent item
"Seats": [
{
"RowId": "A",
"SeatNumber": "1"
}
],
"Comment": "Item comment specified on the parent item",
"DeliveryWindowValue": "45"
},
"PackageChildItems": [
{
"DeliveryInfo": { // DeliveryInfo is specified on this package child item, which will be used instead
"DeliveryWindowValue": "-10",
"Seats": [
{
"RowId": "A",
"SeatNumber": "1"
}
],
"Comment": "Item comment for first package child item"
},
"ItemId": "000000000000001",
"Quantity": 1
},
{
"ItemId": "000000000000003", // This package child item has no DeliveryInfo, so will inherit DeliveryInfo from the parent
"Quantity": 1
}
]
}
],
"InSeatOrderDeliveryInfo": {
"Comment": "Order comment for my delivery"
},
"ReturnOrder": true
}