Table of Contents

Book method

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.

Valid content types

Description

public array book( array $searchData, array $trip, array $headerData, boolean $testMode = false )

Parameters

Return Values

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] => 

Return parameters

Examples

$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
 
)

JSON Examples

@see ORS JSON API how to post request.

{
  "requestType" : "book",
  "action": "book",
  "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",
    "anrede3": "K",
    "age": "2005-06-11",
    "rmk": "THIS IS A REAL BOOKING"
  },
  "header": {
    "lang": "[lang]",
    "usr" : "[usr]",
    "pass": "[pass]",
    "agid": "[agid]"
  }
}

Examples (Extras)

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 = 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 );