====== Register method ====== Register your booking. This method creates registration in ORS which can be used later to create booking. Registrations does not affect the stock. ===== Valid content types ===== * ''pauschal'' * ''hotel'' * ''trips'' * ''charter'' * ''oneway'' * ''extras'' ===== Description ===== public array register( array $searchData, array $trip, array $headerData, boolean $booking = true ) ===== Parameters ===== * ''searchData (array)'' : search and info parameters. Enter the same search parameters that you've used with [[trips|trips method]], because this will ensure that session won't expire, also include your personal information (email, address, name, ...) * ''trip (array)'' : trip parameters (you will get this info from [[trips|trips method]]). Required params are (''hsc'' and ''toc'', also ''sid'' when using ''trips'' content type. * ''headerData (array)'' : [[soap_header|SOAP Header Information]] * ''booking (bool)'' : if ''true'' then a method will create a valid registration in ORS, if ''false'' then no registration will be made (use ''false'' for testing on your server). ===== Return Values ===== Returns registration status 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 [[check|check 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 ) ) [confirmation] => Array ( [mid] => 1 [bkc] => 920140818145324 ) [response] => Array ( [mid] => 712 [ttp] => 213.00 [ttpd] => 0.00 [ppc] => 76.00 [txt] => Reservation possible, insert B command [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] => ) [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] => ===== Return parameters ===== * ''offerTripInfo'' (array) : offer and trip info (check [[offertripinfo|offertripinfo]]) * ''xmlReq'' : for internal use only * ''searchtermin_xmlReq'' : for internal use only * ''header (array)'' : information about a selected region and paging information (check [[trips|trips method]] for this return array) * ''offer (array)'' : check [[trips|trips method]] for this return array * ''trip (array)'' : check [[trips|trips method]] for this return array * ''xmlReq'' : ors xml request used with this method * ''xmlRes'' : ors xml response used with this method * ''confirmation (array)'' : register status * ''mid'' : (1) registration created successfully, (0) error has occurred in creating registration * ''bkc'' : ORS internal registration number * ''response (array)'' : availability status, message and a total price * ''mid'' : 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. * **0** : offer is not free * **1** : offer is free and registration was successfull * **2** : offer is on request and registration was successfull. If offer is on request, a person must wait for a touroperator confirmation. * **3** : communication error (something went wrong with communication between ORS and touroperator). * **4** : offer is sold out (same as status 0) * **5** : booking is not possible, you must check availability text message for detailed description of a problem * ''ttp'' : total price for all passengers * ''ppc'' : 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 type * ''sub'' : sub category * ''toc'' : touroperator code * ''ton'' : touroperator name * ''tocp'' : touroperator logo * ''htc'' : hotel code (or product code) * ''gid'' : accommodation GIATA ID * ''hon'' : city name * ''oid'' : city ID * ''desc'' : reserved parameter * ''zac'' : room type code * ''zan'' : room type name * ''vpc'' : service type code * ''vpn'' : service type name * ''svc'' : service code * ''htn'' : accommodation name * ''stc'' : hotel category * ''zhc'' : destination code (IATA code) * ''zhn'' : destination name * ''ahc'' : departure airport code (IATA code) * ''ahn'' : departure airport name * ''vnd'' : checkin date * ''bsd'' : checkout date * ''tdc'' : duration * ''sid'' : bus stop id (only for ''trips'' content type) * ''sin'' : bus stop name * ''idp'' : offer ID (use this to search ''extras'' services that are in combination with accommodation) * ''ovr'' : overall rating * ''pic'' : full picture * ''actions (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 code * ''act'' : action * ''toc'' : touroperator code * ''hsc'' : unique trip hash code used for this check method * ''agt'' : agency number * ''rmk'' : user remarks (if user hasn't sent any remarks then this parameter is empty) * ''travellers (array)'' : passengers info * ''id'' : passenger sequence number * ''typ'' : passenger sex / type. Possible values: * **H** : mr. * **D** : mrs. * **K** : child * **B** : baby (infant) * ''sur'' : last name * ''pre'' : first name * ''age'' : age / birthday * ''tvp'' : price for this person * ''str'' : street * ''cty'' : city * ''zip'' : zip code * ''eml'' : email * ''tel'' : telephone * ''personalID'' : personal ID number * ''country'' : ISO country code * ''info'' : 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 number * ''error'' : error message ===== Examples ===== * Example of simple registration $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' => '09091982', // birth day of first passenger (format: 'dmY') - 9th sep 1982 'age2' => '08101981', // birth day of second passenger (format: 'dmY') - 8th oct 1081 'age3' => '01122000', // birth day of third passenger (format: 'dmY') - 1st dec 2000 'rmk' => 'My remark...', // customer remark ); $trip = array( 'hsc' => '33e14d43b65576a64e5dafcb4380558f', // unique trip hash code 'toc' => 'PALM' // toruoperator code ); // test register method ($booking = false) $register = $soapClient->orsxml_hotel_api_call( 'register', $searchParams, $trip, $headerData, false ); // create registration ($booking = true) $register = $soapClient->orsxml_hotel_api_call( 'register', $searchParams, $trip, $headerData, true ); // check status and total price if ($register['response']['status'] == 1) { echo "Registration was successfull. \n"; echo "Total price: " . $register['response']['ttp']; } if ($register['response']['status'] == 2) { echo "Registration on request was successfull.\n"; echo "Total price: " . $register['response']['ttp']; } if ($register['response']['status'] == 0 || $register['response']['status'] == 4) { echo "Can't create registration, offer is not available"; } if ($register['response']['status'] == 3) { echo "Can't create registration, Communication error. Please try again. \n"; echo "Touroperator message: " . $register['response']['txt']; } if ($register['response']['status'] == 5) { echo "Can't create registration, Check touroperator message: " . $register['response']['txt']; } ===== JSON Examples ===== @see [[ors-soap-api:public:json_api]] how to post request. { "requestType" : "book", "action": "register", "search": { "typ": "hotel", "hsc": "509fd42d2fe71bc3396830b207d4bb92", "toc": "PALM", "eml": "gregor.flajs@ors.si", "zip": "3310", "str": "ulica", "cty": "zalec", "sur1": "Flajs", "sur2": "Test", "sur3": "Child", "pre1": "Gregor", "pre2": "Lady", "pre3": "Kid", "anrede1": "H", "anrede2": "D", "anrede2": "K", "age3": "2005-06-11", "rmk": "TEST REGISTRAION" }, "booking": true, "header": { "lang": "[lang]", "usr" : "[usr]", "pass": "[pass]", "agid": "[agid]" } } ===== Examples (Extras) ===== Before making a registration you must fist make ''offers'' request to get extras hash codes. Check [[offers method|offers]] on how to get different extras. * Example of simple registration with extras (packages accommodation + extras). When booking packages a ''$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 ); // test register method ($booking = false) $register = $soapClient->orsxml_hotel_api_call( 'register', $searchParams, $trip, $headerData, true ); * Example of registering 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 ); // test register method ($booking = false) $register = $soapClient->orsxml_hotel_api_call( 'register', $searchParams, $trip, $headerData, false );