TSi TravelSearch SearchAndFind XML layer PackageSearch editie Interfacebeschrijving
TSi Solutions Neptunusstraat 25, 7521 WC Enschede Gorslaan 10, 1441 RG Purmerend Tel. : +31 (0)299 – 458 458 Fax : +31 (0)299 – 438 122
TSI-XML-Doc-001v14-PackageSearch.doc
Documentnummer
: TSI-XML-DOC-001
Versie
: v14
Datum
: 3 november 2008
Auteur(s)
: Alwin Troost, Eerko Vissering
Partner/Opdrachtgever
: TSi Solutions
Status
: Public
© 2008 TSI Solutions
Pagina 2
TSI-XML-Doc-001v14-PackageSearch.doc
Inhoudsopgave 1
Inleiding ...........................................................................................................5 1.1 Doel .....................................................................................................5 1.2 Achtergrond ............................................................................................5 1.3 Opbouw.................................................................................................5 1.4 Historie .................................................................................................5 2 Webservice .....................................................................................................7 2.1 Versies..................................................................................................7 2.2 Soap ....................................................................................................7 2.3 Gebruik .................................................................................................7 2.3.1 Criteria ........................................................................................8 2.3.2 De zoekpagina ..............................................................................9 2.3.3 De zoekresultaat pagina ................................................................. 10 2.3.4 De accommodatie pagina................................................................ 10 2.3.5 Boeken ..................................................................................... 11 2.4 Gebruik van Osi code binnen de webservice ................................................... 12 2.4.1 Wat is een Osi ?........................................................................... 12 2.4.2 Osi code beschikbaarheid ............................................................... 12 2.4.3 Zoek resultaten op ‘Osi niveau’ ......................................................... 12 2.4.4 De OsiCode als geselecteerd criterium ................................................ 12 2.4.5 Boeken en de OsiCode .................................................................. 13 2.5 Beschikbaarheid van het assortiment ............................................................ 13 2.5.1 Het beschikbaarheids criterium ......................................................... 13 2.5.2 Opvragen vertrek data van een accommodatie....................................... 13 2.6 De ‘resultingCriteriumItems’ van het zoekresultaat............................................. 14 2.7 Zoeken op bezetting ................................................................................ 14 3 Objecten en functies van de webservice ............................................................... 15 3.1 Objecten .............................................................................................. 15 3.1.1 Authorisation............................................................................... 15 3.1.2 SearchCriteria ............................................................................. 15 3.1.3 SearchCriterium ........................................................................... 16 3.1.4 SearchCriteriumItem...................................................................... 16 3.1.5 SortCriterium............................................................................... 17 3.1.6 SearchResults ............................................................................. 17 3.1.7 SearchResultItem ......................................................................... 18 3.1.8 AccommodationInfo ...................................................................... 19 3.1.9 PriceInfo .................................................................................... 19 3.1.10 PriceInfoItem .............................................................................. 20 3.1.11 TripPriceInfo ............................................................................... 21 3.1.12 TripPriceInfoItem.......................................................................... 22 3.1.13 TripOption.................................................................................. 23 3.1.14 TripRoom .................................................................................. 24 3.1.15 TripRoomPrice ............................................................................ 25 3.2 Functies .............................................................................................. 26 3.2.1 getCriteriumNames ....................................................................... 26 3.2.2 getCriteria .................................................................................. 27 3.2.3 getResultCount ............................................................................ 28 Pagina 3
TSI-XML-Doc-001v14-PackageSearch.doc
4
5
6
3.2.4 getSortableCriteriumNames ............................................................. 29 3.2.5 getSearchResults ......................................................................... 29 3.2.6 getAccommodationInfo................................................................... 30 3.2.7 getPriceInfo ................................................................................ 31 3.2.8 getBookUrl ................................................................................. 32 3.2.9 getReducedSearchResults .............................................................. 33 3.2.10 getOsiSearchResults..................................................................... 35 3.2.11 getTripPriceInfo ........................................................................... 36 3.3 Het gebruik van selectedCriteriumItems ......................................................... 38 3.4 Foutafhandeling ..................................................................................... 38 Gedetailleerde criteria beschrijving ..................................................................... 40 4.1 CriteriumNames ..................................................................................... 40 4.2 Extra beperkingen................................................................................... 43 4.2.1 Criteria selecties .......................................................................... 43 4.2.2 Automatisch beperkingen ................................................................ 44 Tips voor een goed presterende website .............................................................. 45 5.1 Het gebruik van getCriteriumNames en getSortableCriteriumNames ....................... 45 5.2 Te veel CriteriumItems opvragen m.b.v. getCriteriumItems ................................... 45 5.3 Versneld afdwingen van selecties ................................................................ 45 5.4 Zoeken en pagineren ............................................................................... 46 5.5 Gebruik van getReducedSearchResults ......................................................... 46 5.6 Sorteren van uw resultaten ........................................................................ 46 Updates ........................................................................................................ 47 6.1 13 februari 2007 ..................................................................................... 47 6.1.1 Gewijzigd: Criterium StarClassification ................................................ 47 6.1.2 Nieuw: Criterium AccommodationName ............................................... 47 6.1.3 Snelheid .................................................................................... 47 6.2 23 februari 2007 ..................................................................................... 47 6.2.1 Periode zoeken / criteria opvragen / resultaten tellen................................ 47 6.2.2 Accommodatie-specifieke-criteria cachen ............................................. 47 6.2.3 Zoekresultaat cachen..................................................................... 48 6.3 26 april 2007 ......................................................................................... 48 6.3.1 Nieuw: Prijs informatie opvragen ....................................................... 48 6.4 Januari 2008 ......................................................................................... 48 6.4.1 Nieuw: Meerdere gelijke criteria opgeven ............................................. 48 6.4.2 Nieuw: getReducedSearchResults ..................................................... 48 6.4.3 Nieuw: OsiCode ........................................................................... 48 6.4.4 Aangepast: Maximale zoekresultaten .................................................. 48 6.5 April 2008 ............................................................................................ 48 6.5.1 Nieuw: Region ............................................................................. 48 6.5.2 Nieuw: TravelType ........................................................................ 49 6.6 Juli 2008 .............................................................................................. 49 6.6.1 Nieuw: Skigebieden ...................................................................... 49 6.6.2 Nieuw: Vrij zoeken ........................................................................ 49 6.6.3 Nieuw: Beschikbaarheidindicaties ...................................................... 49 6.7 Oktober 2008 ........................................................................................ 49 6.7.1 Nieuw: getTripPriceInfo .................................................................. 49 6.7.2 Nieuw: Zoeken op kamerbezetting ..................................................... 49
Pagina 4
TSI-XML-Doc-001v14-PackageSearch.doc
1 Inleiding 1.1 Doel De TSi TravelSearch SearchAndFind XML layer is een XML-based webservice ter ontsluiting van het zoek, vind en accommodatie-info proces van de TSi TravelSearch. Het boeken van producten valt niet onder deze webservice definitie. De webservice levert een BookUrl op waarmee een geselecteerde reis geboekt kan gaan worden. Deze boekingspagina’s worden gehost bij TSi, maar kunnen in beperkte mate aan de stijl van de website aangepast worden.
1.2 Achtergrond De TSi TravelSearch maakt nu gebruik van een aantal door TSi gebouwde en gehoste standaard schermen voor het zoeken, tonen van resultaten en tonen van accommodatie-informatie. TSi wil een verdere integratie van deze functionaliteiten in websites van derden mogelijk maken, die flexibeler in te zetten is qua layout en proces. De hiervoor gekozen vorm is die van een webservice, die TSi aan haar klanten aanbied.
1.3 Opbouw Dit document beschrijft de technische specificaties van de oplossing. Het opvraagproces dat de webservice ondersteund wordt eerst beschreven, waarna de gebruikte objecten en functies opgesomd worden. Daarna volgt een gedetailleerde technische beschrijving van de voorwaarden van gebruik van de verschillende functies.
1.4
Historie
Gebeurtenis
Versie
Datum
I.
Initiële Versie
v1
28-08-2006
II.
Aangepaste benamingen en structuur van SearchCriteria
v2
03-09-2006
III.
Updates in WSDL verwerkt; 1st public draft
v3
22-09-2006
IV. Updates in WSDL verwerkt; public concept; public dev-access
v4
10-11-2006
V.
v5
01-12-2006
VI. Voorbeeld input/output voor getBookUrl en Availability toegevoegd
v6
13-12-2006
VII. GetAccommodationInfo argument verbeterd naar AccoInfoCode
v7
14-12-2006
VIII. notBookablePage argument aan bookurl toegevoegd
v8
16-02-2007
IX. Toegevoegde informatie rond getBookUrl. Updates toegevoegd
v9
13-04-2007
X.
GetPriceInfo informatie toegevoegd, ‘Proces’ hoofdstuk vervangen door ‘Gebruik’ hoofdstuk.
v10
26-04-2007
XI. ‘getReducedSearchResults’ en ‘getOsiSearchResults’ functies toegevoegd, ‘Beschikbaarheid’ (§2.5) uitgebreid, , ‘Foutafhandeling’ (§3.4) uitgebreidt, ‘Gebruik van het "Trip’ criterium’ (§2.3.4.1), ‘Gebruik van Osi code binnen de webservice’ (§2.3.5), ' Het gebruik van selectedCriteriumItems’ (§3.3) toegevoegd. ‘Gedetailleerde technische beschrijving’ vervangen door ‘Gedetailleerde criteria beschrijving’ (§4).
v11
23-01-2008
ResultCount toegevoegd aan SearchCriteria result object
Pagina 5
TSI-XML-Doc-001v14-PackageSearch.doc Index toegevoegd (Einde document), Soap beschrijving toegevoegd (§2.2), herindeling van hoofdstuk 2 en 3. ‘Criteria’ §2.3.1 toegevoegd. ‘Objecten’ §3.1 uitgebreid met voorbeelden. XII. ‘Region’ en ‘TravelType’ criterium toegevoegd.
V12
22-04-2008
XIII. ‘Beschikbaarheid van het Assortiment’ uitgebreid met ‘Het beschikbaarheids criterium’ (§2.5.1). Nieuwe criteria SkiArea, FreeSearch, AvailabilityEstimate, MinimumAvailabilityEstimate en MaximumAvailabilityEstimate toegevoegd. ‘getCriteria’ uitgebreid met ‘Optimaal gebruik maken van de getCriteria functie’ (§3.2.2.1). Hoofdstuk ‘Tips voor een goed presterende website’ (§5) toegevoegd.
V13
8-7-2008
XIV. Prijzen op kamerniveau toegevoegd, zie de functie ‘getTripPriceInfo’ (§3.2.11) en de nieuwe objecten TripPriceInfo, TripPriceInfoItem, TripOption, TripRoom en TripRoomPrice (§3.1.11 t/m §3.1.15). Zoeken op kamer bezetting toegevoegd, m.b.v. het SingleAccommodationOccupation criterium.
V14
10-2008
Pagina 6
TSI-XML-Doc-001v14-PackageSearch.doc
2 Webservice 2.1 Versies De webservice kent drie versies: •
PackageSearch: pakketreizen aangeboden door touroperators
•
CharterSearch: charters aangeboden door touroperators
•
HolidayHomeSearch: vakantiehuisjes aangeboden door touroperators en particulieren
Dit document richt zich vooral op de PackageSearch als voorbeeld. Ook de hierin genoemde criteria, is de set, zoals deze beschikbaar is in de PackageSearch.
2.2 Soap Deze webservice is gebaseerd op S.O.A.P. (Simple Object Access Protocol). Dit is een communicatie protocol waarbij Xml berichten over Http verstuurd worden. De berichten bevatten een procedure aanroep die aan de server zijde (de webservice) worden uitgevoerd, waarna de gebruiker het antwoord in een dergelijk Xml bericht ontvangt. Deze manier van communiceren wordt RPC (Remove Procedure Call) genoemd. De gehele webservice is technisch beschreven in het bijbehorende w.s.d.l. bestand (Web-Service Definition Language), dit bestand heeft u waarschijnlijk bij deze handleiding aangetroffen. Indien u al toegang heeft tot de SearchAndFind webservice, dan kunt u de laatste versie ook downloaden door ‘/travelsearch/services/PackageSearch?wsdl’ achter de ‘hostname’ van de webservice te plaatsen, bijvoorbeeld ‘http://xml.tsitravelsearch.nl/travelsearch/services/PackageSearch?wsdl’ Hoewel de w.s.d.l. technisch vast legt hoe er met service gecommuniceerd moet worden, kunt u deze handleiding gebruiken als handvat om de webservice ook functioneel te kunnen gaan gebruiken.
2.3 Gebruik De webservice kent 10 functies. Met de 3 belangrijkste functies getCriteria, getSearchResults en getBookUrl kan al een volledig functionerend geheel gemaakt worden. Een website, gebruikmakend van de webservice kan opgedeeld worden in 3 stappen, de Zoek pagina, de Zoekresultaat pagina, en de Accommodatie pagina. Zie onderstaand figuur voor het verband tussen deze stappen en de gebruikte functies.
Pagina 7
TSI-XML-Doc-001v14-PackageSearch.doc
Voorbeeld van het verband tussen Zoek, Zoekresultaat en de Accommodatie pagina 2.3.1
Criteria
Het belangrijkste onderdeel binnen de webservice zijn de criteria (SearchCriterium §3.1.3) en de items hierbinnen (SearchCriteriumItem §3.1.4). De meeste functies accepteren criteria en / of leveren een set van criteria op. Een SearchCriterium is bijvoorbeeld het Country criterium, deze representeert een landen criterium. Dit element bestaat uit een verzameling SearchCriteriumItems, alle landen. Met behulp van o.a. de getCriterium functie (§3.2.2) kunt u alle mogelijke items van een bepaald criterium opvragen (bijv. Country). U verkrijgt dan een lijst met alle selecties van dat type criterium (bijv. alle landen). Hieronder vindt u een voorbeeld van het Country criterium.
Pagina 8
TSI-XML-Doc-001v14-PackageSearch.doc
Voorbeeld van het Country criterium Aan het bovenliggende criteriumItem kunt u zien dat dit item van het soort ‘Country’ is (criteriumName), weergegeven zou moeten worden als ‘Bulgarije’ (displayName), deze geïdentificeerd wordt d.m.v. id 15741 (dit gebruikt u o.a. om Bulgarije als selectie mee te geven), er binnen de huidige selectie 82 resultaten zijn binnen het land (resultCount), Bulgarije niet is geselecteerd (selected) en dit een geldig criterium is (valid). Stel nu dat u Country ‘Bulgarije’ en bijvoorbeeld ook het AccommodationType ‘Hotel’ selecteert, dan kan het resultaat er als volgt uitzien.
Voorbeeld van het Country criterium, nu met enkele selecties U ziet dat het SearchCriteriumItem er ongeveer hetzelfde uitziet. Nu ziet u echter dat er maar 74 resultaten zijn, wat inhoudt dat er 74 resultaten (resultCount) binnen Bulgarije zijn, die ook van het type Hotel zijn, ook ziet u nu dat Bulgarije als geselecteerd aangemerkt is (selected). Dit houdt o.a. ook in dat, wanneer u gaat zoeken en u ‘Bulgarije’ en ‘Hotel’ als geselecteerd criteriumitem meegeeft ongeveer 74 resultaten zal kunnen verwachten. Door de gevonden criteriumItems als lijstjes (drop-down items in een webpagina bijvoorbeeld) aan te bieden, kunt u de gebruiker een steeds meer beperktere keuze bieden, zodat zij weten hoeveel resultaten zij ongeveer zouden kunnen verwachten. Let er op dat dit ook een soort van ‘Reset’ benodigd, omdat een website gebruiker anders op een laag niveau vast kan gaan zitten. Dit kunt u bijvoorbeeld doen door alle selecties weg te halen d.m.v. een knop, of door bijvoorbeeld de landen lijst te gebruiken als middel om alle overige selecties ongedaan te maken. SearchCriterium items gebruikt u om een reeds gedane selectie bekent te maken (getCriteria §3.2.2), om het aantal zoekresultaten op te vragen (getResultCount §3.2.3), zoekresultaten op te vragen (getSearchResults §3.2.5), prijs informatie op te halen (getPriceInfo §3.2.7) en een book-url te laten samenstellen (getBookUrl §3.2.8). 2.3.2
De zoekpagina
Op de zoekpagina biedt u criteria aan, bijvoorbeeld ‘Country’, ‘AccommodationType’ en ‘TransportType’. Deze kunt u in een keer opvragen door deze als requestedCriteriumNames aan de Pagina 9
TSI-XML-Doc-001v14-PackageSearch.doc ‘getCriteria’ functie mee te geven. U krijgt dan niet alleen lijsten terug van alle landen, accommodatietypes en transporttypes, maar ook per land en type het aantal resultaten dat het systeem voor dat land / type biedt. Aan de ‘getCriteria’ functie kunt u ook de geselecteerde criteria meegeven. Wanneer u bijvoorbeeld Nederland selecteert en dezelfde functie aanroep als hierboven doet, vindt u dezelfde criteria als voorheen, echter zal bijvoorbeeld in het resultaat van de ‘AccommodationType’ de aantallen oftewel de ‘resultcount’ voor hotel lager zijn, dit duidt erop dat er minder hotels in Nederland zijn, dan dat er zijn in het totale aanbiedingen bestand. Ook kunt u in die lijst bijvoorbeeld appartement vinden met een ‘resultcount’ 0, dat duidt er op dat er voor de huidige selectie (Nederland) geen appartementen gevonden zullen worden, in dergelijke gevallen zal ook het ‘valid’ vlagje op false staan. Om optimale prestaties te krijgen is het aan te bevelen een selectie te bieden uit de volgende criteria: Country, District, Place, AccommodationType, TransportType, BoardType, DepartureAirport, StarClassification, TourOperator, NightCount en Characteristic. Daarbij kan het verstandig zijn zo spoedig mogelijk een selectie te hebben binnen een of meerdere van de Country, BoardType, NightCount of AccommodationType criteria. Zie §4.2 voor meer aanbevelingen en beperkingen. 2.3.3
De zoekresultaat pagina
Deze pagina bouwt u a.d.h.v. de resultaten die u verkrijgt door een ‘getSearchResults’ functie aanroep (Zie ook §3.2.5). Deze functie roept u aan met als geselecteerde criteria de selectie die op de zoekpagina is gemaakt. U kunt hier paginanummers en resultaten-per-pagina opgeven om zo een specifieke pagina uit het resultaat te verkrijgen. Wanneer u een andere pagina wilt tonen kunt u ‘getSearchResults’ aanroepen met een andere pagina nummer. Paginanummer 1 is de eerste pagina. Momenteel kunt u maximaal 250 resultaten opvragen, komt u voorbij dit aantal dan zullen de resultaten van de laatst mogelijke pagina geretourneerd worden. De zoekresultaten bestaan uit een verzameling van CriteriumItems, die alle beschikbare informatie voor dat specifieke resultaat bevatten, let op dat niet alle informatie voor ieder resultaat aanwezig hoeft te zijn. Een van de CriteriumItems in het zoekresultaat zal het AccommodationId criterium zijn, deze heeft u nodig voor de volgende stap. 2.3.3.1 Paginering De getResultCount functie kunt u gebruiken om te bepalen hoeveel resultaten een zoek opdracht oplevert, let erop dat dit voornamelijk een indicatie is en dat het uiteindelijke resultaat hier iets boven dan wel onder kan zitten, houdt hier dus ook rekening mij bij de opbouw van u pagina en de navigatie die u hierop aanbied. 2.3.3.2 De nul pagina, een selectie van alle touroperators Paginering binnen de TravelSearch begint bij pagina 1 te tellen. U kunt echter ook pagina 0 opvragen. Op deze pagina vindt u hetzelfde resultaat als wanneer u bijvoorbeeld pagina 1 t/m 10 opvraagt, echter nu zult u per touroperator maximaal 1 resultaat vinden. Op deze manier kunt u een brede selectie over het hele assortiment laten zien. 2.3.4
De accommodatie pagina
Functioneel gezien heeft de accommodatie pagina veel overeenkomsten met de zoekpagina. Ook hier biedt u criteria aan, echter bij deze geeft u bij elke aanroep ook een AccommodationId als geselecteerd criterium mee. I.p.v. een AccommodationId kunt u ook een OsiCode meegeven, zie hiervoor ‘Gebruik van de Osi code binnen de webservice’ (§2.3.5). Hier wordt in dit document aan gerefereerd als ‘op accommodatie-niveau’ werken, u gebruikt dit om alle mogelijkheden / keuzes binnen de gegeven accommodatie op te vragen. Met een geselecteerd AccommodationId kunt u bijvoorbeeld alle DepartureDate’s opvragen waarop u deze accommodatie zou kunnen boeken. Op deze pagina is het belangrijk dat er een keuze wordt gemaakt uit de criteria DepartureDate, BoardType, NightCount, TransportType, DepartureAirport en Trip. Dit moet een geldige selectie zijn; vraagt u bijvoorbeeld m.b.v. ‘getCriteria’ al deze criteria op, met als geselecteerde criteria al deze Pagina 10
TSI-XML-Doc-001v14-PackageSearch.doc items, dan zullen dus ook alle resultaten ‘valid’ terug moeten geven voor de respectievelijke items. Let er op dat Trip net iets anders werkt (zie §2.3.4.1). Let er op dat DepartureAirport alleen relevant is bij TransportType ‘Flight’. Wanneer de gebruiker een selectie heeft kunnen maken geeft u die 6 criteria samen met een AccommodationId, Adults, Children en Babies criterium mee aan de ‘getBookUrl’ functie, hieruit volgt een url waar u de gebruiker naar toe kunt verwijzen om het boekprocess in te gaan. Zie §2.3.5 voor informatie over hoe u deze url kunt gebruiken. 2.3.4.1 Gebruik van het ‘Trip’ criterium Het ‘Trip’ criterium is een uitzondering. Wanneer u deze als geselecteerd criterium opgeeft, dan heeft dit geen beperkend effect op de overige criteria. Het is dus aan te bevelen deze keuze zo laat mogelijk in het proces aan te bieden. Met een Trip criterium duidt u een specifieke reis aan. Bij een deel van het aanbod is een selectie hieruit nodig om exact aan te geven welke reis we willen boeken, omdat de overige criteria (DepartureDate, NightCount, BoardType, TransportType, DepartureAirport) nog niet voldoende blijken om een exacte reis aan te wijzen. Dit kan bijvoorbeeld voorkomen op het moment dat een touroperator verschillende arrangementen aanbied, met bijvoorbeeld verschillende faciliteiten, maar die qua TravelSearch criteria exact hetzelfde zijn. U zou bijvoorbeeld de gebruiker een selectie kunnen laten maken uit de ‘DepartureDate’, ‘NightCount’, ‘BoardType’, ‘TransportType’ en ‘DepartureAirport’ criteria, pas als er dan nog meer dan 1 trip keuze is, zou u hier nog een keuze in kunnen bieden. Vervolgens kan er dan een ‘BookUrl’ opgevraagd worden met de enige of de zojuist door de gebruiker geselecteerde trip code. Trip wordt niet bij al het aanbod gebruikt, wanneer dit bij ‘getCriteria’ dus een lege lijst oplevert, hoeft hier dus ook geen selectie uit gemaakt worden. Wanneer de Trip wel een lijst oplevert, maar hierbij alle ‘valid’ vinkjes op ‘false’ staan, dan duidt dit erop dat er geen geldige combinatie van criteria is gebruikt. 2.3.4.2 Accommodatie informatie tonen Indien u wenst kunt u op de accommodatie-pagina accommodatie informatie opvragen en tonen. Met behulp van de ‘getAccommodationInfo’ functie kunt u informatie en de beschrijving van een accommodatie verkrijgen. U roept deze functie aan met behulp van een accommodationInfoCode, deze vindt u o.a. als een van de criteria verkregen bij het zoekresultaat. U kunt deze code ook verkrijgen door m.b.v. een ‘getCriteria’ aanroep het AccommodationInfoCode criterium te verkrijgen, dit laatste kan met name verstandig zijn gezien het voor zou kunnen komen dat een andere selectie op de accommodatie pagina kan leiden tot een iets andere beschrijving van de reis. 2.3.4.3 Prijs informatie tonen Indien u wenst, kunt u op de accommodatiepagina ook prijsinformatie tonen. M.b.v. de ‘getPriceInfo’ en ‘getTripPriceInfo’ functies kunt u prijs informatie opvragen voor een accommodatie op een bepaalde vertrekdag of binnen een bepaalde vertrek periode. De ‘getPriceInfo’ functie is erop gericht altijd de goedkoopst mogelijke prijs informatie te vinden, echter wanneer u een gedetailleerde selectie mee geeft dan zal het resultaat zo accuraat mogelijk zijn binnen die criteria. Zie § 3.2.7 over het gebruik van deze functie. De ‘getTripPriceInfo’ functie is erop gericht alle prijsinformatie tot op kamer-niveau op te leveren, hiermee kunt u op een gestructureerde wijze alle informatie van een accommodatie verkrijgen. Zie §3.2.11 over het gebruik van deze functie. 2.3.5
Boeken
Het boeken gebeurt op pagina’s die gehost worden door TSi Solutions. De stijl van deze pagina’s kan in beperkte mate aangepast worden aan uw wensen. De start van het boekingsproces wordt gegeven door het resultaat van de functie GetBookUrl (§3.2.8). De geretourneerde URL bevat alle gegevens waarmee u een boeking kunt starten, eventueel moet u het domein van de URL aanpassen, i.p.v. Pagina 11
TSI-XML-Doc-001v14-PackageSearch.doc booker.tsitravelsearch.nl wilt u misschien een ander domein gebruiken, o.a. om java-script problemen te voorkomen, het is wel belangrijk dat het alternatieve domein bij ons bekent is en verwijst naar booker.tsitravelsearch.nl. 2.3.5.1 Parameters voor het boeken Aan de bookUrl kunnen een aantal extra parameters meegegeven worden om de integratie in de site te verbeteren. De waarde van de parameters dient url-escaped meegegeven te worden. parameter baseUrl stepBackPage notAvailablePage notBookablePage errorPage bookSuccesPage
Betekenis wordt voor elke pagina hieronder geplaatst, de baseUrl moet ook de http:// bevatten pagina die getoond wordt als vanuit boekingsstap 1 op de terugknop gedrukt wordt pagina die getoond wordt als de geselecteerde reis niet meer beschikbaar blijkt pagina die getoond wordt als de geselecteerde reis niet online boekbaar blijkt pagina die getoond wordt als er een onverwachte fout optreedt pagina die getoond wordt als de boeking met succes is afgerond
2.4 Gebruik van Osi code binnen de webservice 2.4.1
Wat is een Osi ?
Een Osi code is een code die een unieke accommodatie aangeeft. Daar waar een AccommodationId een unieke accommodatie binnen het assortiment van een touroperator weergeeft, werkt de Osi code (CriteriumName OsiCode) over het hele aanbod heen. Bijvoorbeeld ‘Hotel Californië’ van Sudtours en van Hotelplan hebben verschillende AccommodationId’s maar exact dezelfde Osi code, omdat het feitelijk dezelfde accommodatie betreft. Bij elke OsiCode die u in de webservice vindt, behoren dus een of meer AccommodationId’s. Uiteindelijk komt het er op neer, dat met behulp van deze OsiCode alle aanbiedingen voor u ontdubbeld zijn, en dit een handvat biedt tot het beter kunnen vergelijken van de verschillende touroperators. 2.4.2
Osi code beschikbaarheid
De OsiCode is niet voor iedere gebruiker beschikbaar, deze biedt extra informatie, maar is niet nodig om een boekbare website te maken. Neem contact op met de afdeling Sales van TSi Solutions over het verkrijgen van toegang tot deze informatie. 2.4.3
Zoek resultaten op ‘Osi niveau’
Wanneer u de zoek resultaten opvraagt, bijvoorbeeld met de getSearchResults (§3.1.6) functie, dan ontvangt u de resultaten op AccommodationId niveau. Dit houdt in dat u per touroperator elke accommodatie eenmaal vindt. Indien u dit aangeeft kunnen we uw login aanpassen tot het retourneren van resultaten op Osi niveau. Dit houdt in dat u elke unieke accommodatie eenmaal vindt ongeacht touroperator. Om vervolgens een lijst van alle Accommodaties per touroperator te vinden kunt u een getCriteria (§3.2.2) opdracht uitvoering waarbij u de AccommodationId as requested criterium opgeeft en de betreffende OsiCode als geselecteerd item. Let er op dat ook deze manier van werken louter mogelijk is indien u toegang heeft tot deze informatie. 2.4.4
De OsiCode als geselecteerd criterium
De OsiCode heeft binnen de getCriteria en getSearchResults functies een gelijkend effect als de AccommodationId. Vraagt u bijvoorbeeld het criterium BoardType op, dan krijgt u wederom een lijst van alle mogelijke verzorgingstypen, echter bij het gebruik van een OsiCode vindt u alle mogelijke verzorgingtypen van een accommodatie ongeacht de touroperator. Pagina 12
TSI-XML-Doc-001v14-PackageSearch.doc Ook is het bijvoorbeeld mogelijk om het touroperator criterium op te vragen a.d.h.v. een OsiCode, op die manier vind u in een oogopslag welke touroperators die unieke accommodatie aanbieden. 2.4.5
Boeken en de OsiCode
Zoals in ‘De accommodatie pagina’ (§2.3.4) genoemd is het belangrijk dat er door de gebruiker een keuze gemaakt wordt uit de criteria DepartureDate, BoardType, NightCount, TransportType, DepartureAirport en Trip. Dit geldt ook als u met de OsiCode werkt. Echter is het nu ook van belang dat er voor een geldige AccommodationId gekozen wordt, we moeten immers weten bij welke touroperator u wilt boeken. U zou bijvoorbeeld nadat de gebruiker voor de DepartureDate, BoardType, NightCount, TransportType, DepartureAirport heeft gekozen een Touroperator laten kiezen, indien dit nog nodig is. Let op dat ook hier blijft gelden dat de Trip als laatste gekozen moeten worden (zie §2.3.4.1). Let op, het kan voorkomen dat zelfs nadat er een touroperator is geselecteerd er nog steeds 2 AccommodationId mogelijkheden zijn. Dit komt doordat dezelfde accommodatie 2 maal door de touroperator wordt aangeboden, eenmaal als aanbieding en eenmaal als onderdeel van de gids. In het geval dat dit voorkomt, zou u het verschil kunnen opzoeken door van beide AccommodationId’s het Characteristics criterium op te vragen, een van hen zal dan het Aanbiedings kenmerk bevatten.
2.5 Beschikbaarheid van het assortiment Al het assortiment in de TSi TravelSearch is in principe beschikbaar. Omwille van meerdere redenen kan het echter blijken dat ten tijde van het boeken het aanbod toch niet beschikbaar blijkt. Daar waar het aanbod niet beschikbaar blijkt te zijn op het moment van boeken wordt dit aangemerkt en zal het binnen afzienbare tijd niet meer worden gevonden. 2.5.1
Het beschikbaarheids criterium
Voor de beschikbaarheid bestaan er 3 relevante criteria, ieder zoekresultaat bevat een AvailabilityEstimate criteria dat een percentage biedt met schatting van de beschikbaarheid. Deze schatting wordt gebaseerd op metingen bij de touroperator, daar waar mogelijk is deze schatting verder toegespitst op land en vertrekperiode. De schatting wordt gebaseerd op geautomatiseerde metingen van de afgelopen 24 uur. Het AvailabilityEstimate criterium is ook m.b.v. de getCriteria functie op te roepen. Hierbij is het wel belangrijk dat u een AccommodationId als ‘selectedCriteriumItem’ meegeeft, anders weet het systeem niet waar u de beschikbaarheid van op wilt vragen, daarnaast kunt u een vertrekdatum of periode meegeven om de accuratesse van de schatting te verhogen. Het is niet verstandig te zoeken m.b.v. het AvailabilityEstimate criterium, gezien dit een redelijk gedetailleerd getal is en er weinig aanbod zal zijn met exact dezelfde schatting. In plaats hiervan kunt u gebruik maken van de MinimumAvailabilityEstimate en MaximumAvailabilityEstimate criteria om bereik van de gewenste beschikbaarheid op te geven. Merk op dat het hier gaat om een indicatie van de beschikbaarheid en de daadwerkelijke beschikbaarheid van een gevonden aanbieding anders kan zijn. Om deze reden alsmede het feit dat het een percentage is op basis van steekproeven is het niet aan te bevelen assortiment met een lage schatting te meiden uit uw zoekresultaat. 2.5.2
Opvragen vertrek data van een accommodatie
Alle mogelijke vertrekdata voor een accommodatie zijn op te vragen m.b.v. een getCriteria aanroep, met als argumenten een DepartureDate en een specifieke AccommodationId. Voeg hier criteria als TransportType, BoardType, NightCount aan toe om te zien welke data er met die gegevens beschikbaar zijn. Let er op dat bij het opvragen van dit criterium, alle data voor die Accommodatie opgeleverd wordt, voegt u bij voorbeeld TransportType ‘Flight’ toe als een van de geselecteerde criteria, dan ziet u aan de status van het ‘valid’ veldje per datum of dat ook een datum is waarop de aangegeven selectie Pagina 13
TSI-XML-Doc-001v14-PackageSearch.doc (dus vlucht) ook daadwerkelijk geldig is. Zie §2.3.4 over het gebruik van de getCriteria functie op ‘accommodatie niveau’.
Voorbeeld aanroep voor beschikbare vertrekdata van een accommodatie
2.6 De ‘resultingCriteriumItems’ van het zoekresultaat Elk zoekresultaat bevat een aantal ResultingCriteriumItems. Dit zijn SearchCriteriumItem zoals ze over de gehele service worden gebruikt, die het zoekresultaat beschrijven. Hoewel deze veel informatie bevatten, geven deze nog geen compleet overzicht wat de mogelijkheden zijn m.b.t. de gevonden accommodatie. Zo zal deze bijvoorbeeld altijd maar één ‘BoardType’ item hebben ook al zijn er meerdere verzorgingen mogelijk. Dit is een gevolg van het groeperen op accommodatie danwel osi-niveau dat de service uitvoerd. Een gevonden resultaat en zijn gegevens, duiden op een specifieke aanbieding, die voldoet aan de zoekcriteria. Dat specifieke resultaat heeft de aangegeven verzorging en vertrekt op de gevonden datum met de gevonden prijs. Wilt u alle mogelijkheden van de gegeven accommodatie achterhalen, dan kunt u dat doen met verschillende ‘getCriteria’ aanroepen, waarbij de gegeven AccommodationId is geselecteerd en u bijvoorbeeld het ‘BoardType’ criterium opvraagt.
2.7 Zoeken op bezetting Het zoeken op bezetting moet met voorzicht gebruikt worden. U kunt gebruik maken van het ‘SingleAccommodationOccupation’ criterium. Het is zeer belangrijk te realiseren dat u dan zoekt naar accommodaties die beschikken over kamers / appartementen / units waarin de gehele bezetting gehuisvest kan worden, zonder meerdere units te boeken. Indien u gebruik maakt van dit criterium dan vindt u dus bij een bezetting van 4 ook niet de accommodaties die bijv. alleen over 1 en 2 persoonskamers beschikken, terwijl 2 2-persoonskamers voor de gebruiker eventueel wel een optie is. Daarnaast is het belangrijk te realiseren, dat gebaseerd wordt op dat aanbod wat de touroperators ons hebben aangeleverd. In theorie is het mogelijk dat tijdens het boeken blijkt dat de touroperator over meer kamertypen beschikt.
Pagina 14
TSI-XML-Doc-001v14-PackageSearch.doc
3 Objecten en functies van de webservice 3.1 Objecten De argumenten en resultaten van de webservice functies bestaan uit de volgende objecten. 3.1.1
Authorisation
Beschrijving: bevat authorizatie gegevens van de client en dient bij elke aanroep meegestuurd te worden. Merk op dat bij isoLanguage aleen nld, deu en eng zijn ondersteund en er vooral wordt geoptimaliseerd op nld. Gebruik: In §3.2 ‘Functies’, ziet u dat dit object bij elke functieaanroep wordt gebruikt. Elementen: login, wachtwoord, taal Veld type voorbeeld waarde Login String webtest Pass String testweb isoLanguage String nld
Voorbeeld Authorization object
3.1.2
SearchCriteria
Beschrijving: bevat de mogelijke zoekcriteria Gebruik: Dit object wordt geretourneerd bij de ‘getCriteria’ functie (§3.2.2). Elementen: namen van aanwezige criteria, reeds geselecteerde criteria, mogelijke criteria, aantal resultaten Veld type voorbeeld waarde criteriumNames String array [country, district, place] criteriums SearchCriterium array [SearchCriterium, SearchCriterium] selectedCriteriumItems SearchCriteriumItem [SearchCriteriumItem, array SearchCriteriumItem] resultCount integer 3414
Pagina 15
TSI-XML-Doc-001v14-PackageSearch.doc
Voorbeeld van een SearchCriteria object 3.1.3
SearchCriterium
Beschrijving: een specifiek zoek criterium Gebruik: SearchCriterium object krijgt u terug als onderdeel van het SearchCriteria object die de ‘getCriteria’ functie retourneert (§3.2.2) Elementen: naam, type, vertaalde naam, mogelijke keuzes veld type voorbeeld waarde criteriumName String Country displayName String Land criteriumType String singleSelection criteriumitems SearchCriteriumItem [SearchCriteriumItem, array SearchCriteriumItem]
Voorbeeld van een SearchCriterium object 3.1.4
SearchCriteriumItem
Beschrijving: een van de mogelijke keuzes binnen een zoek criterium Pagina 16
TSI-XML-Doc-001v14-PackageSearch.doc Gebruik: SearchCriteriumItems krijgt u terug als onderdeel van het SearchCriterium object in de ‘getCriteria’ functie (§3.2.2), maar vindt u ook als onderdeel van SearchResultItem bij een ‘getSearchResults’ functie (§3.2.5). Daarnaast geeft u SearchCriteriumItem’s op als selectedCriteriumItems bij de functies ‘getCriteria’ (§3.2.2), ‘getSearchResults’ (§3.2.5), ‘getResultCount’ (§3.2.3), ‘getBookUrl’ (§3.2.8), ‘getPriceInfo’ (§3.2.7), ‘’getReducedSearchResults (§3.2.9) en ‘getOsiSearchResults’ (§3.2.10). Elementen: criterium naam, naam van keuze, vrije waarde, identificatie, aantal resulterende resultaten, selectie-status, geldigheid veld type voorbeeld waarde criteriumName String Country displayName String Griekenland freeValue String hotel acropolis id String 343413 resultCount int 352 selected boolean true valid boolean true
Voorbeeld van een SearchCriteriumItem 3.1.5
SortCriterium
Beschrijving: een zoekcriterium waarop gesorteerd moet worden Gebruik: U geeft een of meerdere Sort criterium object mee aan de verschillende zoekfuncties, ‘getSearchResults’ (§3.2.5), ‘getReducedSearchResults’ (§3.2.9) en ‘getOsiSearchResults’ (§3.2.10). Elementen: zoekcriterium naam, sorteer volgorde veld type voorbeeld waarde searchCriteriumName String Country ascending booolean true
Voorbeeld van een SortCriterium object 3.1.6
SearchResults
Beschrijving: de zoekresultaten Gebruik: U krijgt een SearchResult object terug bij de zoekfuncties ‘getSearchResults’ (§3.2.5) en getReducedSearchResults (§3.2.9) Elementen: geselecteerde criteria voor de zoekopdracht, namen van criteria in de zoekresultaten, de zoekresultaten
Pagina 17
TSI-XML-Doc-001v14-PackageSearch.doc veld providedCriteriumNames
type String array
selectedCriteriumItems
SearchCriteriumItem array SearchResultItem array
searchResultItems
voorbeeld waarde [Country, District, AccommoationName] [SearchCriteriumItem, SearchCriteriumItem] [SearchResultItem, SearchResultItem]
Voorbeeld van een SearchResults object 3.1.7
SearchResultItem
Beschrijving: een specifiek zoekresultaat Gebruik: U krijgt deze terug van de ‘getSearchResults’ (§3.2.5) en getReducedSearchResults (§3.2.9) zoekfuncties als onderdeel van een SearchResults object. Elementen: thumbnail, identificatie, resulterende zoek criteria selecties veld Type voorbeeld waarde thumbnailUrl String http://images... uniqueCode String 233124,575345,23134 resultingCriteriumItems SearchCriteriumItem [SearchCriteriumItem, array SearchCriteriumItem]
Pagina 18
TSI-XML-Doc-001v14-PackageSearch.doc
Voorbeeld van een SearchResultItem object 3.1.8
AccommodationInfo
Beschrijving: beschrijving en details van een accommodatie Gebruik: Dit object krijgt u terug van een ‘getAccommodationInfo’ aanroep (§3.2.6) Elementen: code, naam, land, streek, plaats, touroperator, accommodatie type, classificatie, beschrijving, foto’s Veld type voorbeeld waarde acccommodationCode String BK33234 accommodationName String Grand Calive country String Griekenland district String Kos place String Calive touroperator String Imagine Travel accommodationType String Hotel stars float 3.5 description String Mooi gelegen, eenvoudig ... pictureUrls String [http://..., http://...] array
Voorbeeld van een AccommodationInfo object 3.1.9
PriceInfo
Beschrijving: verzameling van prijs informatie van een accommodatie Gebruik: Objecten van dit type krijgt u terug van een ‘getPriceInfo’ functie aanroep (§3.2.7)
Pagina 19
TSI-XML-Doc-001v14-PackageSearch.doc Elementen: geselecteerde criteria voor de aanvraag, verzameling prijzen (PriceInfoItem’s) veld type voorbeeld waarde selectedCriteriumItems SearchCriteriumItem [SearchCriteriumItem, array SearchCriteriumItem] priceInfoItems PriceInfoItem array [PriceInfoItem, PriceInfoItem]
Voorbeeld van een PriceInfo object 3.1.10 PriceInfoItem Beschrijving: Bevat voor een combinatie van datum/verblijfsduur/verzorgingstype de laagste prijs op basis van 1p, 2p ... 8p en de prijs voor het 1e, 2e, en 3e kind daar waar aanwezig. Prijzen zijn hier in centen. Gebruik: U krijgt deze objecten terug als onderdeel van een PriceInfo object bij een ‘getPriceInfo’ functie aanroep (§3.2.7).
Pagina 20
TSI-XML-Doc-001v14-PackageSearch.doc Elementen: Vertrekdatum, verzorging, verblijfsduur, prijseenheden (pp/pn), prijs op basis van 1e t/m e e e 8 persoon, prijs voor 1 t/m 3 kind. veld type voorbeeld waarde departureDate String 20070816 boardType String LG nightCount String 7 pricePerPerson boolean true pricePerNight boolean false adults1 int 19500 adults2 int 17500 adults3 int 17000 adults4 int 0 adults5 int 0 adults6 int 0 adults7 int 0 adults8 int 0 child1 int 0 child2 int 0 child3 Int 0
Voorbeeld van een PriceInfoItem object 3.1.11 TripPriceInfo Beschrijving: verzameling van pakket / kamer prijsinformatie van een accommodatie. Gebruik: Objecten van dit type krijgt u terug van een ‘getTripPriceInfo’ functie aanroep (§3.2.11) Elementen:
geselecteerde criteria voor de aanvraag, verzameling info object (TripPriceInfoItem’s)
Pagina 21
TSI-XML-Doc-001v14-PackageSearch.doc veld selectedCriteriumItems
type SearchCriteriumItem array
tripPriceInfoItems
TripPriceInfoItem array
voorbeeld waarde [SearchCriteriumItem, SearchCriteriumItem] [TripPriceInfoItem, tripPriceInfoItem]
Voorbeeld van een TripPriceInfo object 3.1.12 TripPriceInfoItem Beschrijving: Onderdeel van het TripPriceInfo object (zie hierboven), deze bevat generieke trip / pakket informatie voor elk uniek pakket. Gebruik: Objecten van dit type krijgt u terug van een ‘getTripPriceInfo’ functie aanroep, als onderdeel van een TripPriceInfo object (§3.2.11) Elementen: Naam en id van de Trip (pakket), accommodatie, touroperator en accommodatie-type, daarnaast bevat het een verzameling trip-options, die varianten van deze reis beschrijven. De inhoud betreft hier de displayname en het id van de criteria zoals u ze elders in de web-service ook gebruikt, dit betreft de criteria AccommodationId, AccommodationType, TourOperator en Trip.
Pagina 22
TSI-XML-Doc-001v14-PackageSearch.doc veld accommodationId
type String
voorbeeld waarde 333117
accommodationName
String
Eugenia Victoria
accommodationTypeId
String
Apartment
accommodationTypeName
String
Appartement
tourOperatorId
String
HP
tourOperatorName
String
Hotelplan
tripId
String
QEES5311
tripName
String
Gran Canaria
tripOptions
TripOption array
[TripOption, tripOption]
Voorbeeld van een TripPriceInfoItem object 3.1.13 TripOption Beschrijving: Onderdeel van het TripPriceInfoItem object (zie hierboven), deze bevat informatie over een variant van deze trip dat beschikbaar is. Binnen een trip/pakket bestaat er een TripOption object voor iedere alternatieve verzorging/vervoer/luchthaven en verblijfsduur combinatie. Gebruik: Objecten van dit type krijgt u terug van een ‘getTripPriceInfo’ functie aanroep, als onderdeel van een TripPriceInfoItem object (§3.1.12). Elementen: Het object bevat de velden boardType, departureAirport, nightCount en transportType met waarden gelijkend aan de id’s van de gelijknamige criteria. Daarnaast bevat het tripRooms veld de verzameling van kamers (TripRoom) mogelijk binnen deze optie.
Pagina 23
TSI-XML-Doc-001v14-PackageSearch.doc veld boardType
type String
voorbeeld waarde AI
departureAirport
String
GRQ
nightCount
String
7
transportType
String
Flight
tripRooms
TripRoom array
[TripRoom, tripRoom]
Voorbeeld van een TripOption object 3.1.14 TripRoom Beschrijving: Onderdeel van het TripOption object (zie hierboven), deze bevat informatie over een kamer dat beschikbaar is binnen de huidige variant van het trip / pakket. Binnen een TripOption object bestaat er een TripRoom object voor iedere mogelijk kamer. Gebruik: Objecten van dit type krijgt u terug van een ‘getTripPriceInfo’ functie aanroep, als onderdeel van een TripOption object (§3.1.13). Elementen: Het object bevat de velden anvrCode, code, description, facilities, maxPersons, minPersons en een verzameling kamerprijzen in het tripRoomPrices veld. De code representeert de unique code / naam die de touroperator er zelf aan heeft gegeven, deze code is uniek voor ieder TripRoom object binnen dezelfde TripOption. De description kan een kamer beschrijving bevatten indien door de touroperator aangeleverd. Het veld anvrCode, bevat de anvr code toepasselijk voor deze kamer, let op dat deze code niet altijd bepaald kan worden en dit veld dus leeg kan zijn. De minen maxPersons velden beschrijven de minimale en maximale bezetting van een kamer, deze waarde staat op ‘0’ indien deze informatie niet beschikbaar / bekend is. Merk op dat facilities aanwezig is met het oog op toekomstige uitbreidingen en momenteel nog geen gegevens zal bevat.
Pagina 24
TSI-XML-Doc-001v14-PackageSearch.doc Veld anvrCode
type String
voorbeeld waarde 2PK
code
String
2C
description
String
Luxe 2 persoonskamer
facilities
String
maxPersons
int
3
minPersons
int
2
tripRoomPrices
TripRoomPrice array
[TripRoomPrice, tripRoomPrice]
Voorbeeld van een TripRoom object 3.1.15 TripRoomPrice Beschrijving: Onderdeel van het TripRoom object (zie hierboven), deze bevat alle prijs informatie voor de kamer waar deze ‘onderhangt’ voor een specifieke datum. Gebruik: Objecten van dit type krijgt u terug van een ‘getTripPriceInfo’ functie aanroep, als onderdeel van een TripRoom object(§3.1.14). Elementen: Vertrekdatum, prijseenheden (pp/pn), prijs op basis van 1e t/m 24e persoon, prijs voor 1e t/m 3e kind. Let op dat er ook een prijs van ‘0’ kan staan, wat inhoudt dat die prijs niet mogelijk of niet bekend is. Wanneer de prijs voor een minder aantal personen niet bekent is dan is die variant meestal niet mogelijk, Wanneer de prijs voor een hoger aantal personen niet bekent is, maar de TripRoom gaf aan dat dat aantal personen wel mogelijk was, dan is die prijs onbekend en zou u een indicatie kunnen geven a.d.h.v. de laatste wel beschikbare prijs. Let erop dat kinderprijzen over het algemeen niet bekend zijn. Let er op dat alle prijzen aangegeven worden in eurocenten.
Pagina 25
TSI-XML-Doc-001v14-PackageSearch.doc veld adults01
type int
voorbeeld waarde 13900
adults02..adults24
int
…
child1
Int
2500
child2..child3
int
…
departureDate
String
20081015
pricePerNight
boolean
false
pricePerPerson
boolean
true
Voorbeeld van een TripRoomPrice object
3.2 Functies Elk van de webservice functies heeft als argument een authorization. De functies werken verder zonder sessie, en kunnen ieders onafhankelijk van elkaar aangeroepen worden. Bij de authorisatie kan een taal meegegeven worden waarin de verschillende elementen geretourneerd worden. Zie §3.1.1 voor een beschrijving van het Authorization object. Bij elke functie vind u een grafische representatie van het invoer en uitvoer document, deze afbeeldingen dienen ter voorbeeld van de structuur van de gegevens, en geven niet zozeer de daadwerkelijke Soap codering weer. Bij resultaten met grote arrays worden maximaal de eerste 4 elementen getoond. De volgende functies zijn beschikbaar: 3.2.1
getCriteriumNames
Doel: retourneert de namen van criteria waar op gezocht kan worden. Argumenten: geen Pagina 26
TSI-XML-Doc-001v14-PackageSearch.doc Beschrijving: Gebruik deze functie om op te vragen op welke criteria gezocht kan worden (bijv. land, streek, plaats, accommodatie type, vervoer type, kenmerken, etc). De namen van de criteria worden gebruikt in de GetCriteria functie.
getCriteriumNames invoer en uitvoer voorbeeld 3.2.2
getCriteria
Doel: retourneert de criteria die geselecteerd kunnen worden. Argumenten: gewenste namen van criteria; reeds geselecteerde criteria Beschrijving: Voor de criteria namen die u opgeeft (bijv. land, accommodatie type, kenmerken) wordt een lijst van mogelijke keuzes teruggegeven. U krijgt voor elke criterium naam een SearchCriterium object terug met daarin de mogelijke SearchCriteriumItems (voor Land bijv. Griekenland, Turkije, Spanje; voor Accommodatie type bijv. Hotel, Bungalow, Appartement, ...). U kunt aan de functie meegeven welke SearchCriteriumItems reeds voorgeselecteerd waren; de geretourneerde SearchCriteriumItems worden hier op aangepast. Elke SearchCriteriumItem heeft een vinkje dat aangeeft of bij selectie van het criterium de zoekopdracht nog resultaten oplevert (valid) en of het criterium in de meegegeven selectie zat (selected). Bovendien wordt per SearchCriteriumItem aangegeven hoeveel zoekresultaten te verwachten zijn (resultCount) als aan de huidige selectie van criteria dat criterium wordt toegevoegd. De meegegeven array van geselecteerde SearchCriteriumItems wordt bovendien geretourneerd in het SearchCriteria object. 3.2.2.1 Optimaal gebruik maken van de getCriteria functie Hoewel u een onbeperkt aantal ‘requestedCriteriumNames’ kunt opgeven, is het niet aan te bevelen alle mogelijke criterium namen op te vragen die bestaan. U kunt het beste louter de daadwerkelijk te gebruiken criteria op vragen en niet de volledige lijst zoals u die ontvangt vanuit de ‘getCriteriumNames’ functie. Niet elk criterium is even efficiënt als de andere en als u deze opvraagt zonder dat u hem gebruikt is dat zonde van de snelheid voor uw site. Daarnaast betekent het opvragen van alles, dat elk nieuw criterium die de webservice biedt uw site langzamer kan maken of u deze nu daadwerkelijk gebruikt of niet.
Pagina 27
TSI-XML-Doc-001v14-PackageSearch.doc
getCriteria invoer voorbeeld
getCriteria uitvoer voorbeeld 3.2.3
getResultCount
Doel: retourneert het huidige aantal resulterende resultaten. Argumenten: geselecteerde critiera Beschrijving: U geeft aan de functie mee welke SearchCriteriumItems geselecteerd zijn. De functie retourneert het aantal zoekresultaten dat te verwachten is, indien u deze selectie gebruikt bij een ‘getSearchResults’ aanroep.
Pagina 28
TSI-XML-Doc-001v14-PackageSearch.doc
getResultCount invoer en uitvoer voorbeeld 3.2.4
getSortableCriteriumNames
Doel: retourneert de namen van criteria waar op gesorteerd kan worden. Argumenten: geen Beschrijving: Gebruik deze functie om op te vragen op welke criteria gesorteerd kunnen worden (bijv. land, streek, plaats, accommodatie type, vervoer type, kenmerken, etc). De namen van de criteria worden gebruikt in de GetSearchResults functie.
getSortableCriteriumNames invoer en uitvoer voorbeeld 3.2.5
getSearchResults
Doel: retourneert de zoekresultaten. Argumenten: geselecteerde criteria, sortering, resultaten per pagina, paginanummer (startend bij 1) Beschrijving: U geeft aan de functie mee welke SearchCriteriumItems geselecteerd zijn en op welke criteriumnamen u wilt sorteren. selectedCriteriumItems bevat de criteria waarop u wilt zoeken en de sortCriteriums array bevat de gewenste sortering, let bij deze laatste op de volgorde van items indien u op meerdere criteria wilt sorteren. De functie retourneert de zoekresultaten gepagineerd. U kunt opgeven hoeveel zoekresultaten per pagina u wilt, en welke pagina u wilt bekijken. In de providedCriteriumNames staan de geretourneerde ‘kolommen’, voor elk SearchResultItem is informatie over dit criterium beschikbaar in een SearchCriteriumItem in de resultingCriteriumItems van het SearchResultItem. Deze kolommen komen overeen met de search criterium names van de zoek criteria, aangevuld met enkele specifieke zoek resultaat kolommen. De meegegeven selectie van SearchCriteriumItems wordt herhaald in de selectedCriteriumItems. Pagina 29
TSI-XML-Doc-001v14-PackageSearch.doc Het aantal resultaten dat u bij getSearchResults is beperkt tot 250, zie ‘De zoekresultaat pagina’ (§2.3.3) voor meer informatie. Dit is een noodzakelijke beperking om prestatie problemen te voorkomen.
getSearchResults voorbeeld invoer
getSearchResults voorbeeld uitvoer 3.2.6
getAccommodationInfo
Doel: retourneert accommodatie informatie. Argumenten: accommodatie-info-code Beschrijving: Gegeven een accommodatie-info-code uit een SearchResultItem wordt de informatie over een accommodatie teruggegeven. Let op, dit is niet de ‘uniqueCode’ uit het SearchResultItem zelf, maar een van de SearchCriteriumItems uit de resultingCriteriumItems met als criteriumName ‘AccommodationInfoCode’
Pagina 30
TSI-XML-Doc-001v14-PackageSearch.doc
getAccommodation invoer en uitvoer voorbeeld 3.2.7
getPriceInfo
Doel: retourneert prijs informatie voor gegeven criteria Argumenten: Afhankelijk van de gewenste nauwkeurigheid. Verplicht AccommodationId en DepartureDate danwel MinimumDepartureDate en MaximumDepartureDate), optioneel kan de TransportType, DepartureAirport en Trip meegegeven worden om tot meer accurate prijzen te komen. BoardType en NightCount kunnen meegegeven om het aantal resulterende items in te perken. Beschrijving: Deze functie levert een verzameling prijs informatie op voor een accommodatie, op een bepaalde datum of in een bepaalde periode. Voor elk gevonden verzorgingstype en verblijfsduur combinatie (boardtype en nightcount) levert deze de laagste prijzen op, op de aangegeven datum, die voldoen aan de opgegeven criteria. Let hierbij op dat kinderprijsinformatie vaak niet bekend is en hier dus 0 is ingevuld. Ook voor volwassen prijzen geldt vaak dat er afhankelijk van het aanbod een boven grens is van de beschikbare informatie. Wanneer ‘adults3’ bijvoorbeeld 0 is, dan geldt dat de prijs op basis van 3 personen gelijk is aan die van 2 personen (indien ‘adults2’ wel was ingevuld). Wanneer de ondergrens bij volwassen bijvoorbeeld ‘adults1’ 0 is en ‘adults2’ wel ingevuld is, dan duidt dit erop dat er geen mogelijkheid is voor 1 persoon te boeken. Bij het opvragen kan er worden gekozen voor een exacte datum (bijv. 20070426 als id in een DepartureDate criterium) of voor een periode (bijv. 20070401 als freeValue in een MinimumDepartureDate criterium gecombineerd met bijv. 20070415 als freeValue in een MaximumDepartureDate criterium). Let er op dat er maximaal 31 dagen opgevraagd kunnen worden, de MaximumDepartureDate wordt automatisch beperkt om aan deze voorwaarde te voldoen. De MaximumDepartureDate is optioneel, wanneer alleen de MinimumDepartureDate wordt opgegeven wordt er automatisch een MaximumDepartureDate aangemaakt 31 dagen later. Let op: Het betreft hier door de touroperator aangeleverde en door ons ingelezen prijs informatie. Deze informatie wordt door deze functie niet online opgevraagd, daadwerkelijke ‘live’ prijzen kunnen dus afwijken van de hier geretourneerde waarden.
Pagina 31
TSI-XML-Doc-001v14-PackageSearch.doc
getPriceInfo voorbeeld invoer
getPriceInfo voorbeeld uitvoer 3.2.8
getBookUrl
Doel: retourneert de boekings-url voor de gegeven criteria Argumenten: zoveel mogelijk van de geselecteerde criteriumitems Pagina 32
TSI-XML-Doc-001v14-PackageSearch.doc Beschrijving: Gegeven gedetailleerde geselecteerde criterium items wordt de url gegeven waarmee de betreffende accommodatie met de gekozen gegevens online geboekt kan gaan worden. Zie de paragraaf ‘Boeken’ voor meer informatie over extra argumenten die aan de geretourneerde BookUrl toegevoegd kunnen worden. Indien de boekingspagina’s in een iFrame geladen worden kan het nodig zijn de boekingspagina’s op een subdomein van de host-website aan te roepen. Het server gedeelte van de url kan daartoe aangepast worden indien dat subdomein naar booker.tsitravelsearch.nl blijft verwijzen.
getBookUrl invoer voorbeeld
getBookUrl uitvoer voorbeeld 3.2.9
getReducedSearchResults
Doel: retourneert de zoekresultaten, met een beperktere set ‘returningCriteriumItems’ Argumenten: geselecteerde criteria, sortering, te retourneren criteriumitems, resultaten per pagina, paginanummer (startend op 1) Beschrijving: Deze functie werkt hetzelfde als de ‘getSearchResults’ functie. Echter kan er bij gebruik van deze functie gespecificeerd worden welke ‘returningCriteriumItems’ er in het resultaat moeten verschijnen. Het is aan te bevelen deze functie te gebruiken als er maar enkele van de gegevens uit het zoekresultaat worden gebruikt, gezien dit de grootte van de documenten die tijdens de Pagina 33
TSI-XML-Doc-001v14-PackageSearch.doc communicatie over de lijn gaan flink kan verkleinen. Dit kan de communicatie, alsmede de verwerkingssnelheid (xml-parsing) ten goede komen. Let er op dat het AccommodationId criteria altijd toegevoegd zal worden aan het resultaat, alsmede de Osi-code indien deze voor u beschikbaar is. Daarnaast wordt elk criterium waarop eventueel gesorteerd is toegevoegd aan de resultaten.
getReducedSearchResults invoer voorbeeld
getReducedSearchResults uitvoer voorbeeld
Pagina 34
TSI-XML-Doc-001v14-PackageSearch.doc 3.2.10 getOsiSearchResults Doel: Verkrijgen van de Osi-codes van een resultaatset. Argumenten: geselecteerde criteria, sortering, resultaten per pagina, paginanummer (startend op 1) Beschrijving: De functie 'getOsiSearchResults' kan gebruikt worden indien u na een zoekactie louter bent geïnteresseerd in de Osi-code. Op deze manier kan op een snellere manier alle relevante Osicodes verkregen worden, aangezien de Xml berichten vele malen kleiner zijn dan die bij de standaard 'getSearchResults' functie. De aanroep van de 'getOsiSearchResults' functie is exact dezelfde als die van de 'getSearchResults', ook hier gelden dezelfde sorteer mogelijkheden en de zelfde beperkingen zoals die gelden bij de standaard functie. Het resultaat van deze functie bestaat uit een array van strings die de Osi-codes bevatten. Let Op: Deze functie leidt tot een fout indien de Osi functionaliteit niet voor de gebruikte login beschikbaar is.
getOsiSearchResults invoer voorbeeld
Pagina 35
TSI-XML-Doc-001v14-PackageSearch.doc
getOsiSearchResults uitvoer voorbeeld 3.2.11 getTripPriceInfo Doel: retourneert de prijs informatie op kamer niveau d.m.v. een set van gestructureerde object (TripPriceInfo, TripPriceInfoItem, TripOption, TripRoom, TripRoomPrice, zie §3.1.11 t/m §3.1.15.) Argumenten: geselecteerde criteria. Hierbij voegt u extra criteria toe om het resultaat te filtreren en daar mee te versnellen. Beschrijving: Deze functie levert een bijna een-op-een export van alle prijsgegevens waarover wij beschikken van een touroperator. Deze functie levert gestructureerd alle prijzen op voor een bepaalde kamer, binnen een bepaalde trip / pakket, binnen een bepaalde trip configuratie (optie). Het resultaat van deze functie wordt bepaald aan de hand van een set ‘selectedcriteria’. Let erop dat het hier om redelijk veel gegevens gaat die direct uit onze databases komt en het daardoor niet altijd mogelijk is dit te optimaliseren. Gebruik daarom extra beperkingen, wanneer dit mogelijk is, om daarmee het systeem te helpen bij het snel kunnen opzoeken van de gewenste gegevens. 3.2.11.1 Verplichte criteria Er zijn maar 2 verplichte criteria, met deze geeft u van welke accommodatie en van welke periode u informatie wil. • AccommodationId of OsiCode, let erop dat er bij een OsiCode zeer veel accommodaties kunnen horen. Zorg bij het gebruik van OsiCode dus ook voor voldoende additionele criteria om vervolgens extra te filtreren en snel-genoeg uw informatie te verkrijgen. • DepartureDate of MinimumDepartureDate en optioneel een MaximumDepartureDate, hiermee geeft u aan voor welke datum(s) u gegevens zou willen ontvangen. Let erop dat de Minimum/Maximum variant automatisch wordt beperkt tot maximaal 31 dagen. 3.2.11.2 Optionele criteria Met de optionele criteria kunt u de hoeveelheid resultaat inperken door het te filtreren. Het is ten zeerste aanbevolen dit te doen wanneer dit mogelijk is, vooral bij het gebruik van een OsiCode i.p.v. een AccommodationId is dit noodzakelijk om binnen afzienbare tijd resultaat te zien.
Pagina 36
TSI-XML-Doc-001v14-PackageSearch.doc • • • • • •
NightCount, gebruik deze om alleen de resultaten met een specifieke verblijfsduur te retourneren. BoardType, gebruik deze om alleen de resultaten met een specifieke verzorgingstype te retourneren. TransportType, gebruik deze om alleen de resultaten met een specifieke vervoerstype te retourneren. DepartureAirport, gebruik deze om alleen de resultaten met een specifieke vertrekluchthaven te retourneren. Trip, gebruik deze om alleen de resultaten van een bepaalde trip/pakket code te retourneren. Deze kunt u bijvoorbeeld gebruiken als men een trip weet of u weet wat men wilt gaan boeken. TourOperatorClassification, alleen te gebruiken i.c.m. een OsiCode. Bij deze worden alleen gegevens van de accommodaties getoond die voldoen aan het classificatie criterium.
U kunt al deze optionele criteria combineren, om een zo specifiek resultaat te retourneren. Wanneer u voor een accommodatie een hele maand opvraagt wordt het aanbevolen minstens 1 extra optioneel criterium te gebruiken. Let op: Het betreft hier door de touroperator aangeleverde en door ons ingelezen prijs informatie. Deze informatie wordt door deze functie niet online opgevraagd, daadwerkelijke ‘live’ prijzen kunnen dus afwijken van de hier geretourneerde waarden.
getTripPriceInfo invoer voorbeeld
Pagina 37
TSI-XML-Doc-001v14-PackageSearch.doc
getTripPriceInfo uitvoer voorbeeld
3.3 Het gebruik van selectedCriteriumItems Bij veel methoden kunt u opgeven wat de geselecteerde criteria zijn. Dit is een ‘array’ van SearchCriteriumItem objecten in het veld selectedCriteriumItems. Gebruik hiervoor de criteria die u o.a. verkrijgt uit de getCriteria aanroepen. Zorg er voor dat u altijd geldige combinaties gebruikt. Bij een aantal criteria geldt dat u er meerdere op kunt geven en dat het resultaat aan een item uit die reeks moet voldoen, dit geldt voor Country, District, Place en OsiCode. Van deze kunt u per stuk tot maximaal 3 opgeven (de extra’s zullen worden genegeerd). U kunt meerdere van dezelfde gebruiken bij het zoeken maar ook bijvoorbeeld bij het opvragen van mogelijke criteria. Het ‘Characteristic’ criterium is een zogenoemd MULTIPLE_SELECTION_CRITERIUM_TYPE, dat houdt in dat u deze onbeperkt kunt toevoegen aan uw geselecteerde items, echter bij dit criteriumtype geldt dat het resultaat aan alles moet voldoen, dus aan alle opgegeven kenmerken moet voldoen.
3.4 Foutafhandeling Fouten worden in een Fault object teruggegeven. Het object bevat informatie over de aard van de fout en eventuele details. In de ‘faultstring’ vindt u vaak een verwijzing naar een ‘Exception-code’, deze staan hieronder gedefinieerd.
Pagina 38
TSI-XML-Doc-001v14-PackageSearch.doc
Fouten die op dit moment gedefinieerd zijn: code naam 0 UNKNOWN 10 AUTHORIZATION_FAILURE 11
AUTHORIZATION_MISSING
12 13
LOGIN_OR_PASS_INCORRECT WEB_SERVICE_NOT_AVAILABLE_FOR_LOGIN
20
MISSING_ARGUMENT
21 30
INVALID_ARGUMENT METHOD_NOT_SUPPORTED
31
METHOD_NOT_AVAILABLE
40
SQL_EXCEPTION
omschrijving Default Fout Het systeem kon niet inloggen met de gegeven authorisatie gegevens. Er waren geen authorisatie gegevens meegestuurd. De login of het wachtwoord was incorrect. De webservice is niet beschikbaar voor de gegeven login. Een verplicht argument was niet meegestuurd. Er was een ongeldig argument gebruikt. De gebruikte webservice functie is (nog) niet ondersteund. De gebruikte webservice functie is niet beschikbaar voor de gebruikte login. Interne fout
Pagina 39
TSI-XML-Doc-001v14-PackageSearch.doc
4 Gedetailleerde criteria beschrijving In dit hoofdstuk vindt u meer informatie over alle criteria zoals die tot nu toe beschikbaar zijn.
4.1 CriteriumNames
√3
√
√
1
FreeValue / Id
√
Accommodatie-niveau
√
Bookurl bepaling
returningCriteriumName (onderdeel van resultaten)
√
Trip bepaling
sortCriteriums
Dit representeert een Land.
Meerdere te gebruiken
Country
getSearchResults (als selectedCriteriumItem)
Beschrijving
getCriteria (als selectedCriteriumItem)
Naam
getCriteria (als requestedCriteriumName)
In de volgende tabel vind u alle criteriumnamen zoals die te gebruiken zijn binnen de webservice. De vinken in de verschillende kolommen geven aan waar binnen u ze (nuttig) kunt gebruiken.
I
3
District
Dit representeert een District, dit kan een streek of provincie zijn.
√
√
√
√
√
√
I
Place
Dit representeert een Plaats, dit kan een stad of dorp zijn.
√2
√
√
√3
√
√
I
AccommodationId
Dit representeert een unieke accommodatie binnen de TravelSearch. Deze dient o.a. altijd gebruikt te worden op de accommodatie pagina, (Accommodatie-niveau)
√12
√
AccommodationType
Dit representeert een accommodatie type (Hotel, Bungalow,...)
√
√
√
TransportType
Dit representeert een transport type (Vlucht, Eigen vervoer,...)
√
√
√
√
√
√
√
I
BoardType
Dit representeert de verzorging (Logies, Halfpension,...)
√
√
√
√
√
√
√
I
DepartureAirport
Dit representeert een vertrekluchthaven
√
√
√
√
√
√
√
I
5
4
√
√
√
√
√
√
I
I
RoomType
Dit representeert een kamertype
√
√
√
StarClassification
Dit representeert de sterren classificatie van een accommodatie. Bij het zoeken / opvragen van criteria, geld dit als een x of meer criterium
√
√
√
√
√
I
TourOperator
Dit representeert de touroperator van een accommodatie
√
√
√
√
√
I
TourOperatorClassification
Dit representeert de touroperator classificatie
√
√
√
√
√6
I
NightCount
Dit representeert het aantal nachten
√
√
√
√
√
MinimumNightCount
Dit criterium kan gebruikt worden om op het minimum aantal nachten te zoeken, de waarde is inclusief
√
F
MaximumNightCount
Dit criterium kan gebruikt worden om op het maximum aantal nachten te zoeken, de waarde is inclusief.
√
F
I
√
√
Pagina 40
√
I
Bookurl bepaling
Accommodatie-niveau
FreeValue / Id
√
Trip bepaling
√8
Meerdere te gebruiken
√7
returningCriteriumName (onderdeel van resultaten)
Dit representeert een vertrekdatum van een lijst.
sortCriteriums
13
getSearchResults (als selectedCriteriumItem)
DepartureDate
Beschrijving
getCriteria (als selectedCriteriumItem)
Naam
getCriteria (als requestedCriteriumName)
TSI-XML-Doc-001v14-PackageSearch.doc
√
√
√
√
√
I
9,13
Dit representeert de minimum vertrekdatum (inclusief)
√
F
9,13
Dit representeert de maximum vertrekdatum (inclusief)
√
F
Dit representeert de maximum retourdatum (inclusief)
√
F
MinimumPricePerPerson
Dit representeert de minimum prijs om op te zoeken
√
F
MaximumPricePerPerson
Dit representeert de maximum prijs om op te zoeken
√
F
Characteristic
Dit representeert een kenmerk van de accommodatie zoals de touroperator deze eventueel heeft aangeleverd.
Trip
Dit representeert een Trip code, zie §2.3.4.1 over het gebruik van dit criterium, Dit criterium vraagt u zo laat mogelijk op waarna u het kunt gebruiken om een BookUrl op te vragen.
√
Adults
Representeert het aantal volwassen dat u wilt boeken
√
F
Children
Representeert het aantal kinderen dat u wilt boeken
√
F
Babies
Representeert het aantal baby’s dat u wilt boeken
√
F
AccommodationInfoCode
Deze code gebruikt om de getAccommodationInfo aan te roepen.
FreeNightCount
Dit criterium is momenteel deels ongedefinieerd, het is niet verstandig deze te gebruiken
AccommodationName
Representeert de naam van een accommodatie.
Code
Representeert een interne code waarmee bepaalde accommodaties gevonden kunnen worden, dit criterium wordt intern gebruikt
Region
Representeert een Regio criterium. Een regio representeert een set landen of streken.
√
√
√
√14
√
I
SkiArea
Representeert een Skigebied criterium. Een skigebied representeert een set plaatsen
√1
√
√
√3
√
I
TravelType
Representeerd een reistype criterium. Zoals Wintersport en Stedentrips.
√
√
√
√14
√
I
OsiCode
Representeert de Osi Code van de accommodatie, zie §2.3.5 voor informatie over deze code, let op deze zal niet voor iedereen beschikbaar / zichtbaar zijn.
√11
√
MinimumDepartureDate
MaximumDepartureDate MaximumReturnDate
9,13
√
√
√10
√
√
I
√
√
√
√
I
F
F
√
F
√12
√
Pagina 41
I
MinimumAvailabilityEstimate
returningCriteriumName (onderdeel van resultaten)
Dit is een schatting van de beschikbaarheid van een desbetreffende gevonden aanbieding. Schattingen werken met resultaten van steekproeven over de afgelopen 24 uur. Om te zoeken op beschikbaarheid is het aan te bevelen om gebruik te maken van de Minimum/MaximumAvailabilityEstimate criteria. De beschikbaarheid bestaat uit een percentage met 1 cijfer achter de komma.
√
√
√
√
F
MaximumAvailabilityEstimate
Zie AvailabilityEstimate, dit criterium representeert de maximum beschikbaarheid bij zoekopdrachten.
√
√
F
Keyword
Dit zijn woorden die gebruikt kunnen worden om op gezocht te worden. Het is niet geadviseerd deze te gebruiken, maar het FreeSearch criterium die automatisch zorgt voor de opdeling in Keyword’s, merk op dat keywords geen leestekens of spaties mogen bevatten.
√
√
F
Dit is een zoekwoord of een verzameling van zoekwoorden die gebruikt kan worden om vrij te kunnen zoeken. De vrije woordenschat bestaat uit locatienamen, accommodatienamen, codes en uit de verschillende kenmerken.
√
√
F
I
FreeSearch
17
FreeValue / Id
Zie AvailabilityEstimate, dit criterium representeert de minimum beschikbaarheid bij zoekopdrachten.
Accommodatie-niveau
√15
Bookurl bepaling
√15
Trip bepaling
√16
Meerdere te gebruiken
getSearchResults (als selectedCriteriumItem)
AvailabilityEstimate
getCriteria (als selectedCriteriumItem)
Beschrijving
getCriteria (als requestedCriteriumName)
Naam
sortCriteriums
TSI-XML-Doc-001v14-PackageSearch.doc
√
F
SingleAccommodationOccupation
Met dit criterium zoekt u accommodaties die over kamers / appartementen / ‘units’ beschikken, waarin één van die ‘units’ de opgegeven bezetting past.
√
MinimumSingleAccommodationOccupation
Met dit criterium zoekt u accommodaties die over kamers / appartementen / ‘units’ beschikken, waarin één van die ‘units’ minimaal de opgegeven bezetting past. Als onderdeel van de zoekresultaten geeft dit item de laagste bezetting dat nodig is om de accommodatie te kunnen boeken.
√
√
F
MaximumSingleAccommodationOccupation
Met dit criterium zoekt u accommodaties die over kamers / appartementen / ‘units’ beschikken, waarin één van die ‘units’ maximaal de opgegeven bezetting past. Als onderdeel van de zoekresultaten geeft dit item de grootste bezetting waarin de accommodatie binnen 1 ‘unit’ te boeken is aan.
√
√
F
Opmerkingen 1)
Het opvragen van een District of SkiArea criterium vereist een Country of Region als selectedCriteriumItem, anders zal dit een lege lijst opleveren.
2)
Het opvragen van een Place criterium verseist een Country of een Place als selectedCriteriumItem, anders zal dit een lege lijst opleveren.
Pagina 42
TSI-XML-Doc-001v14-PackageSearch.doc 3)
Bij het gebruik van dit criteria als selectedCriteriumItem, mogen er tot maximaal 3 opgegeven worden, bijvoorbeeld bij Country zal het resultaat aan 1 van de opgegeven Countries moeten voldoen.
4)
Dit criterium is als geselecteerd item nooit geldig te gebruiken indien een ander dan het TransportType ‘Flight’ is geselecteerd.
5)
Het opvragen van een RoomType criterium werkt louter als er een AccommodationType is geselecteerd.
6)
Bij het zoeken geldt het zoeken op A, A+B of A+B+C, als returningItem (onderdeel van het zoekresultaat) geldt echter de exacte classificatie (bijv. C)
7)
Het opvragen van DepartureDate criterium werkt alleen op accommodatie-niveau, Indien er geen AccommodationId of Osi code is geselecteerd dan zal deze functie niets opleveren.
8)
Het is niet aan te bevelen, deze als geselecteerd criterium te gebruiken bij de getCriteria functie, gezien dit tot een zeer slecht presterend resultaat kan leiden.
9)
Wanneer een van de MinimumDepartureDate, MaximumDepartureDate, MaximumReturnDate criteria wordt opgegeven, dan forceert het systeem dat er maximaal 3 weken MinimumDepartureDate en MaximumDepartureDate bevinden en er zich maximaal 5 weken tussen MinimumDepartureDate en MaximumReturnDate bevinden.
10) Van dit criterium kunt u er zoveel ‘selecteren’ als u wilt, let op dat het resultaat aan elk opgegeven kenmerk moet voldoen. 11) De OsiCode kan als criteria opgevraagd worden, dit werkt echter louter als er een District of een Place als criterium is geselecteerd en als dit criterium voor u beschikbaar is. 12) Het AccommodationId kan louter als lijst opgevraagd worden indien er 1 of meerdere OsiCode’s zijn ‘geselecteerd’, van de OsiCode kunt u er maximaal 3 als geselecteerd item gebruiken. 13) Datums worden gebruikt als 8 cijferige entry in het formaat jjjjmmdd (jaar maand dag), zorg ervoor dat er altijd precies 8 karakters worden gebruikt, kijk in de laatste kolom van de tabel of u deze moet invoeren / kunt verwachten in het id dan wel in het freeValue veld van het SearchCriteriumItem. 14) Van het Region en TravelType criterium kunt er een onbeperkt aantal opgeven. Let er echter op dat het resultaat aan alle reistypen dan wel Regio’s moet voldoen. U zou dit kunnen vergelijk met het Characteristic criterium. 15) Het is niet aan te bevelen het AvailabilityEstimate criterium als een ‘selectedCriteriumItem’ te gebruiken, gezien dit een zeer exacte match vereist. Indien u wilt zoeken op beschikbaarheid zou u kunnen kiezen voor de MinimumAvailabilityEstimate en MinimumAvailabilityEstimate criteria. 16) Om een AvailabilityEstimate criterium op te kunnen vragen moet u een AccommodationId als geselecteerd criterium opgeven. Daarnaast kan het verstandig zijn een vertrekdatum / periode en land op te geven als selectie, om een zo accuraat mogelijke schatting te kunnen verkrijgen. 17) Bij het vrij zoeken (FreeSearch) wordt een zin opgesplitst in keywords waarop op gezocht wordt. Bij dit zoeken wordt een kleine tolerantie toegestaan, zoals bijvoorbeeld leestekens. Ook is het belangrijk te weten dat woorden korter dan 4 letters worden genegeerd en niet zullen leiden tot resultaten.
4.2 Extra beperkingen 4.2.1
Criteria selecties
Zoals eerder aangegeven is het systeem wat beter geoptimaliseerd voor bepaalde criteria. Vooral de volgende criteria’s zijn verstandig om op de start / zoek pagina te gebruiken: •
Country
•
District
•
Place
•
AccommodationType
•
TransportType
•
BoardType
•
DepartureAirport
•
StarClassification
•
TourOperator
•
NightCount Pagina 43
TSI-XML-Doc-001v14-PackageSearch.doc •
Characteristic
Het is belangrijk hier in eerste instantie geen datum / prijs gerelateerde criteria te gebruiken, d.w.z. niet opvragen maar ook niet selecteren (m.b.v. de ‘getCriteria’ functie). Als u een datum of periode wilt bieden op de startpagina dan is het verstandig deze pas bij de ‘getSearchResults’ daadwerkelijk in te gaan zetten. Datum / prijs gerelateerde criteria worden genegeerd als geselecteerd item indien geen van de hierboven genoemde criteria ook meegestuurd zijn. 4.2.2
Automatisch beperkingen
Om het zoek systeem zo optimaal te maken en te behouden, past het systeem enkele beperkingen automatisch toe. Hieronder een beschrijving van de belangrijkste. 4.2.2.1 Geselecteerde criteria Indien geen van de criteria genoemd in ‘Criteria selecties’ (§4.2.1) opgegeven is als geselecteerd criterium (‘selectedCriteriumItems’), dan worden de overige genegeerd bij het zoeken (‘getSearchResults’) en het opvragen van criteria (‘getCriterium’), deze beperking geldt niet op het moment dat u ook een ‘AccommodationId’ of ‘OsiCode’ selecteert. 4.2.2.2 Periode beperkingen Omdat we over zeer veel gegevens beschikken kan het zoeken op grote perioden voor problemen zorgen, hiervoor perkt het systeem eventuele periodes die u opgeeft in. Dit houdt in dat wanneer u een ‘MinimumDepartureDate’ opgeeft het systeem forceert dat er ook een ‘MaximumDepartureDate’ bestaat en dat het maximale bereik daartussen 3 weken omvat. Gebruikt u een ‘MaximumReturnDate’, dan forceert het systeem dat er ook een ‘MinimumDepartureDate’ bestaat en dat het maximale bereik daartussen 5 weken omvat. Deze beperkingen gelden voor zowel de ‘getCriteria’ alsmede de ‘getSearchResults’ functionaliteit. Ook de ‘getPriceInfo’ accepteert het ‘MinimumDepartureDate’ en ‘MaximumDepartureDate’ criterium, bij deze geldt dat er maximaal 31 dagen tussen mag zitten, hier past het systeem ook het bereik automatisch aan. Met deze beperking behoudt u de mogelijkheid ineens voor een maand de prijsgegevens op te halen. 4.2.2.3 Sortering U kunt op alle in de tabel aangemerkte criteria sorteren en kunt ook op meerdere criteria tegelijk sorteren, zie de getSearchResults methode (§3.2.5) voor meer info. Deze sortering wordt genegeerd indien geen van de in ‘Criteria selecties’ (§4.2.1) genoemde criteria gebruikt worden. 4.2.2.4 Maximaal aantal zoekresultaten Het maximaal te retourneren zoekresultaten wordt beperkt tot 250 resultaten, hierdoor kan het systeem makelijker zoeken en beter sorteren daar waar nodig. Hoewel dit een uiterste beperking wordt verwacht dat u hier eigenlijk niet tegen aan hoeft te lopen, vooral de ‘getCriteria’ en zijn resultCount features (‘de getalletjes’) bieden u de mogelijkheid de consument een ‘drill-down’ ervaring te geven waarbij het resultaten aantal al flink beperkt kan worden alvorens er daadwerkelijk gezocht wordt.
Pagina 44
TSI-XML-Doc-001v14-PackageSearch.doc
5 Tips voor een goed presterende website In dit hoofdstuk vindt u enkele tips die u kunt gebruiken bij het optimaliseren van uw website die gebruikt maakt van de TSi TravelSearch SearchAndFind XML Layer.
5.1 Het gebruik van getCriteriumNames en getSortableCriteriumNames De resultaten van deze 2 functies veranderen niet vaak, het is dan ook niet aan te bevelen deze te gebruiken voor iedere aanroep, of te gebruiken in uw standaard proces. Deze functies zijn er om u een idee te geven wat er binnen de webservice mogelijk is, gebruik deze dan dus ook alleen tijdens uw ontwikkelproces. Daarnaast kunt u ook deze documentatie gebruiken, met name §4.1, om te zien welke criteria er zijn en wat u er mee kunt doen. Onnodig gebruik van deze functies vereist niet veel energie van onze zoekmachine, echter moet uw website wel 2x wachten op een vraag en antwoord van de webservice en dit antwoord vervolgens ook nog verwerken. Dit is verloren tijd en maakt u website onnodig trager.
5.2 Te veel CriteriumItems opvragen m.b.v. getCriteriumItems Het is mogelijk om alle bestaande criteriumtypen (deze zijn op te vragen met getCriteriumNames §5.1) ineens op te vragen met de getCriteriumItems functie. Het advies is echter dit niet te doen. U heeft momenteel de toegang tot ongeveer 40 verschillende criteria, deze zult u lang niet allemaal tonen. Door ze echter allemaal op te vragen, moeten ze toch worden samengesteld, dit vergt onnodig veel energie van onze zoekmachine en onnodig veel wachttijd aan uw kant. Daarnaast is het zo dat niet elk criterium even optimaal samengesteld kan worden en er dus veel tijd en energie verloren gaat als de resultaten hiervan niet worden gebruikt. Een ander nadeel van het continue werken met alle criteria verkregen uit de getCriteriumNames functie, is dat onze set van criteria in de toekomst kan groeien, zoals het al vaker heeft gedaan. Dit heeft tot gevolg dat u site automatisch meer vraagt van de webservice zonder deze nieuwe informatie te gebruiken, uw site wordt na verloop van tijd dus automatisch trager. Om uw huidige website te versnellen, en te beschermen tegen vertraging van toekomstige uitbreidingen, is het dus aan te bevelen, met een vaste lijst van criteriumtypen te werken en hierbij geen criteria te gebruiken / op te vragen waarmee niet gewerkt wordt.
5.3 Versneld afdwingen van selecties Door in eerste instantie een klein aantal criteria te bieden, kunt u snel een groot deel van het aanbod uitsluiten en de vervolg criterialijsten nog sneller opvragen. U kunt bijvoorbeeld kiezen voor een land als startpunt en geen andere keuzes bieden (en dus opvragen) totdat de gebruiker een land heeft geselecteerd. Omdat ons aanbod is verspreid over een groot aantal landen, snijdt u zo behoorlijk in het aanbod en maakt u het voor het systeem makkelijker de vervolg criterium lijstjes te maken, wat weer als gevolg heeft dat uw website sneller is. Let er bij het kiezen van uw begin criterium (of criteria) op dat ze een hoge beperkende factor hebben, Country en BoardType delen het aanbod redelijk op, daarentegen zal TransportType criterium dit minder doen, gezien het meeste aanbod een vluchtreis betreft. Daarnaast kan het versnellend werken door niet van periode en prijs gerelateerde criteria gebruik te maken totdat er minstens 3 andere criteria geselecteerd zijn.
Pagina 45
TSI-XML-Doc-001v14-PackageSearch.doc
5.4 Zoeken en pagineren De webservice biedt bij de zoekfuncties ook paginering aan, hoewel u er voor zou kunnen kiezen om 100 resultaten ineens op te vragen en zelf voor een vorm van paginering te zorgen, zijn er meerdere redenen om gebruik te maken van de functionaliteit zoals de webservice die biedt. Bij het opvragen van de eerste pagina, zal de webservice gaan zoeken, en de resultaten opslaan, op het moment dat u pagina 2 opvraagt, beschikt de webservice al over de resultaten, u hoeft dus niet meer te wachten op een zoekresultaat. Door het opvragen van kleinere pagina’s, bijvoorbeeld met 10 resultaten, in plaats van 100 resultaten ineens, zijn de documenten die over de ‘lijn’ gaan veel kleiner. Dit verkort niet alleen de communicatie tijd tussen uw website en de webservice, maar versneld ook de verwerking van het xml-document antwoord dat u ontvangt van de web-service. Zie de ‘getSearchResults’ functie (§3.2.5) voor meer informatie.
5.5 Gebruik van getReducedSearchResults Bij ieder zoekresultaat vindt u veel informatie, gemiddeld bevat een zoekresultaat iets van 20 gegevens. Als u maar een beperkte vaste set van deze informatie gebruikt, is het verstandig gebruik te maken van de ‘getReducedSearchResults’ functie (§3.2.9). Door aan te geven in welke gegevens u bent geïnteresseerd, kunt u de resulterende informatie sterk verkleinen. Hierdoor gaat er minder informatie over de ‘lijn’, kunt u de resultaten sneller verwerken en heeft u dus weer een versnelling in uw website. Ook is het interessant om op te merken dat het zoeken zelf, op bepaalde punten, sneller kan zijn op het moment dat deze niet elk detail van het resultaat hoeft te achterhalen
5.6 Sorteren van uw resultaten Het sorteren van zoekresultaten kan een vertragende werking hebben, dit komt vooral doordat dit gebeurt met veel meer resultaten dan het aantal dat u op zult vragen. Het is dus belangrijk te realiseren dat u website sneller kan werken wanneer u niet gebruikt maakt van sorteren. Wanneer de opzet van uw website of website onderdeel geen sortering behoeft, is het aanbevolen hier ook niet onnodig een sortering aan toe te voegen. Andere strategieën om u website te versnellen zouden kunnen zijn; standaard niet te sorteren, maar het sorteren door de gebruiker te laten initiëren, of bijvoorbeeld pas sorteringen toe staan als er een minimaal aantal criteria geselecteerd zijn. Merk op dat we niet willen ontmoedigen dat u sortering toepast, maar louter aangeven dat u door het bewust gebruik van sortering hier en daar een tijdswinst kunt behalen.
Pagina 46
TSI-XML-Doc-001v14-PackageSearch.doc
6 Updates De volgende significante updates hebben plaatsgevonden op de TravelSearch webservice, merk op dat de service continu wordt onderhouden en geoptimaliseerd en hier derhalve niet elke kleinere update genoemd kan worden:
6.1 13 februari 2007 6.1.1
Gewijzigd: Criterium StarClassification
Waar deze bij de getCriteria en bij het zoeken richtte op exacte sterren, doet hij dit nu bij x of meer. Een item met ID 2 en resultCount 403 beteken nu dus, dat er 403 resultaten bestaan met 2 of meer sterren. 6.1.2
Nieuw: Criterium AccommodationName
Hier kan nu ook op gezocht worden mbv een freeValue waarde. Voor de snelheid is aanbevolen dit te combineren met extra criteria. 6.1.3
Snelheid
Om de snelheid beter te kunnen garanderen zijn de volgende maatregelen toegepast. 1. Sortering wordt genegeerd wanneer er gezocht wordt zonder enig geselecteerd criteria 2. Bij zoekvragen die meer dan 1000 resultaten opleveren, wordt gekozen voor de eerste de beste 1000 resultaten die aan het criteria voldoen, waarop vervolgens volgens de gewenste criteria gesorteerd wordt. In de praktijk betekent dit dat de resultaten juist gesorteerd opgeleverd worden, maar niet persé de eerste 100 resultaten van de complete set zijn. Als gesorteerd wordt op AccommodationName zullen dus resultaten met een naam beginnen van A tot Z voor kunnen komen. Voor zoekvragen die minder dan 1000 resultaten opleveren is er niets veranderd.
6.2 23 februari 2007 6.2.1
Periode zoeken / criteria opvragen / resultaten tellen
Wanneer men een van de criteria MinimumDepartureDate, MaximumDepartureDate, MaximumReturnDate wordt gebruikt dan wordt deze selectie uitgebreid met extra criteria, zodat er een strikte periode ontstaat. Het resultaat zal zijn dat er gezocht wordt met een minimale vertrekdatum en een maximale vertrekdatum met een bereik van maximaal 3 weken, of dat er gezocht wordt met een minimale vertrekdatum en een maximale retourdatum met een bereik van maximaal 5 weken of natuurlijk een combinatie hiervan. Het voordeel hier is dat het zoeken vanaf automatisch wordt beperkt en er sneller resultaat opgeleverd kan worden. Het nadeel is o.a. dat het gevolg is, dat wanneer men bijvoorbeeld zoekt op de minimale vertrek datum van januari en een maximale retourdatum van april, dit niets meer zal opleveren. 6.2.2
Accommodatie-specifieke-criteria cachen
Accommodatie-specifieke-criteria wordt nu ook vluchtig gecached, om zo accuraat mogelijk te blijven was er eerder besloten dit niet te cachen, we gaan het nu met redelijke korte perioden cachen. De criteria worden maximaal 2 minuten vast gehouden. Deze manier van cachen zal vooral voordeel hebben als er veel naar dezelfde accommodatie gekeken worden, of wanneer men heen en weer bladert tussen de verschillende opties van een accommodatie, (bijvoorbeeld heen en weer tussen de verzorging, of de startdatum). Voordeel hier is performance, nadeel binnen 2 minuten kans op onnodige niet beschikbare informatie. Pagina 47
TSI-XML-Doc-001v14-PackageSearch.doc 6.2.3
Zoekresultaat cachen
Zoek resultaten werden ook niet gecached, vooral omdat dit tot veel verschillende cache kan leiden, vele zoekopdrachten hoeven immers niet op elkaar te lijken. En ook hier omdat u geen dingen wilt kunnen vinden die net op niet-beschikbaar zijn gezet. Hier wordt vluchtig gecached, wat inhoudt dat zoekresultaten tot een maximum van 10 minuten vastgehouden worden. Voordeel hier is performance, nadeel binnen 10 minuten kans op onnodige niet beschikbare informatie. Het nadeel is beperkt omdat u na deze resultaten veelal naar de accommodatie pagina gaat waar meestal meerdere wel beschikbare data bestaan.
6.3 26 april 2007 6.3.1
Nieuw: Prijs informatie opvragen
Vanaf nu kan er ook prijs informatie op accommodatie basis opgevraagd worden. Deze kunnen zo accuraat mogelijk worden opgevraagd m.b.v. een AccommodationId, DepartureDate danwel MinimumDepartureDate / MaximumDepartureDate combinaties. Aangevuld met TransportType, DepartureAirport en / of Trip om specifieke prijzen te verkrijgen, optioneel aangevuld met BoardType en NightCount om het aantal resultaten ietwat in te kunnen perken.
6.4 Januari 2008 6.4.1
Nieuw: Meerdere gelijke criteria opgeven
Vanaf nu is het mogelijke om van het Country, District en Place criterium er tot maximaal 3 op te geven. Dit maakt het bijvoorbeeld mogelijk om enkele ‘multi-selects’ op uw site aan te bieden. Het is vanaf nu dus mogelijk om in een keer binnen Spanje én Portugal te zoeken. 6.4.2
Nieuw: getReducedSearchResults
Deze nieuwe functie werkt hetzelfde als de bestaande getSearchResult methode met als toevoeging dat er op gegeven kan worden welke items men graag terug wilt zien in de zoekresultaten. Op deze manier kunt u de communicatie en verwerking van de Soap berichten versnellen, gezien dit de grootte van de berichten kan verkleinen. 6.4.3
Nieuw: OsiCode
Voor specifieke login’s kan gebruik gemaakt worden van het nieuwe OsiCode criterium. Deze helpt bij het ontdubbelen van accommodaties over alle touroperators heen. Als ondersteuning is er ook de nieuwe functie getOsiSearchResults toegevoegd, die louter een kleine lijst van Osi codes op kan leveren. 6.4.4
Aangepast: Maximale zoekresultaten
Het maximale zoekresultaten is verhoogd van 100 naar 250 resultaten. Mocht dit op een later punt echter toch nog te veel blijken kunnen we het wellicht terug aanpassen naar een lagere waarde. Let op dat door de manier van groeperen (Op AccommodationId of op OsiCode niveau) dit verder terug kan vallen. Het blijft aan te bevelen dat u er dmv criteria vragen het uiteindelijk op te vragen aantal resultaten al natuurlijk beperkt wordt.
6.5 April 2008 6.5.1
Nieuw: Region
Het nieuwe ‘Region’ criterium kunt u gebruiken om regio’s op te vragen. Dit zijn regio’s die bestaan uit een verzameling landen bijvoorbeeld ‘Europa’, ‘Benelux’ e.d. en regio’s die bestaan uit een verzameling streken bijvoorbeeld ‘Middellandse zee gebied’, ‘Canarische Eilanden’ e.d. U zou deze kunnen gebruiken als voor selectie op land, of bijvoorbeeld mixen met een Landen lijst. Pagina 48
TSI-XML-Doc-001v14-PackageSearch.doc 6.5.2
Nieuw: TravelType
Het nieuwe ‘TravelType’ criterium kunt u gebruiken om reistypes op te vragen. Momenteel ondersteunde reistypes zijn ‘Wintersport’ en ‘Stedentrips’.
6.6 Juli 2008 6.6.1
Nieuw: Skigebieden
Het nieuwe ‘SkiArea’ criterium kunt u gebruiken om skigebieden op te vragen. U zou deze apart aan kunnen bieden, maar bijvoorbeeld ook kunnen mixen met een District lijst. 6.6.2
Nieuw: Vrij zoeken
Met het nieuwe ‘FreeSearch’ criterium kunt u vrij zoeken. U kunt deze als enkele interface op uw website gebruiken, of bijvoorbeeld als extra criterium toevoegen op u zoek pagina. Met het ‘FreeSearch’ criterium vindt u landen en lokaties, maar ook accommodatienamen, codes en kenmerken. 6.6.3
Nieuw: Beschikbaarheidindicaties
Met de nieuwe ‘AvailabilityEstimate’, ‘MinimumAvailabilityEstimate’ en ‘MaximumAvailabilityEstimate’ criteria, verkrijgt u nu per zoekresultaat een schatting van de beschikbaarheid van het resultaat, kunt u zoeken en sorteren op beschikbaarheid. TSi doet constant steekproeven om de beschikbaarheidindicaties accuraat te houden, de schatting die wij bij een accommodatie geven zijn gebaseerd op metingen van de afgelopen 24 uur.
6.7 Oktober 2008 6.7.1
Nieuw: getTripPriceInfo
Met deze nieuwe functie kunt u alle prijzen tot op kamer niveau opvragen. Dit kunt u doen voor alle reiscombinaties die er voor een accommodatie bestaan. Hiervoor is er een nieuwe functie aan de wsdl toegevoegd alsmede 5 nieuwe objecten die hierdoor gebruikt worden. Zie de functie documentatie in deze handleiding voor het optimaal gebruiken van deze functie. 6.7.2
Nieuw: Zoeken op kamerbezetting
Met het nieuwe criterium ‘SingleAccommodationOccupation’ kunt u op zoek naar accommodaties die kamers / appartementen / ‘units’ waarin de gewenste bezetting in één enkele unit (kamer/appartement etc.) past. Op deze manier kan er bijvoorbeeld gezocht worden naar een appartement waarin een groep van 16 man met z’n allen in past, zonder 2 of meer units te hoeven boeken.
Pagina 49
TSI-XML-Doc-001v14-PackageSearch.doc
Index
A Accommodatie informatie Accommodatie pagina · 11 AccommodationInfo · 19 CriteriumNames · 40 getAccommodationInfo · 30 AccommodationId Accommodatie pagina · 10 CriteriumNames · 40 Resultaten op 'Osi-niveau' · 12 Zoekresultaat · 10 AccommodationInfo Object · 19 accommodationInfoCode Accommodatie informatie · 11 CriteriumNames · 41 getAccommodationInfo · 30 AccommodationName CriteriumNames · 41 AccommodationType CriteriumNames · 40 Adults CriteriumNames · 41 Afbeelding AccommodationInfo · 19 SearchResultItem · 18 Authorisation Functies · 26 Object · 15 Automatisch beperkingen · 44 AvailabilityEstimate Beschikbaarheid van het assortiment · 13 CriteriumNames · 42
B Babies CriteriumNames · 41 baseUrl Parameters voor het boeken · 12 Beschikbaarheid · 13 BoardType Accommodatie pagina · 10 CriteriumNames · 40 Boeken · 11 Boeken en de OsiCode · 13 CriteriumNames · 40 Parameters voor het boeken · 12 bookSuccesPage Parameters voor het boeken · 12
C Characteristic CriteriumNames · 41 CharterSearch · Zie versies Children
CriteriumNames · 41 Code CriteriumNames · 41 Country CriteriumNames · 9, 10, 16, 17, 18, 38, 40, 42, 43, 48 Criteria Extra beperkingen · 43 Gebruik van de webservice · 8 getCriteria · 27 getCriteriumNames · 27 getSortableCriteriumNames · 29
D DepartureAirport Accommodatie pagina · 10, 11 CriteriumNames · 40 DepartureDate Accommodatie pagina · 10 CriteriumNames · 41 District CriteriumNames · 40 Boeken getBookUrl · 32 getBookUrl Functie · 32
E errorPage Parameters voor het boeken · 12 Extra beperkingen · 43
getCriteria CriteriumNames · 40 De zoekpagina · 10 Functie · 27 Resultaten op 'Osi-niveau' · 12 getCriteriumItems Tips voor een goed presterende website · 45 getCriteriumNames Functie · 26 getOsiSearchResults · Zie ook getSearchResults" Functie · 35 getPriceInfo Functie · 31 Prijs informatie tonen · 11 getReducedSearchResults · Zie ook getSearchResults Functie · 33 Tips voor een goed presterende website · 46 getResultCount Functie · 28 getSearchResults CriteriumNames · 40 Functie · 29 Resultaten op 'Osi-niveau' · 12 Tips voor een goed presterende website · 46 Zoekresultaat · 10 getSortableCriteriumNames Functie · 29 getTripPriceInfo Functie · 36 Objecten · 21
H F Functies · 26 Foutafhandeling · 38 Foutcodes · 39 FreeNightCount CriteriumNames · 41 FreeSearch CriteriumNames · 42 freeValue / id CriteriumNames · 40 SearchCriteriumItem · 17
HolidayHomeSearch · Zie versies
I isoLanguage · Zie taal
K Keyword CriteriumNames · 42
G Gebruik van de webservice · 7 getAccommodationInfo Accommodatie informatie · 11 Functie · 30 getBookUrl Accommodatie pagina · 11 Boeken · 11 getBookUrlparameters Parameters voor het boeken · 12
M MaximumAvailabilityEstimate CriteriumNames · 42 MaximumDepartureDate CriteriumNames · 41 MaximumNightCount CriteriumNames · 40 MaximumPricePerPerson
Pagina 50
TSI-XML-Doc-001v14-PackageSearch.doc CriteriumNames · 41 MaximumReturnDate CriteriumNames · 41 MaximumSingleAccommodationOc cupation CriteriumNames · 42 MinimumAvailabilityEstimate Beschikbaarheid van het assortiment · 13 CriteriumNames · 42 MinimumDepartureDate CriteriumNames · 41 MinimumNightCount CriteriumNames · 40 MinimumPricePerPerson CriteriumNames · 41 MinimumSingleAccommodationOcc upation CriteriumNames · 42
N NightCount Accommodatie pagina · 10 CriteriumNames · 40 notAvailablePage Parameters voor het boeken · 12 notBookablePage Parameters voor het boeken · 12 Nul pagina · 10
O objecten Soap · 5 Objecten · 15 Osi · Zie ook OsiCode Gebruik van Osi code · 12 getOsiSearchResults · 35 Osi code beschikbaarheid · 12 Resultaten op ‘Osi-niveau’ · 12 Wat is een Osi · 12 OsiCode Boeken en de OsiCode · 13 CriteriumNames · 41 De OsiCode als geselecteerd criterium · 12
P PackageSearch · Zie versies Parameters voor het boeken · 12 Periode beperkingen · 44 Place CriteriumNames · 40 Prestaties · 10 Tips voor een goed presterende website · 45 PriceInfo Object · 19
PriceInfoItem Object · 20 Prijs informatie getPriceInfo · 31 getTripPriceInfo · 36 PriceInfoItem · 21, 25 Prijs informatie tonen · 11
R Region CriteriumNames · 41 resultCount getCriteria · 27 returningCriteriumNames CriteriumNames · 40 RoomType CriteriumNames · 40
S SearchCriteria Object · 15 SearchCriterium Object · 16 SearchCriteriumItem getSearchResult · 29 Object · 16 SearchResultItem Object · 18 SearchResults Object · 17 selected getCriteria · 27 selectedCriteriumItems Het gebruik van · 38 SearchCriteria · See selectedCriteriumNames CriteriumNames · 40 SingleAccommodationOccupation CriteriumNames · 42 Zoeken op bezetting · 14 SkiArea CriteriumNames · 41 Soap · 7 Functies · 26 Objecten · 15 Webservice · 7 WSDL · 7 SortCriterium Object · 17 Sorteren CriteriumNames · 40 Extra beperkingen · 44 getSearchResults · 29 SortCriterium · 17 Tips voor een goed presterende website · 46 StarClassification CriteriumNames · 40 stepBackPage Parameters voor het boeken · 12
T Taal Authorisation · 15 Thumbnail AccommodationInfo · 19 SearchResultItem · 18 Tips voor een goed presterende website · 45 TourOperator CriteriumNames · 40 TourOperatorClassification CriteriumNames · 40 TransportType Accommodatie pagina · 10 CriteriumNames · 40 TravelType CriteriumNames · 41 Trip Accommodatie pagina · 10 CriteriumNames · 40, 41 Gebruik van het Trip criterium · 11 TripOption Object · 23 TripPriceInfo Object · 21 TripPriceInfoItem Object · 22 TripRoom Object · 24 TripRoomPrice Object · 25
V valid getCriteria · 27 Versies · 7
W WSDL Soap · 7
Z Zoekpagina · 9 Zoekresultaat · 10 SearchResultItem · 18 Zoekresultaten resultingCriteriumItems · 14 Zoekresultaat getResultcount · 28 getSearchResults · 29
Pagina 2