Table of contents
-
- Search methods
- Check methods
- Booking methods
- Info methods
Data export
- Methods
Table of contents
Data export
This is an old revision of the document!
Create booking. This method creates booking in ORS. Book method will affect the stock and you can have cancellation costs if you'll want to cancel your booking. Use register method for testing book
because it returns almost identical output.
pauschal
hotel
trips
charter
oneway
extras
searchData (array)
: search and info parameters. Enter the same search parameters that you've used with trips method, because this will ensure that session won't expire, also use this for information about a customer and travellers.trip (array)
: trip parameters (you will get this info from trips method). Required params are (hsc
and toc
, also sid
when using trips
content type.headerData (array)
: SOAP Header InformationtestMode (bool)
: if true
then a method will only test a booking in ORS (this is not possible for all touroperators that's why you should use register method for testing instead. If false
then a valid booking will be made.Returns booking status, booking number and total price for all passengers. If session hasn't expired then this method will also return offer and trip info. Output is almost identical to register method.
Array ( [offerTripInfo] => Array ( [xmlReq] => [searchtermin_xmlReq] => [header] => Array ( [typ] => hotel [offers] => 1 [rgc] => [rgn] => 0 [rgg] => [rggn] => [pages] => 1 [perpage] => 20 [offset] => [sid] => 9h0f8a8kvi73h13mrju67cjbn0 ) [offer] => Array ( [pic] => http://www.ors.si/giata-pics/71088//full.jpg [gid] => 71088 [htn] => Feral [stc] => 4.0 [ovr] => 0 [oid] => 23887 [hon] => Brna [fcts] => bea=1,ben=1,chf=0,clb=0,ani=0,pol=1,wel=0,spt=1,sgl=0,stn=0,ski=0 [dtemp] => [wtemp] => [rgc] => 659 [rgn] => Dalmatia [rgg] => 100023 [rggn] => Croatia [geo] => 1 [lat] => 42.9045823966052000 [lon] => 16.8566189525687980 ) [trip] => Array ( [sub] => catalog [gid] => 71088 [toc] => PALM [tockoda] => 80657677 [ton] => Palma [rgc] => 659 [oid] => 2288 [zac] => EC [zackoda] => 6967 [zan] => economy room [vpc] => AI [vpckoda] => 6573 [vpn] => all inclusive [od] => aid=,iid=,lid=,vid=,zid=palm_22412 [htc] => LEHRV5041414 [svc] => 22412 EC AI [ahckoda] => [vnd] => 2014-10-16 [bsd] => 2014-10-18 [tdc] => 2 [md5p] => 097327bb91f2aafa0ebde7687bf4b412 [md5t] => 33e14d43b65576a64e5dafcb4380558f [hsc] => 33e14d43b65576a64e5dafcb4380558f [ppc] => 76 [alt] => 0 [top] => 0 [tocpic] => http://www.ors.si/ibe/ikonce/toc/palm.gif [aid] => [atx] => [iid] => [itx] => [lid] => [ltx] => [vid] => [vtx] => [zid] => palm_22412 [ztx] => 1/2+1 ECO AC; ALL LIGHT ) ) [response] => Array ( [mid] => 200 [ttp] => 213.00 [ttpd] => 0.00 [ppc] => 76.00 [txt] => Reservation ok [status] => 1 ) [offer] => Array ( [typ] => hotel [toc] => PALM [ton] => Palma [tocp] => http://www.ors.si/ibe/ikonce/toc/palm.gif [htc] => LEHRV504141486 [gid] => 71088 [hon] => KORČULA [oid] => [desc] => [zac] => EC [zan] => economy room [vpc] => AI [vpn] => all inclusive [svc] => 22412 EC AI [stc] => [htn] => Hotel Feral 4* [zhc] => DBV [zhn] => Dubrovnik (Kroatien) [ahc] => [ahn] => [vnd] => 16.10.2014 [bsd] => 18.10.2014 [tdc] => 2 [sub] => catalog [sid] => [sin] => [ovr] => 0 [pic] => http://www.ors.si/giata-pics/71088/full.jpg ) [operator] => Array ( [toc] => PALM [hsc] => 33e14d43b65576a64e5dafcb4380558f [agt] => 454085 [rmk] => My remark [prc] => 409842 [bkc] => 20140818140737609 ) [customer] => Array ( [sur] => Smith [pre] => Smith [eml] => myemail@gmail.com [str] => 31st Park street [zip] => 12345 [cty] => London [tel] => 00386 03 123 456 [mob] => 00386 41 222 444 [fax] => ) [travellers] => Array ( [0] => Array ( [id] => 1 [typ] => H [sur] => Smith [pre] => John [tvp] => 76 [age] => 09091982 [str] => [cty] => [zip] => [eml] => [tel] => [personalID] => [country] => [vatnr] => [promo] => ) [1] => Array ( [id] => 2 [typ] => D [sur] => Smith [pre] => Martha [tvp] => 76 [age] => 08101981 [str] => [cty] => [zip] => [eml] => [tel] => [personalID] => [country] => [vatnr] => [promo] => ) [2] => Array ( [id] => 3 [typ] => K [sur] => Smith [pre] => Tony [tvp] => 61 [age] => 12012000 [str] => [cty] => [zip] => [eml] => [tel] => [personalID] => [country] => [vatnr] => [promo] => ) ) [info] => Array ( [0] => Room type: 1/2+1 ECO AC; ALL LIGHT [1] => Hotel Feral 4* [2] => Code: LEHRV504141486 [3] => City: KORCULA [4] => Room: economy room [5] => Service: all inclusive [6] => Service code: 22412 EC AI [7] => -------------------------------------------------------------- [8] => CRS powered by ORS XTREME ) [errorNr] => [error] => [xmlReq] =>
offerTripInfo
(array) : offer and trip info (check offertripinfo)xmlReq
: for internal use onlysearchtermin_xmlReq
: for internal use onlyheader (array)
: information about a selected region and paging information (check trips method for this return array)offer (array)
: check trips method for this return arraytrip (array)
: check trips method for this return arrayxmlReq
: ors xml request used with this methodxmlRes
: ors xml response used with this methodresponse (array)
: availability status, message and a total pricemid
: availability message ID (check Message IDs for a list of possible values)txt
: availability text message (message is in selected language and it depends on mid
value)status
: availability status. ttp
: total price for all passengersppc
: price per person (in situations when there is a price per room then this value will be empty or zero)ttpd
: this is a reserved parameter!offer (array)
: this are an offer information directly from touroperator. This values may differ from offerTripInfo
information!typ
: content typesub
: sub categorytoc
: touroperator codeton
: touroperator nametocp
: touroperator logohtc
: hotel code (or product code)gid
: accommodation GIATA IDhon
: city nameoid
: city IDdesc
: reserved parameterzac
: room type codezan
: room type namevpc
: service type codevpn
: service type namesvc
: service codehtn
: accommodation namestc
: hotel categoryzhc
: destination code (IATA code)zhn
: destination nameahc
: departure airport code (IATA code)ahn
: departure airport namevnd
: checkin datebsd
: checkout datetdc
: durationsid
: bus stop id (only for trips
content type)sin
: bus stop nameidp
: offer ID (use this to search extras
services that are in combination with accommodation)ovr
: overall ratingpic
: full pictureactions (array)
: promotions used with this offer. This is currently experimental because not all touroperator return this info.operator (array)
: used action, touroperator info and trip hash codeact
: actiontoc
: touroperator codehsc
: unique trip hash code used for this check method agt
: agency numberrmk
: user remarks (if user hasn't sent any remarks then this parameter is empty)prc
: boking number (if this parameter is empty then booking was not successfull)bkc
: ORS internal registration numbercustomer (array)
: customer info (to whom the reservation is made)sur
: last namepre
: first nameeml
: email addressstr
: streetzip
: zip codecty
: citytel
: telephonemob
: mobilefax
: fax numbertravellers (array)
: passengers infoid
: passenger sequence numbertyp
: passenger sex / type. Possible values: sur
: last namepre
: first nameage
: age / birthdaytvp
: price for this personstr
: streetcty
: cityzip
: zip codeeml
: emailtel
: telephonepersonalID
: personal ID numbercountry
: ISO country codeinfo
: touroperator information text. This text is directly from selectged touroperator and can be in different language. Usually this text contains important information about checked offer.errorNr
: error numbererror
: error message$searchParams = array( 'vnd' => '30.10.2014', // start date 'bsd' => '15.11.2014', // end date 'tdc' => '1-4', // duration [min-max] days 'epc' => '2', // number of adults 'ka1' => '14', // age of first child 'gid' => '71088', // selected hotel by GIATA ID 'eml' => 'myemail@gmail.com', // required parameter ! 'zip' => '12345', // required parameter ! 'str' => '31st Park street', // required parameter ! 'cty' => 'London', // required parameter ! 'tel' => '00386 03 123 456', // telephone 'mob' => '00386 41 222 444', // mobile 'sur1' => 'Smith', // required parameter ! 'pre1' => 'John', // required parameter ! 'sur2' => 'Smith', // required parameter ! 'pre2' => 'Martha', // required parameter ! 'sur3' => 'Smith', // required parameter ! 'pre3' => 'Tony', // required parameter ! 'anrede1' => 'H', // required parameter ! 'anrede2' => 'D', // required parameter ! 'anrede3' => 'K', // required parameter ! 'age1' => '19820909', // birth day of first passenger (format: 'Ymd') - 9th sep 1982 'age2' => '19811008', // birth day of second passenger (format: 'Ymd') - 8th oct 1081 'age3' => '20001201', // birth day of third passenger (format: 'Ymd') - 1st dec 2000 'rmk' => 'My remark', // a short remark / note ); $trip = array( 'hsc' => '33e14d43b65576a64e5dafcb4380558f', // unique trip hash code 'toc' => 'PALM' // toruoperator code ); // create booking $book = $soapClient->orsxml_hotel_api_call( 'book', $searchParams, $trip, $headerData ); // check status and total price if ($book['response']['status'] == 1) { echo "Booking was successfull. Booking number is: " . $book['response']['prc'] . "\n"; echo "Total price: " . $book['response']['ttp']; } if ($book['response']['status'] == 2) { echo "Booking on request was successfull. Booking number is: " . $book['response']['prc'] . "\n"; echo "Total price: " . $book['response']['ttp']; } if ($book['response']['status'] == 0 || $book['response']['status'] == 4) { echo "Can't create booking, offer is not available"; } if ($book['response']['status'] == 3) { echo "Can't create booking, Communication error. Please try again. \n"; echo "Touroperator message: " . $book['response']['txt']; } if ($book['response']['status'] == 5) { echo "Can't create booking, Check touroperator message: " . $book['response']['txt']; }
$searchParams = array( ... // payment info 'payment_method' => 'cc', // payment method (cc - credit card, upn - wire transfer) 'advance_payment' => '115', // advance payment (amount in euros) 'bfee' => '5%', // booking fee )
@see ORS JSON API how to post request.
{ "requestType" : "book", "action": "book", "search": { "typ": "hotel", "hsc": "509fd42d2fe71bc3396830b207d4bb92", "toc": "PALM", "epc": "2", "eml": "gregor.flajs@ors.si", "zip": "3310", "str": "ulica", "cty": "zalec", "sur1": "Flajs", "sur2": "Test", "pre1": "Gregor", "pre2": "ORS", "anrede1": "H", "anrede2": "H", "rmk": "THIS IS A REAL BOOKING" }, "header": { "lang": "[lang]", "usr" : "[usr]", "pass": "[pass]", "agid": "[agid]" } }
Before making a booking with extras you must fist make offers
request to get extras hash codes. Check offers on how to get different extras.
$searchParams
is a bit different. Accommodations and extras are entered as arrays. You can book different accommodations with more then one room (be careful that you place persons correctly). $searchParams = array( 'vnd' => '30.10.2014', // start date 'bsd' => '15.11.2014', // end date 'tdc' => '1-4', // duration [min-max] days 'epc' => '4', // number of adults 'eml' => 'myemail@gmail.com', // required parameter ! 'zip' => '12345', // required parameter ! 'str' => '31st Park street', // required parameter ! 'cty' => 'London', // required parameter ! 'tel' => '00386 03 123 456', // telephone 'mob' => '00386 41 222 444', // mobile 'sur1' => 'Smith', // required parameter ! 'pre1' => 'John', // required parameter ! 'sur2' => 'Smith', // required parameter ! 'pre2' => 'Martha', // required parameter ! 'sur3' => 'Forrester', // required parameter ! 'pre3' => 'Tim', // required parameter ! 'sur4' => 'Forrester', // required parameter ! 'pre4' => 'Amanda', // required parameter ! 'anrede1' => 'H', // required parameter ! 'anrede2' => 'D', // required parameter ! 'anrede3' => 'H', // required parameter ! 'anrede4' => 'D', // required parameter ! // accommodations 'hotel' => array( // first accommodation '2262:4862:ZAD22627102:7102:OV:2014-08-16:2014-08-23' => array( // first room (for 1st and 2nd person) 0 => array( 'hsc' => '2262:4862:ZAD22627102:7102:OV:2014-08-16:2014-08-23', // offer hash code 'psn' => '1,2', // 1st and 2nd person ), // second room (for 3rd and 4th person) 1 => array( 'hsc' => '2262:4862:ZAD22627102:7102:OV:2014-08-16:2014-08-23', // offer hash code 'psn' => '3,4', // 3rd and 4th person ) ) ) // extras 'extras' => array( // 1st extras (for all persons) '199|0||0|2014-08-18|2014-08-18|2014-08-18' => array( 'hsc' => '199|0||0|2014-08-18|2014-08-18|2014-08-18', 'psn' => '1,2,3,4' ), // 2nd extras (for first two persons) '751|0||0|2014-08-18|2014-08-18|2014-08-18' => array( 'hsc' => '751|0||0|2014-08-18|2014-08-18|2014-08-18', 'psn' => '1,2' ) ), ); $trip = array( 'hsc' => 'x', // when booking packages, then just place 'x' for this parameter 'toc' => 'CMT' // touroperator code ); // book method $book = $soapClient->orsxml_hotel_api_call( 'book', $searchParams, $trip, $headerData, true );
* Example of booking only extra services (without accommodation)
$searchParams = array( 'epc' => '2', // number of adults 'eml' => 'myemail@gmail.com', // required parameter ! 'zip' => '12345', // required parameter ! 'str' => '31st Park street', // required parameter ! 'cty' => 'London', // required parameter ! 'tel' => '00386 03 123 456', // telephone 'mob' => '00386 41 222 444', // mobile 'sur1' => 'Smith', // required parameter ! 'pre1' => 'John', // required parameter ! 'sur2' => 'Smith', // required parameter ! 'pre2' => 'Martha', // required parameter ! 'anrede1' => 'H', // required parameter ! 'anrede2' => 'D', // required parameter ! // extras 'extras' => array( // 1st extras (for all persons) '199|0||0|2014-08-18|2014-08-18|2014-08-18' => array( 'hsc' => '199|0||0|2014-08-18|2014-08-18|2014-08-18', 'psn' => '1,2' ), ), ); $trip = array( 'hsc' => 'x', // when booking packages, then just place 'x' for this parameter 'toc' => 'CMT' // touroperator code ); // book method $book = $soapClient->orsxml_hotel_api_call( 'book', $searchParams, $trip, $headerData );