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)

ATTRACTION, SEATING, BEST_AVAILABLE

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

Warning

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!):

Location, Content, Policy

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!):

Hours, Content

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!):

Pricing, Content