Products
In the Operator Booking System, tours & attractions are represented by a three-tiered Product schema:
- Products are used as a high-level description of a Supplier's tour or attraction.
- Options are lightweight objects that add one or more variations to a Product.
- Units outline the specific types of reservations that can be made against an Option.
Products MUST have at least one option and one unit in order to be valid.
Reference can be found here
Product
A Product represents a tour or attraction provided by a Supplier. Each Product must have an id
unique within the Supplier.
Products are further defined by their options and units. Availability calls against a Product require an optionId; while all calls to Booking endpoints require a Product, option, and unit ID to be specified.
The Product object's fields, value types and descriptions are enumerated below.
Field Name | Type | Required | Description |
---|---|---|---|
id | string | Yes | Product Identifier unique within the Supplier ( 0001 ) |
internalName | string | Yes | Human-readable name for easy identification. Not to be shared with customers (Morning tour ) |
reference | string | No | An internal reference identifier used by the Supplier (LR1-01 ) |
locale | string(RFC 5646) | Yes | Primary language of the product |
timeZone | string | Yes | Valid IANA timezone code |
instantConfirmation | bool | *Yes | *Indicates whether the client can expect an immediate confirmation of a booking with this product |
instantDelivery | bool | Yes | Indicates whether the client can expect immediate delivery of the customer's tickets |
availabilityType | string(enum) | Yes | This indicates whether the Product can be redeemed only for a specific start time (START_TIME , e.g. a guided tour) or valid any time during normal business hours (OPENING_HOURS ) |
deliveryFormats | array[string(enum)] QR_CODE , EAN13 , UPCA , TEXT , CODE128 , CODE39,URL,
INTERLEAVED | Yes | Indicates the operator's desired format for the ticket barcode |
deliveryMethods | array[string(enum)]
TICKET , VOUCHER | Yes | A value of TICKET indicates that there will be one deliveryValue for each ticket in the Booking while a value of VOUCHER indicates that there will be one deliveryValue that is shared among all tickets in the Booking |
redemptionMethod | string(enum) | Yes | This indicates the redemption requirements for the customer. A value of MANIFEST indicates that the customer MUST provide a form of identification to redeem and as such a printed or digital copy of the ticket is OPTIONAL. A value of DIGITAL indicates that the customer MUST provide a copy of the ticket but MAY be digital or printed. A value of PRINT indicates that the customer MUST provide a printed copy of the ticket (this is typically only used when the Supplier must retain the printed copy for their records) |
productType | string(enum)
| No | This indicates the type of product whether it is ATTRACTION (no seat selection), SEATING (with specific seat selection) or BEST_AVAILABLE (with best available seat assignment) |
capabilities | array[Capability] | No | A list of optional and required capabilities available for this product |
options | array[Option] | Yes | A list of product variations available to reserve under this product |
Support for delayed booking confirmations (instantConfirmation: false
) is currently unavailable.
Note on Availabilities
Please note that the OBS specification requires that all products must return valid availabilities through the API. Availabilities with unlimited capacity may still be specified through the use of the FREESALE
availability status.
Note on Times
It is important that the timeZone
on the product accurately reflect the local offset of the attraction. This field is used to calculate the local time values returned through the availabilities endpoint.
Capabilities
The following capabilities are supported by the Product object (click the link to learn more!):
Option
An Option represents a variant of a Product. Each Product must contain one or more options, which must have an id
unique within the Product.
The Option object's fields, value types and descriptions are enumerated below.
Field Name | Type | Required | Description |
---|---|---|---|
id | string | Yes | Identifies a unique option within a Product (0001 ) |
internalName | string | Yes | Human-readable name for easy identification. Not to be shared with customers (Morning ) |
reference | string | No | An internal reference identifier used by the Supplier (LR1-01 ) |
units | array[Unit] | Yes | A list of units available to reserve under this option |
Capabilities
The following capabilities are supported by the Option object (click the link to learn more!):
Unit
The Unit object enumerates the different types of guests an option may be booked under. Units have an identifier that must be unique within their option. They also bear a type
field which may be populated with one of the values below:
The Unit object's fields, value types and descriptions are enumerated below.
Field Name | Type | Required | Description |
---|---|---|---|
id | string | Yes | A unique identifier within the option (youth_10_17 ) |
internalName | string | Yes | Human-readable name for easy identification. Not to be shared with customers (Youth (Summer) ) |
reference | string | No | An internal reference identifier used by the Supplier (LR1-01-new ) |
type | string(Unit Types) | Yes | The type of traveler this unit represents |
Note on Unit Types
- One of
ADULT
,CHILD
,INFANT
,YOUTH
,STUDENT
,SENIOR
may be used to describe a particular age or occupation of a customer - The
TRAVELER
type may be used instead of the above listed types, if distinctions between age or occupation are not relevant to the product.
Capabilities
The following capabilities are supported by the Unit object (click the link to learn more!):