Pickup points
In the Musement catalog, experiences with pickup points require customers to select a pickup location before selecting a date. This is useful for situations where the dates and prices can vary by pickup location.
If nothing varies for your pickups, consider setting up pickups as mandatory questions instead so that they appear near the end of the booking flow.
When an experience contains pickups, selecting a pickup is required to complete a booking. However, pickups are optional for experiences and suppliers can skip this step if they don't plan to use them.
Creating a pickup
You only need to create a pickup location once. It can be used again for multiple experiences.
curl -X POST '{baseUrl}/supplier/catalog/pickups' \
-H 'accept-version: vnd.porta-api.v1' \
-H 'Authorization: Bearer {accessToken}' \
-H 'Content-Type: application/json' \
--data-raw '{
"latitude": 39.65577,
"longitude": 3.43884,
"name": "Taxi stop hotel melbeach",
"pickup_id": "pickup-123",
"type": "MEETING_POINT"
}'
The following properties are required for new pickup points:
pickup_id
Suppliers must provide their own ID for a pickup. This ID will be used for relevant endpoints and requests.
name
Give the pickup point a name in English that customers will use during booking.
type
This property specifies whether the pickup point is a general location or the lobby of a hotel:
-
HOTEL
- The pickup is at a hotel.
-
MEETING_POINT
- The pickup is a general location.
Pickup points for an experience on Musement.com are separated between the two types:
Coordinates
When creating a pickup point, you can choose to indicate its exact location by including latitude
and longitude
properties.
Offsetting pickup times
When creating a pickup point, the request can also include an optional time_margin
property to indicate how many minutes a pickup will occur before (or after) an availability time slot.
Managing pickups for a time slot
Pickups can only be used for experiences that use time slots, when the availability_slot_type
property value is TIME
. The pickups are not assigned directly to experiences, but rather to an availability slot. This allows you to set up different pickups for different dates and prices (if necessary).
When creating an availability time slot, include a list of pickup IDs. In the example request below, we are creating an availability slot with one pickup point:
curl -X POST '{baseUrl}/supplier/availability/experiences/experience-123/options/option-123/slots' \
-H 'accept-version: vnd.porta-api.v1' \
-H 'Authorization: Bearer {accessToken}' \
-H 'Content-Type: application/json' \
--data-raw '{
"availability_slot_id": "slot-123",
[...],
"pickup_ids": [
"pickup-123"
],
[...]
}'
To add or remove a pickup from an availability time slot, you must update the slot with the modified pickup_ids
property. In the example request below, all pickups are removed:
curl -X PUT '{baseUrl}/supplier/availability/experiences/experience-123/options/option-123/slots/slot-123' \
-H 'accept-version: vnd.porta-api.v1' \
-H 'Authorization: Bearer {accessToken}' \
-H 'Content-Type: application/json' \
--data-raw '{
[...],
"pickup_ids": [],
[...]
}'