Table of Contents

SwOTA Shopping

This page describes the general shopping steps and possible modifications.

Cruise Shopping Flow

Booking a Seaware reservation involves searching for the available cruise components followed by the creation of the booking. First, the traveler (here it can be a client, agent, agency – any party that is making a booking) decides when and where the cruise is to be taken. After the sailing package has been selected the traveler decides on the accommodation type. Finally the cruise is purchased.

Typical Booking Steps

To book a Seaware cruise, the traveler typically performs the following steps:

  1. SailAvail: Get list of sailings for specified dates/ship/etc.
  2. FareAvail: Get list of available fare codes for a specified sailing
  3. CategoryAvail: Get list of categories for the specified sailing and fare
  4. CabinAvail: Get list of cabins for the specified sailing, fare and category
  5. CabinHold: Hold the specified cabin for some time, take it out of available inventory
  6. Book: Store the booking, get it's reference number in response
  7. Payment: Submit a payment for the specified booking (reference number)

Optional Steps

There are also steps that are optional and are usually called somewhere between steps 2 and 6:

  1. ItineraryDesc: Get itinerary for the sailing
  2. PriceBooking: Get detailed invoice for the booking, e.g. for review before Book/Payment
  3. CabinUnhold: After Hold, if another cabin was selected or some other user action that would make us want to free the previously locked cabin

After Booking

After booking has been stored it can be retrieved with ReadRQ message. It can be changed with Book message (with ReservationID in the request).

Status and Waitlisted Availability

In availability calls GTY/OK inventory will be returned by default. Any other availability options can be regulated by adding SearchQualifiers/Status/@Status to OTA_CruiseSailAvailRQ and other availability requests.

Example: Multiple Status Types

The following request will return all sails which have categories with availability WTL, or GTY, or OK:

<OTA_CruiseSailAvailRQ>
   ...
   <CruiseLinePrefs>
        <CruiseLinePref>
           <SearchQualifiers>
              <Status Status="46"/> 
              <Status Status="47"/>
              <Status Status="36"/>
           </SearchQualifiers>
        </CruiseLinePref>
     </CruiseLinePrefs>
</OTA_CruiseSailAvailRQ>

Example: Waitlist Only

This example will return only sails which have WTL categories:

<OTA_CruiseSailAvailRQ>
   ...
   <CruiseLinePrefs>
        <CruiseLinePref>
           <SearchQualifiers>
              <Status Status="46"/> 
           </SearchQualifiers>
        </CruiseLinePref>
     </CruiseLinePrefs>
</OTA_CruiseSailAvailRQ>

The response will show the availability status in the Status attribute. Possible Status values can be found in OTA Code Lists.

Shopping in Foreign Currency

If your account supports multiple currencies, you can request pricing in different currencies using the POS/Source/ISOCurrency attribute in shopping request messages.

Example:

<POS>
  <Source ISOCurrency="EUR">
    [...]
  </Source>
</POS>

Check your integration documentation for supported currencies.

Allotment Agreements

Here is the SwOTA allotment agreement functionality:

  1. Pass Allotment Agreement ID in most calls as <RequestorID Type="39" ID="1000" /> inside the POS/Source (this is NOT instead of the Agency/Agent information, but in addition to it, in an additional Source element)
  2. Pass Allotment Agreement Name as <RequestorID Type="39" Name="MYCRUISES ALLOTMENT" />
  3. Pass Allotment Agreement ID as <ReservationID Type="39" ID="1000" /> in most Availability calls (usually located inside SearchQualifiers element, see XSD specification for details on each call)
  4. Pass Allotment Agreement Name as <ReservationID Type="39" Name="MYCRUISES ALLOTMENT" />
  5. When Allotment Agreement is specified in any of the above ways the SwOTA will process the availability or booking request using that allotment agreement
  6. Booking made under an Allotment Agreement will show it's Agreement ID and Name in OTA_ResRetrieveRS and OTA_CruisePNR_UpdateNotifRQ messages with an additional ReservationID element with Type="39"