DESCRIPTION
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": ""
}
]