Table of Contents

Dining Support (SwOTA)

Premium Dining

To fully support premium dining in SwOTA "VX Additions" must be turned on (extra fields in availability call: MealDate, PriceInfo added to the public specification, extra field when booking: DateTime, TableSeatingIndicator (true for TABLE, false for SEAT), PartySize, Duration).

Note

All these fields are not in Plain OTA version and require VXAdditions turned on. See Plain OTA vs Versonix OTA for more information.

Availability Response Example

Example availability response for premium dining:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<vx:OTA_CruiseDiningAvailRS TimeStamp="2018-03-16T21:12:40.150" TargetName="SEAWARE@ORADEV" Version="1.999" CorrelationID="709a16b8-e655-41b0-be62-7b6ec5d41fdb" xmlns:vx="http://www.opentravel.org/OTA/2003/05" xmlns:ns4="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://www.versonix.com/ota">
    <vx:Success/>
    <vx:SailingInfo>
        [...]
    </vx:SailingInfo>
    <vx:DiningOptions>
        <vx:DiningOption Sitting="LATE DINNER" SittingStatus="Available">
            <vx:DiningRoom RestaurantName="FANCY" MaxSeatingCapacity="64">
                <vx:SittingDetails>
                    <vx:SittingDetail MealName="LATE DINNER" MealDate="2018-06-06" MealStartTime="22:00:00" MealEndTime="23:30:00">
                        <vx:PriceInfo CurrencyCode="USD" Amount="200"/>
                    </vx:SittingDetail>
                    <vx:SittingDetail MealName="LATE DINNER" MealDate="2018-06-07" MealStartTime="22:00:00" MealEndTime="23:30:00">
                        <vx:PriceInfo CurrencyCode="USD" Amount="200"/>
                    </vx:SittingDetail>
                    <vx:SittingDetail MealName="LATE DINNER" MealDate="2018-06-08" MealStartTime="22:00:00" MealEndTime="23:30:00">
                        <vx:PriceInfo CurrencyCode="USD" Amount="200"/>
                    </vx:SittingDetail>
                    <vx:SittingDetail MealName="LATE DINNER" MealDate="2018-06-09" MealStartTime="22:00:00" MealEndTime="23:30:00">
                        <vx:PriceInfo CurrencyCode="USD" Amount="200"/>
                    </vx:SittingDetail>
                    <vx:SittingDetail MealName="LATE DINNER" MealDate="2018-06-10" MealStartTime="22:00:00" MealEndTime="23:30:00">
                        <vx:PriceInfo CurrencyCode="USD" Amount="200"/>
                    </vx:SittingDetail>
                </vx:SittingDetails>
            </vx:DiningRoom>
        </vx:DiningOption>
    </vx:DiningOptions>
</vx:OTA_CruiseDiningAvailRS>

Booking and Retrieving Dining

When selecting or retrieving a dining on a reservation:

<vx:OTA_ResRetrieveRS [...]>
    <vx:Success/>
    <vx:ReservationsList>
        <vx:CruiseReservation>
            <vx:SailingInfo>
                <vx:SelectedSailing VoyageID="TC1806065N" Start="2018-06-06" Duration="P5D" End="2018-06-11">
                    [...]
                </vx:SelectedSailing>
                [...]
            </vx:SailingInfo>
            <vx:ReservationInfo>
                <vx:ReservationID ID="527" [...]>
                   [...]
                </vx:ReservationID>
                <vx:GuestDetails>
                    <vx:GuestDetail>
                        <vx:ContactInfo GuestRefNumber="1" LoyaltyMembershipID="315" [...]>
                            <vx:PersonName>
                                <vx:GivenName>John</vx:GivenName>
                                <vx:MiddleName>M</vx:MiddleName>
                                <vx:Surname>Smith</vx:Surname>
                            </vx:PersonName>
                            [...]
                        </vx:ContactInfo>
                        <vx:SelectedDining Sitting="LATE DINNER" RPH="100052"/>
                    </vx:GuestDetail>
                    <vx:GuestDetail>
                        <vx:ContactInfo GuestRefNumber="2" LoyaltyMembershipID="316" [...]>
                            <vx:PersonName>
                                <vx:GivenName>Banana</vx:GivenName>
                                <vx:MiddleName>M</vx:MiddleName>
                                <vx:Surname>Manna</vx:Surname>
                            </vx:PersonName>
                            [...]
                        </vx:ContactInfo>
                        <vx:SelectedDining DiningRoom="FANCY" Sitting="LATE DINNER" DateTime="2018-06-08T22:00:00" Duration="PT1H30M" PartySize="6" TableSeatingIndicator="false" RPH="100052"/>
                    </vx:GuestDetail>
                </vx:GuestDetails>
            </vx:ReservationInfo>
            [...]
        </vx:CruiseReservation>
    </vx:ReservationsList>
</vx:OTA_ResRetrieveRS>

SelectedDining Element

SelectedDining element describes the booked dining. In the input message (OTA_CruiseBookRQ) only the responsible guest has to have whole dining description, other guests that are on the same Dining Request can just reference it using the RPH attribute.

Distinguishing Premium vs Standard Dining

Note

Premium dining is distinguished from standard dining (sitting) by the DiningRoom and RPH attribute. If there is one in the booking request then the SelectedDining element will be interpreted as premium dining, otherwise as standard one.