The key part of our catalog is what we call an activity.
Activities can be, for example, a museum ticket entrance, a city card, a tasting experience.
You can find an activity by specifying a point of interest (city or venue) , by filtering down via macro and micro categories , by dates of generic availability or simply retrieving a plain list of all activities and apply filters either directly at request time or in your application.
Once you have chosen a specific activity, you can then find timeslots availabilities for it.
The first step is to find available calendar dates, then drill down for specific features offered for that date -if any- and eventually pickup a timeslot alongside options and relevant ticket type.
After getting a list of activities, ( retrieve all activities in Italy )
You choose "National Museum in Rome" activity ( identified as activity id "123")
Then you request available dates (see all the calendar days related to it )
Identify a specific date ( 1st of October )
alongside its specific features ( Normal ticket or Guided Tour )
Then you select related timeslot with options ( 10:30 , English as the language for the tour )
And Eventually you identify tickets by type (adult, child...).
Kindly remember that prices vary depending on dates, features and ticket type: you will get a generic price for adult while browsing for dates , just to give you a glimpse of the price, but you have to drill down going through feature, timeslots, options and ticket type to identify a specific product that can be purchased.
Continuing this cart metaphor, you will then be able to add that product to a cart , convert that cart into an order and , in the end, perform a payment for that order.
At this point, in case everything has gone well, you can retrieve the voucher you will use to attend to your event.
Full integration flow, from Catalog to transaction generation