Full Fat Calendar Widget

The "Full Fat" calendar widget renders a full-blown calendar to select the performance date and time of a specific product. It is designed to be embedded on a standalone "calendar"-type page. You can check out a working demo here.

Embedding the Widget

  1. Ensure you've got a valid channel id.
  2. Create a new html page and add the following markup, switching the configurable data in braces with your own.

<!doctype html>
<html lang="en">
  <head>
    <title>Full Fat widget example</title>
  </head>
  <body>
    <div
        data-app="inventory-app"
        data-action-url="{http://your-website-url/destination-page.html}"
        data-channel-id="{your-channel-id}"
        data-view-name="full-fat-calendar"
        data-product-id="{id of product e.g. 1587 for "Wicked"}"
        data-product-type="{should be show/attraction}"
        data-api-path="https://inventory-service.tixuk.io"
    ></div>
    <script type="text/javascript" src="https://inventory-service.tixuk.io/v5/js/quicksearch.js"></script>
  </body>
</html>

Supported data attributes

In addition to the standard data attributes used by all Widgets, the following data attributes are used to customise the behaviour or 'look and feel' of the Full Fat calendar widget.

NameMandatoryTypeSourced from Query StringDescription
data-appYesStringn/aIndicates the host app to communicate with.
It should be "inventory-app"
data-view-nameYesStringn/aView name of the specific widget. For this calendar widget, it should be full-fat-calendar.
Supported data-view-names:
full-fat-calendar
full-fat-calendar-with-summary
data-channel-idYesStringn/aThe id of the affiliate for which the embedding context (i.e. website) belongs.
data-api-pathYesStringn/aThe host for the data service to use. This should be the fully qualified domain for the relevant capability service.
Example: https://inventory-service.tixuk.io/
data-product-idYes*Numberproduct_idIdentifier of the product Id using for requests.

*Data-attr can be omitted in favour of property being supplied via query string. Query string values override data-attrs.
data-quantityNoNumberqtNumber of tickets which the widget should display as selected by default e.g. "2". (should be in range 1 - 10)
data-product-id-for-contentNo*Numbercontent_product_idIdentifier of the product for content-service api calls.
Default value: data-product-id

* Data-attr can be omitted in favor of property being supplied via query string. Query string values override data-attrs.
data-action-urlNoStringn/aDestination to redirect to on full fat submission.
Example: http://your-website-url/destination-page.html
data-booking-startsNo*Datebooking_startsRepresents the first date a user can select (the availability is calculated "from" this date).

*Data-attr can be omitted in favour of property being supplied via query string. Query string values override data-attrs.
data-booking-endsNo*Datebooking_endsRepresents the last date a user can select (the availability is calculated "to" this date)

* Data-attr can be omitted in favour of property being supplied via query string. Query string values override data-attrs.
data-css-modeNoStringn/aThe CSS to be applied to the widget. Valid values are:
- full (default)
- grid
- min
data-labels-configNoJSON Objectn/aSet of labels to use for the Full Fat Calendar. See "Configuring labels" below for more details.
data-product-typeNoStringproduct_typeValid values are:
show (default)
attraction
data-venue-idNo*Stringvenue_id* If a data-product-id is supplied, the corresponding venue id for the product must be supplied.
data-dateYesDatedateDate of performance

* Data-attr can be omitted in favour of property being supplied via query string. Query string values override data-attrs.
data-user-localeNoStringn/aA string indicating the language which should be used for displaying labels (see the "configuring labels" section below).
data-show-spinner-during-widget-loadingNoBooleann/aIf set to true shows spinner during widget loading (currently applies for Quick Search widget only)
data-custom-calendar-configNoJSON Objectn/aList of calendar options to change calendar behaviour. List of full options you find here
data-disable-redirect-on-errorNoBooleann/aWhen error occurs, popup appears and in several seconds redirect to homepage happens.

In order to prevent redirect, this attribute shold have "true" value.
data-target-blankNoBooleann/aA flag indicating opening data-action-url in the current/new tab

Full Fat Calendar Display for Shows vs Attractions

Due to internal data and API differences, there are slight differences in terms of how the full fat calendar displays for shows vs attractions.

The main differences are, when displaying for attractions:

  1. The full fat calendar does not include a "Show times" tab.
  2. When a date is selected, the full fat calendar does not display a timeslot container.

Show

Attrraction

For attractions, times are instead selected on a following/separate step.

Harry Potter Support

The Full Fat calendar provides out-of-the-box support for Harry Potter and its "two part" performances. For example, there is additional help text provided and tweaked text descriptions. You can see more here.

Currency Support

Products will use the local currency based on the event location (eg. London West End GBP, New York Broadway USD).

Configuring labels

The Full Fat calendar widget comes with some default text labels, but these can be customised to your liking. To do so, use the "data-labels-config" attribute, like so:


<div
    data-app="inventory-app"
    data-view-name="full-fat-calendar"
    data-channel-id="encoretickets"
    data-product-type="show"
    data-product-id="1587"
    data-api-path="https://inventory-service.tixuk.io"
    data-action-url="https://google.com"
    data-user-locale="en-GB"
    data-labels-config='{
        "timeValidationMessage": { "en-GB": "[T] Please select a time of performance" },
        "calendarValidationMessage": { "en-GB": "[T] Please select a performance date" },
        "fullFat": {
           "calendarTicketSearchButton": { "en-GB": "[T] Pick your seats" }
         },
        "calendar": {
           "searchAvailability": { "en-GB": "[T] Searching availability" }
         }
     }'

>
</div>

calendarTicketSearchButton

Text of search button

timeValidationMessage

Text of button (desktop) and popup (mobile) when time is not selected

calendarValidationMessage

Error state of button (desktop) and popup (mobile) when date is not selected

searchAvailability

Text of spinner when calendar loading