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.
Once you find an activity, either by specifying a point of interest (city or venue) or by filtering down via macro and micro categories you must find timeslots availabilities.
Since timeslots are shown only for a given date, the first step is to find a suitable (= with availability) date: usually, you can do that via a calendar widget defaulting to a specific range of dates (i.e. the following two weeks from now).
Prices depend on the specific timeslot and the attendee type (adult, child...).
The last action before adding the activity to the cart is then select the ticket type, keeping in mind that there may be some restrictions: i.e. an activity may require children being accompanied by at least one adult.
Full integration flow, from Catalog to transaction generation