Mapping strategy of activities

Making your live easy to maintenance all the activities

Datastructure of Availabilities ๐ŸŒ

Mapping the correct availabilities, dates, capacities, and prices is essential for synchronizing your platform with the Leisure Link API. Availabilities define key aspects of booking:

  • What is bookable: Various activities or services available for reservation.
  • When it is bookable: Specific dates and times when reservations can be made.
  • Price: Costs associated with each booking option.
  • Capacity: Number of available seats or slots.
  • Personalization fields: Specific information required for booking, enhancing the user experience.

Mapping Strategy ๐Ÿ—บ

Considering the diversity of options available in an activityโ€”such as first-class vs. second-class, one-way vs. round-trip, or different durations with varied pricingโ€”the Leisure Link API organizes these options within an activity to enhance user experience.

Best Practices

  • Activity ID Mapping: We recommend mapping by activity ID to dynamically manage content. This simplifies synchronization as it minimizes dealing with offer variances.
  • Offer Specific Mapping: Mapping by both activity ID and offer ID is recommended for customized content around specific offers. However, be cautious as offers can frequently change, be replaced, or deleted, unlike activity IDs.

Importance of Labels, Sorting, and Descriptions ๐Ÿท

Each offer is clearly labeled, so manual distinction between offers is unnecessary. Short descriptions are sometimes provided to clarify the differences between offers explicitly. Sorting logic for offers is also provided.

Example of an API Response ๐Ÿ“

The JSON structure below shows how offer details, including ticket categories and availabilities, are presented:

[
  {
    "offerId": "string",
    "offerLabel": "string",
    "sequenceIndex": 0,
    "openingHours": "string",
    "ticketCategories": [
      {
        "ticketCategoryId": 0,
        "minAge": 0,
        "maxAge": 0,
        "price": {
          "amount": "string",
          "currency": "string",
          "formatted": "string"
        },
        "distributorNetPrice": {
          "amount": "string",
          "currency": "string",
          "formatted": "string"
        },
        "articlePrice": 0,
        "articleLabel": "string",
        "occupancy": 0,
        "maxOccupancy": 0,
        "audience": "string",
        "discountType": "string",
        "occupancyType": "string",
        "note": "string",
        "categoryType": "string",
        "isActiveForPartnerapi": true,
        "label": {
          "formatted": "string",
          "audience": "string",
          "discount": "string",
          "ageRestriction": "string"
        }
      }
    ],
    "availabilities": [
      {
        "availabilityId": "string",
        "ticketCategoryIds": [
          0
        ],
        "isAllDay": true,
        "startsAt": "string",
        "endsAt": "string",
        "cutoff": "string",
        "capacity": 0,
        "cancellableUntil": "string"
      }
    ]
  }
]

Checking Availability and Personalization Options ๐Ÿ•’

Before making a reservation, it is essential to check for any personalization options that can be included with a booking.

This endpoint fetches personalization fields for a specific activity, which are required by many providers and ticketing systems to generate tickets.