Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

DESCRIPTION

  1. Get all required preliminary information

  • countryId and cityId - from

GET / locations

  • supplierId – from

GET /companies

  • themes – from

GET /ownExcursionContractThemes

2. Create Excursion using

POST /ownExcursionContracts

For example:

{

  "sharingType": "SHARED",

  "transportationType": "OFF_SITE",

  "departureLocations": [

    {

      "type": "MANUAL",

       "name": {

        "en": "Bus stand across the road from the Rubis Oistins Gas Station"

      },

      "countryId": 3114,

      "cityId": 166987,

      "timeShift": "00:00"

    }

  ],

  "destinationLocations": [

    {

      "type": "MANUAL",

      "name": {

        "en": "Bus stand across the road from the Rubis Oistins Gas Station"

      },

      "countryId": 3114,

      "cityId": 166987,

      "timeShift": "00:00"

    }

  ],

  "duration": "02:30",

  "singleDay": true,

  "themes": [

    "Adventure",

    "Exclusive"

  ],

  "shortDescription": {

    "en": "An experience not to be missed. Explore the popular Oistins area while sampling the famous local fare and mingling with the locals and fisherfolk. "

  },

  "supplierId": 3233501,

  "transactionsCurrency": "USD",

  "description": {

    "en": "Oistins is located on the South Coast of Barbados and operates primarily as a fishing village. The fishing village boasts a dockyard, jetty, fish market and a mix of fish food shops in Oistins Bay Gardens. You will tour the dockyard, view the jetty and visit the fish and craft market. You will also sample traditional Bajan fish based fare at three different stops. The tour will end on Miami Beach where you will relax and view the town’s coastline."

  },

  "active": true,

  "name": {

    "en": "Oistins Fish Lovers' Food Tour"

  }

}

 3. Create catalogue of categories within Excursion using

POST /ownProductServiceCategories

For example:

{

  "contractId": 2810327,

  "name": {

    "en": "Tour"

  },

  "active": true

}

 

4. If necessary, create additional categories of travellers using

POST /ownProductPaxes

For example:

{

  "contractId": 2810327,

  "name": {

    "en": "Child"

  },

  "category": "CHILDREN",

  "isDefault": false,

  "ageFrom": 2,

  "ageTo": 11,

  "description": {

    "en": "Children aged 2-11 years old"

  },

  "active": true

}

 

Note: adult is created by default, so there is no need to create it). But you might need to change his age via PUT /ownProductPaxes

5. Then create all services for Excursion using

POST /ownExcursionServices

For example:

{

  "accompanimentInfos": [

    {

      "type": "GUIDE",

      "languageCode": "EN"

    }

  ],

  "startTime": "20:00",

  "maxOccupancy": 20,

  "minOccupancy": 1,

  "categoryId": 2810340,

  "contractId": 2810327,

  "active": true,

  "description": {

    "en": "Tour"

  },

  "name": {

    "en": "New York Tour, 20:00"

  }

}

 

Now "startTime" optional, it’s not necessary to add it.

"categoryId" can be obtained from GET /ownProductServiceCategories

 

6. If you need Extra services - use

POST /ownProductExtraServices

For example:

{

  "contractId": 2810327,

  "name": {

    "en": "City Tax"

  },

  "description": {

    "en": "Local city tax"

  },

  "active": true,

  "unitPricingType": "PER_UNIT",

  "categoryId": 2810336,

  "alwaysAvailable": true,

  "forAllPaxes": true,

  "availableForAll": true,

  "calculationType": "BY_SERVICE"

}

 "categoryId" is taken from GET /ownProductSecondaryServices

7. Upload photos can be done via

POST /ownProductContractImages

It’s possible to upload via:

  • URL

  • file

PRICES

 Next step is to upload prices – here it’s necessary to use logic of Tariffs and Price lists.

By default one tariff “Standard” will be already created, you can create more.

 

8. To create a new tariff – use

POST /ownProductTariffs

9. To create a new price list – use

POST /ownProductPriceLists and link it with tariff

For example:

{

  "contractId": 2803579,

  "name": "Prices 2023",

  "prices": [

    {

      "paxId": 2803586,

      "serviceId": 2803713,

      "secondaryServiceId": 2803587,

      "amount": 40.0,

      "formula": "40",

      "placeType": "Base"

    },

 

    {

      "paxId": 2803593,

      "serviceId": 2803713,

      "secondaryServiceId": 2803587,

      "amount": 20.0,

      "formula": "20",

      "placeType": "Base"

    }

  ],

  "description": "Prices 2023",

  "active": true,

  "priceTypeCode": "OptionalMatrix",

  "calculationType": "PRICE_PER_SERVICE",

  "tariffLinks": [

    {

      "weekDays": [

        true,

        true,

        true,

        true,

        true,

        true,

        true       

      ],

      "tariffId": 2803588,

      "dateFrom": "2023-01-01",

      "dateTo": "2023-12-31",

      "priority": 1

    }

  ]

}

 

Notes:

  • "paxId" from GET /ownProductPaxes

  • "serviceId" from GET /ownExcursionServices

  • "secondaryServiceId" from GET /ownProductSecondaryServices

 

10.   To create prices for extra services – use POST /ownProductPriceListExtras

 

For example:

{

  "contractId": 2810327,

  "name": "Prices for extras",

  "weekDays": [

    true,

    true,

    true,

    true,

    true,

    true,

    true  

  ],

  "description": "Prices for extras in 2023",

  "bookingDates": [

    {

      "condition": "BETWEEN",

      "dateFrom": "2023-01-01",

      "dateTo": "2023-12-31"

    }

  ],

  "active": true,

  "extraServicePrices": [

    {

      "includeInFee": true,

      "includeInMarkUpAndCommission": true,

      "percentage": true,

      "active": true,

      "amount": 1,

      "availability": "REQUIRED",

      "priceCalculationType": "TOTAL_PRICE",

      "extraServiceId": 2810389

    },

    {

      "includeInFee": true,

      "includeInMarkUpAndCommission": false,

      "percentage": false,

      "active": true,

      "amount": 20,

      "availability": "OPTIONAL",

      "priceCalculationType": "FIRST_NIGHT",

      "extraServiceId": 2810388

    }

  ],

  "tariffLinks": [

    {

      "tariffId": 2810337,

      "dateFrom": "2023-01-01",

      "dateTo": "2023-12-31",

      "priority": 1

    }

  ]

}

 

11.   To create discounts – use POST /ownProductDiscounts

12.   To define cancellation policy – use POST /ownProductPenalties

13.   To defined commission from supplier – use POST /ownProductCommissions

AVAILABILITY

 

And the last step is to setup availability (allotments or on request) and schedule

 

14.   For all types of products there is common method - PUT /availability

 

Within header pass contractId – that defines for each product it is, for example, availability?id=2803579

And here is example of the request:

[

  {

  "operation": "SET",

  "dayOfWeek": [

    true,

    true,

    true,

    true,

    true,

    true,

    true   

  ],

  "amount": 4,

  "categoryId": 2803592,

  "serviceId": 2803705,

  "dateFrom": "2023-01-15",

  "dateTo": "2023-01-15",

  "operationType": ""

 }

]