TravelSearch 3 - Changes
This document provides a short overview of changes that were made to the Travel Search 3, the PHP client implementation and / or to this documentation.
Current PHP Reference implementation: v022
Changes since release v021
- Added new criterion types 'AccommodationFacility', 'LeisureFacility', 'RoomFacility'
- Added new Taxonomy endpoints, accommodationFacilities, leisureFacilities and roomFacilities, resulting the new facilities structured into subgroups.
- Added new criterion type 'EndDate' to restrict search results to a maximum end date.
Changes since release v020
- Extended Review object with fields to support content in original language; reviewLanguage, originalLanguage, originalReviewTitle, originalReviewText, originalAccommodationTips, originalSuitableInterests
Changes since release v019
- We reorganized the Additional costs, the additionalCosts list in the PricePerPersonCriterion and PriceDate have been replace with a PriceInfo object contains the same AdditionalCosts as well as extra info.
- AdditionalCosts now also contains the field estimate, to indicate a estimated value.
Example PriceInfo
{
"price": "12900"
"includedInPrice": ["Base"],
"additionalCosts":
[ { "type": "CalamityFund",
"name": "Calamiteitenfonds",
"cents": "250",
"currency": "EUR",
"perPerson": false,
"perNight": false,
"perDay": false }
,{ "type": "TouristTax",
"name": "Toeristenbelasting",
"cents": "250",
"currency": "EUR",
"perPerson": true,
"perNight": true,
"perDay": false,
"estimate": true}
],
"priceIncludingAdditionalCosts": 14775
}
IncludedInPrice supports; Base,Sgr,CalamityFund,ReservationCosts,AdministrationCosts,TouristTax,Other. The additionalCosts.type field now also supports TouristTax
The value of priceIncludingAdditionalCosts can be used instead of the value of the PriceDate.price or the PricePerPersons criterions value, to indicate as complete value as possible, without the need to calculate.
Regarding Tourist Tax
Some touroperators are working to include tourist tax directly in their assortment. For those the tourist tax will be included in the base price and available during the book process. Unfortunately this is not possible for every tour operator on short term or at all.
For those who don't support tourist tax directly, we can add a business-rule based value on our side. When configured it will be added to search-service via additional costs and the booking-service via an extra automatically based on the destination.
Please let Qenner at support@qenner.com if you are ready to have this function enabled.
Changes since release v018
- PackageInfo, is a new object that can be received in a PricePerPersonCriterion object and a PriceDate object. It optionally contains more info on the package the price belongs too. Use the travelSearchOption 'IncludePackageInfo' to add this optional info to the responses, note that this comes at a minor performance penalty.
- AdditionalCost, is a new object that can be added to a PricePerPersonCriterion object and a PriceDate object (as a list in additionalCost field) They contain known online additional costs that will be added to the booking but are not part of the search price. Use the travelSearchOption 'IncludeAdditionalCosts' to add this optional info to the responses, note that this comes at a minor performance penalty.
- packageCode is a new field in the PriceDate object, similary to the transportCode it can be added to the BookRequest object (as preferredPackageCode) when starting a booking.
- The BoardType CriterionType can now be selected multiple times.
Example PackageInfo
{
"name": "Kos Stad/Imperial",
"code": "ACKOSIMPA",
"flags": ['IncludingTransfer']
}
Example AdditionalCost
{
"type": "CalamityFund",
"name": "Calamiteitenfonds",
"cents": "250",
"currency": "EUR",
"perPerson": false,
"perNight": false,
"perDay": false
}
Changes since release v017
- Updated the Search and Taxonomy service intefaces, to require a GuzzleHttp\ClientInterface as the first parameter. While this may break compatibility, it will allow you to provide your own http client and brings this interface closer with the Book Service Php Reference implementation.
- Note that protected service variables have been renamed, this may require some work for users in case you are extending the Search of Taxonomy class.
- Further updated type-hinting for every class
Changes since release v016
- Removed various selection restrictions.
- The value for TransportType in 'getAutoComplete' is now optional.
- The 'search' method no longer has any selection requirements.
- Minimum/Maximum Nightcount no longer have to be maximal 6 nights apart.
- Minimum/Maximum StartDate no longer have to be maximum 7 nights apart, note when only providing a minimum, a maximum will still be set on +7.
Changes since release v015
- Added new CriterionTypes Rating, MinimumRating, MaximumRating, requires access to the Rating provider TravelTrustIt
- Added new function getReviewInformation (/reviewInfo) to review all the reviews of an application, requires access to the Review provider TravelTrustIt.
- Added new TravelSearchOptions AllowShortDescriptionLanguageFallback, AllowShortDescriptionTourOperatorFallback, AllowThumbnailTourOperatorFallback for missing content fallback.
Changes since release v014
- added providerCode and providerName to TaxonomyAccommodation object.
Changes since release v013
- New CriterionType 'MaximumFlightLegs', this can be used to restrict search results to direct flights only. (Only applicable to dynamic flights).
- The 'DepartureAirport' no longer requires a preselected location.
- Experimental: PricePerPerson can now be requested (via /criteria) to obtain available price ranges. Note that this request can add a performance impact and may currently not be as accurate as desired.
- Performed some stability fixes to the PHP reference implementation.
Changes since release v012
- Added getCountries method to return all countries.
- Added getAccommodationsForCountries(array $country_ids), to return add accommodation structure for set of countries as in getAccommodations.
Changes since release v011
- Added transportTypes, tourOperators, accommodationProviders and transportProviders to taxonomy
- Added logo's to taxonomy for the tourOperators, accommodationProviders, transportProviders and carriers item.
- Please note the "note about logo's" in the Taxonomy Api
- Added new function getAccountInformation to the Search Api, return info about the current account and a shared cache identifier which can help improve your cachability.
Changes since release v010
- Minor taxonomy fixes
- Minor PriceCalculation updates
Changes since release v009
Taxonomy
- The getRegions method has fixed.
Changes since release v008
Taxonomy
- The getAirports method has been extended with gpsLocation and timeZone information.
- The getCharacteristics and getCarriers method in the client reference implementation have been fixed.
Documentation
- Best Practices, Caching & Performance (previously Best Practices & Performance) has been updated and extended.
- Moved Extra content information from Api to Taxonomy documentation
- Php Reference documentation itself has been moved to a separate document
Changes since release v007
Taxonomy
Added a taxonomy module, an extension to search module, offering static / bulk data.
The php api has been extended with a secundary "service"-root object, unlocking all taxonomy functions.
The new README - Taxonomy document describes the new functionality.
Changes since release v006
TransportDetails / Flight legs
The TransportDetailsItem has been extended with a flightLegs array. This new FlightLeg object describes a leg of the flight. A TransportDetailsItem with type Flight, will always have at least 1 flightLeg in the flightLegs field.
Criterion changes
- Carrier has been added. As a search and requestable criterion type.
- DepartureAirport, ArrivalAirport and now Carrier (flight related criteria) will no longer provide items when requested without at lease one of Country, District, Place, AccommodationId or OsiCode is selected.
Extra content
Carrier images / icons can now be retrieved, see the Api document for location information.
Changes since release v005
ResultCount updates
The (optional) resultCount added to each criteria request are now only available on the Country, District, Place and Region criteria. Supporting resultCounts on more criteria negatively impacts the overall performance too much in order to maintain that functionality.
New Provider criteria
Two TourOperator like criterion-types have been added, AccommodationProvider and TransportProvider. These could provide extra functionality on business to business solutions. Note that TransportProvider will only contain providers of dynamic flights, providers of packaged flights won't appear as a transport provider.
PriceCalculation extended
Price calculation has been updated. The PriceCalculationRule has been extended with the osiCode field. When field the given price rule applies to the exact OsiCode, in combination with the accommodation provider set for that rule.
Changes since release v004
GPS Searching has been added. There are 2 new criterion types, that should be selected together. GpsLocation with the search point and GpsDistance containing distance in meters you wish to search. (0 - 200000m) GpsLocation can be added as a returningCriterionType, When searching using gps, then GpsDistance can be used as a returningCriterionType and as a sortCriterion
The AccommodationInfo object has been extended with the fields:
- country, containing the country value (next to the name in countryName, that was already available)
- district, ""
- place, ""
- gpsLocation
PriceCalculation objects now contain 'price' properties instead of 'pricePerPerson' properties. The contains are the same. This entails totalPrice in PriceCalculation, totalComponentPrice in PriceCalculationComponent and price in PriceCalculationProduct.
Breaking Changes Depending on your uses, the changes in the PriceCalculation, PriceCalculationComponent and PriceCalculationProduct are not compatible with earlier versions.
Changes since release v003
Assortment of dynamic suppliers or results of dynamically combined components are now represented using a separate tour operator, for now called 'Qenner Dynamic'.
The latest update provides improved separation between tour operators and accommodation or transport providers.
- tourOperator(Name) in AccommodationInfo has been changed to accommodationProvider(Name)
- tourOperator(Name) in TransportDetailsItem has been changed to transportProvider(Name)
- accommodationProvider(Name) added to PriceAccommodation
- tourOperatorId in PriceCalculationRule changed to provider
Breaking Changes Depending on your uses, the changes in the AccommodationInfo and TransportDetailsItem are not compatible with earlier versions.
Changes since release v002
- Added support for text searches.
- Added support for autocomplete calls.
- Added a transportCode to the PriceDate object
- Added the flightNumber to a TransportDetailsItem
- The AccommodationInfoResponse now contains an array of AccommodationInfo objects instead of 1 object.
- The AccommodationInfo object has been extended with the fields, osiCode, osiCodeName, accommodationType, accommodationTypeName and starClassification.
Breaking Changes
- The AccommodationInfoResponse now contains an array of AccommodationInfo objects instead of 1 object.
Changes since initial release
The Search service will only be available using https;
https://search.qenner.comusing the default port 443.The Search object constructor now accepts a 4th parameter 'locale', to correctly localize the service calls. The default value is set to nl-NL.