Skip to content

Ordering of experiencebank product

Group tickets

When the price defined in the price list of the product has a MaxSeat property with a value of more than 2, it means that the price is related to group of travelers.

Restriction for travelers:

  • When at least one of the travelers has selected a group price, then all other travelers must have the same price category selected. That means that all of the travelers are in the same group
  • Only one group can be defined per order item
  • A group price cannot be combined with any of other prices within one order item
  • The number of travelers must be within the boarders defined with the MinSeats and MaxSeats properties

Tip

If it is necessary to add multiple groups then add them in a multiple order items

Get offers

Offering of experienceBank products works just other offerings. There are 2 possibilties:

With the number of travelers in the request

When offer bundles are requested with the NumberOfTravelers, the offer bundels in the result will contain an offer for each traveler.

The response will contains offer bundles for all available dates and price categories. It is not filtered by the priceCategory in the offer request.

With a traveler-list in the request

Query for offers with a list of travelers requires a priceCategory defined for each traveler. Otherwise a validation error will be returned.

The response will contain offer bundles for each availability returned from experienceBank.

Add ons

Since the priceCategory is the only property of the traveler which is required for ordering it's possible to skip the definition of each traveler when adding the offer bundle to an order item.

{
    "productVariantIdentifier": "exp_opt_3bd1d5f1-7499-4213-ac77-bb40f85f94db",
    "dateFrom": "2023-05-20T00:00:00Z",
    "dateUntil": "2023-05-22T23:59:59Z",
    "priceCategory": [],
    "traveler": [
        {
            "priceCategory" :"9466800" // adult
        }, 
        {
            "priceCategory" :"9466803" // child
        },
        {
            "priceCategory" :"9466806", // Infant
            "givenName": "Ruth"
        }
    ]
}
{
    "orderQuantity":1,
    "offerBundleId": "32cdc45c-5e24-4f26-acb2-b881ceaa7f2f""
}

However if there is the necessity to add an addOn to one of the traveler, than it's necessary to define all of the travelers.

Those travelers whith an addOn must specify all required fields of a traveler, the other ones do not.
If offering was requested by the numbeOfTravelers then it's good enough to specify just an empty objects for the travelers which have no addOn defined.

{
    "productVariantIdentifier": "exp_opt_3bd1d5f1-7499-4213-ac77-bb40f85f94db",
    "dateFrom": "2023-05-20T00:00:00Z",
    "dateUntil": "2023-05-22T23:59:59Z",
    "priceCategory": [],
    "numberOfTravelers": 3
}
{
    "orderQuantity":1,
    "offerBundleId": "{{ offerBundleId }}",
    "addOn":[
        {
            "product": {
                "identifier": "49327"
            },
            "orderQuantity": 1
        }
    ],
    "orderedItem": {
        "traveler": [
            {
                "identifier": "uniquieId123",
                "givenName": "Mike",
                "familyName": "Lomerbarth",
                "nationality":"de",
                "gender":"Male",
                "birthDate": "1968-06-26T00:00:00+02:00",
                "addOn":[
                    {
                        "product": {
                            "identifier": "49330"
                        },
                        "orderQuantity": 1
                    }
                ]
            },
            { // traveler without any information
            },
            { // traveler without any information
            }
        ]
    }
}

If the offering was requested with a list of travelers then it's necessary to define all of the travelers with their identifiers. PriceCategory can be ommited in those requests.

{
    "productVariantIdentifier": "exp_opt_3bd1d5f1-7499-4213-ac77-bb40f85f94db",
    "dateFrom": "2023-05-20T00:00:00Z",
    "dateUntil": "2023-05-22T23:59:59Z",
    "priceCategory": [],
    "traveler": [
        {
            "priceCategory" :"9466800", // adult,
            "identifier": "uniqueId214"
        }, 
        {
            "priceCategory" :"9466803" // child
        },
        {
            "priceCategory" :"9466806", // Infant
            "givenName": "Ruth"
        }
    ]
}
{
    "orderQuantity":1,
    "offerBundleId": "{{ offerBundleId }}",
    "orderedItem": {
        "traveler": [
            {
                "identifier": "uniqueId214" // adult
            }, 
            {
                "identifier": "5f10420d-6a4a-48a4-9f30-8b6647177ac6", // child - id were autogenerated and gotten from the offers response
                "givenName": "Mike",
                "familyName": "Lomerbarth",
                "nationality":"de",
                "gender":"Male",
                "birthDate": "2001-06-26T00:00:00+02:00",
                "addOn":[
                    {
                        "product": {
                            "identifier": "49330"
                        },
                        "orderQuantity": 1
                    }
                ]
            },
            {
                "identifier": "3e84068e-62c1-4ab7-7902-867dd4bca8c8" // infant - id were autogenerated and gotten from the offers response
                // since givenName is not readonly field it was replaced by null value
            }
        ]
    }
}

Last update: February 1, 2024 17:37:15