Hawaii - Minor (22.7)

Release Summary


Kaptio is proud to announce this minor release for Hawaii. This release is intended to address issues with previous releases.

See New Features, Minor Changes and Bug Fixes for more information.


Sandbox Availability Date


2025-11-5


Release Type



Deployment Guide


See this page for the Hawaii Deployment guide.


New Features


Feature: Cabin Levels


In this release we now support the ability to manage inclusions and optionals per cabin type within a package. This enhancement ensures that specific services are automatically included in an itinerary based on the selected cabin type, improving accuracy and reducing manual setup by Sales users. For example:

  • When a Sales user books a Grand Suite, the system automatically includes a private transfer service.

  • When a Sales user books a Grand Suite, the system automatically includes a specific room from the hotel.

New Fields/Implementation

New Package Object Field: Service Level Mode

A new picklist field has been added to the Package object to provide the control:

New Field: ServiceLevelMode__c

  • Type: Picklist

  • Values:

  • Standard - Default mode with no service level restrictions

  • Service Levels - Traditional service level functionality enabled

  • Cabin Levels - Cabin-specific level management enabled

    **NOTE:** When ‘Standard’ or ‘Service Levels’ are selected in Service Level mode, Package Search, Booking Wizard, and Add to Itinerary features will function according to existing behavior.
  • Default: Standard

  • Required: Yes

Package setup UI Implementation

  • The Service Level Mode field is included in the Package creation form with the default value ‘Standard’

  • Within the Edit Package modal, the Service Level Mode field is positioned above the Service Levels field:

image 1

Conditional Field Behavior

When Service Level Mode = ‘Standard’:

  • The Service Level field is disabled on the Component Option (greyed out).

image 2
  • Users cannot assign service levels

  • A clear visual indicator shows that service levels are not applicable in this mode.

When Service Level Mode = ‘Service Levels’ or ‘Cabin Levels’:

  • The Service Level field is enabled, to support the existing Service Levels functionality and to allow Services/Components to be linked for the Cabin Levels feature.

  • Users can add one or more service levels to the Package, and select and assign one Service level to the price category on the Component Option.

Migration Script for Existing Packages

A script has been provided to automatically set the Service Level Mode for existing package records based on their current service level assignments, ensuring data consistency and continuity. This is found under Kaptio Settings:

  • Kaptio Settings > Post Upgrade > Migrate Package__c.ServiceLevelMode__c values based on the current ServiceLevel__c assignments

image 3

Evaluation Rules

  • If no service levels are assigned → the Service Level Mode field is set to 'Standard'

  • If one or more service levels are assigned → the Service Level Mode field is set to 'Service Levels'

  • The script will not automatically set to 'Cabin Levels', however if the Package is already set to 'Cabin Levels' it will preserve this existing configuration.

  • Only updates Packages where Service Level Mode is null/empty

Package Service Level Mode Permissions

This below outlines the necessary permissions required for the Cabin Level feature to function correctly.

Apex Class Access

The following Apex classes must be enabled for the user’s profile or permission set to allow the Cabin Level feature to be setup.

  • PackageEditorController

  • PostUpgradeStepsController

Package (Package__c)

  • Object PermissionsReadEdit

Field API Name Read Access Edit Access Notes

ServiceLevelMode__c

Controls service level behavior for the package.

Package Service Level Assignment (PackageServiceLevelAssignment__c)

  • Object PermissionsRead

  • Description: Junction object linking packages to service levels, used for migration logic.

Field API Name Read Access Edit Access Notes

ServiceLevel__c

Link to service level for migration logic.

Page Layout Updates

The following Package page layout has been updated to include the new ServiceLevelMode__c field:

  • Package Layout (Package__c-Package Layout)

Users need Edit access to this layout to see and modify the Service Level Mode field.

How it works

When ‘Cabin Levels’ is selected in Service Level mode, it serves as a signal to Package Search, indicating that, on the surface, it behaves like a standard Cruise/Rail package with a primary Cruise/Rail component.

Behind the scenes, the ‘Cabin Levels’ mode instructs the KTAPI ServiceDefaulting feature to:

  • Refine subsequent component selections based on the chosen Cruise/Rail component.

NOTES:

  • The package must include a primary Cruise/Rail component.

  • Currently, this functionality supports only required/mandatory package components. Optional components e.g. Pre/Post are out of scope.

Scenario 1: Booking a specific Cabin Type with an included Private Transfer

This scenario demonstrates how to set up and book a Grand Suite cabin type, with the system automatically adding a private transfer service specific to that cabin type.

  1. Enable Cabin Levels within the Service Level Mode field on the Package:

image 4
  1. Set up the Service Levels on the Package Component Option for the main Cruise/Rail component, and ensure they correspond to the correct Price Category/Cabin Types.

image 5
  1. Set up the Service Levels on the Package Component Option for the dependent component e.g. a Private Transfer. ..n this example, the Inclusive Private departure Transfer is linked to the ‘Grand Suite’ Service level.

image 6
  1. On Package Search, in the Availability tab, select and expand the Package:

image 7

NOTES:

  • Service levels will not display under the Service Level column for the Cabin Levels Service Level mode.

  • The day-by-day summary does not reflect the chosen cabin-type / Cabin Level per room. It will reflect the itinerary based on the first cabin-type from the list.

    1. Select the ‘Grand Suite’ Cabin type, and Click ‘Add Options’ to proceed to the Booking Wizard

    2. Then click Create Quote or Create Booking to generate the itinerary for the package. The dependent component (Private Transfer) will automatically be added to the itinerary.

image 8
image 9

Scenario 2: Booking a specific Cabin Type with a specific price category for a Hotel

This scenario demonstrates how to set up and book a Grand Suite cabin type, with the system automatically adding a specific price category from the hotel component.

  1. Enable Cabin Levels within the Service Level Mode field on the Package.

  2. Set up the Service Levels on the Package Component Option for the main Cruise/Rail component, and ensure they correspond to the correct Price Category/Cabin Types.

image 10
  1. Set up the Service Levels on the Package Component Option for the dependent component e.g. a hotel

    1. In this example, the River View Park Suite Price Category is linked to the ‘Grand Suite’ Service level.

image 11

NOTE: When a Package Component contains multiple Services, the current Service Defaulting feature will attempt to assign all rooms to the same Service. Therefore, it is recommended not to assign different hotels or transfers to different cabin/service levels within the same Package Component.

  1. On Package Search, in the Availability tab, select and expand the Package.

NOTES:

  • Service levels will not display under the Service Level column for the Cabin Levels Service Level mode.

  • The day-by-day summary does not reflect the chosen cabin-type / Cabin Level per room. It will reflect the itinerary based on the first cabin-type from the list.

  1. Select the ‘Grand Suite’ Cabin type, and Click ‘Add Options’ to proceed to the Booking Wizard.

  2. Then click Create Quote or Create Booking to generate the itinerary for the package. The dependent component price category will automatically be added to the itinerary.

image 12
image 13

Known Issues/Improvements

  • KT-13742: Improve UX in Package modal for Service Level setting

  • KT-13710: When editing Service Level Mode field in a package the value ‘None’ is available for selection.

  • ST-2112: When creating an itinerary from a package with Service Level Mode = Standard and Booking Wizard Unit Number Selection = Not-Mandatory/Hidden, selecting mixed Cabin Types causes all rooms to default to the Historic Twin Cabin Type with the free transfer applied to both.

  • ST-2147: Booking Overview is unable to display the second component/service on an itinerary containing two Cruise Components.

  • ST-2155: When creating an itinerary from a package with Service Level Mode = Cabin Levels and Booking Wizard Unit Number Selection = Not-Mandatory/Hidden, the included transfer for a Grand Suite cabin is added, but the passenger is not allocated to the service, causing a max room occupancy error during manual allocation.

Minor Changes

Feature: Booking Wizard


ST-1998 Enable swapping in modify mode

The Booking Wizard JSON Configuration String now supports additional properties that allow overriding the default restriction on Passenger Swaps in Modify Mode.

image 14

When the feature is disabled, the “swap” icon in Booking Wizard is disabled for all passengers in Modify mode.

If the setting "allowPaxSwapInModify" is enabled, passenger swaps will be enabled in Booking Wizard when Modifying.

image 15

Swapping functionality in Modify Mode now works as expected i.e.:

  • When swapping between two rooms, new Reservation Numbers are assigned only to passengers in the rooms involved in the swap; all other passengers remain unchanged.

  • Payments made by swapped passengers are correctly transferred between rooms along with the respective passengers.

  • Transfer Mode continues to block swapping (linked passengers cannot be unlinked).

  • Swapping in Change Occupancy continues to function as expected.

  • If Adjustments are applied, they move between rooms with the corresponding passengers.

NOTE: When a room involved in a swap has a promotion applied, the promotional effects (per person or per room) are expected to correctly apply to the swapped passengers. However, since promotions in Modify Mode are not yet fully implemented, this functionality will need to be tested in a future phase.


Feature: Promotions


ST-1212 Child discount - Populate fields on PIUA defined in datamodel changes and received from FE

Extended the booking system to fully support passenger-level promotion applications alongside existing room-level promotions


ST-2009 Show Passenger Level (Child discount) promo in Booking Overview

Enhanced Booking Overview to correctly display promotions applied at the Passenger Unit Assignment level, including their associated price line effects. Promotions such as Child Discount, when eligible and shown in the Booking Wizard price summary, now appear under the corresponding Tour row in Booking Overview with the expected indented ★ indicator and accurate discount values.


ST-2060 Occupancy handling in booking wizard requests

We now pass the actual room occupancy set in Booking Wizard rather than from Package Search


Bug Fixes


Feature: Booking Wizard


ST-924 Occupancy shown as Unknown on Allocations Tab

When creating an itinerary via Package Search using a household account, the occupancy and passenger assignment details for Protection Plan and Bedding components are not displayed as expected. On the Allocations tab, these components show the occupant type as "Unknown" instead of "Adult" or "Child". Additionally, on the Costings tab, clicking the occupancy icon next to these components fails to display the associated passenger name in the Passenger column. This issue affects clarity and traceability of optional component allocations.


ST-1307 KAPI-4069 When a package includes Room Up or hotel choices, the Modify Package flow displays the package price from different service level

Fixed an issue that when in Modify mode, the pricing summary shows the correct price that corresponds to the applicable service level (and price category).


ST-1472 Promotion tiles spill over Booking Wizard

Fixed a layout issue in Booking Wizard where multiple promotion tiles (auto-applied or manually entered promo codes) would overflow or spill outside the visible area in the Pre/Post Stay tab. The promotion section now dynamically adjusts to display multiple promotions correctly without layout distortion.


ST-1479 KAPI-4261 Modify package - Unable to remove pre and post if it is sold out

Fixed an issue in the Modify Package flow where users were unable to remove or adjust Pre- or Post-Stay services when those services were marked as Sold Out (SO). Previously, once a Pre or Post stay was sold out, the related options became disabled, preventing users from reducing the number of nights or removing the stay entirely during modification. With this fix, users can now correctly update or remove Pre/Post-Stay services in the Modify Package flow, even if the service is sold out, ensuring booking adjustments behave as expected.


ST-1731 (Temp Hold) cannot hold available cabins (not offered for selection in Booking Wizard)

Fixed issue where available cabin would not be returned when inventory is low.


ST-1807 Error on fast selecting/deselecting options in Pre/Post stay

Added spinner when users select or unselect Pre Stay or Post Stay options


ST-1976 When two concurrent sessions are opened the Booking Wizard is opened for both after message about not available inventory is visible

Fixed an issue in Booking Wizard where, in concurrent sessions, the wizard would still load after an availability conflict occurred. When two users (or tabs) attempted to book the same cabin simultaneously, the system correctly displayed an error message but proceeded to load the Booking Wizard anyway. The flow has been updated so that the Booking Wizard no longer loads when the selected cabin is already taken, preventing unnecessary errors and maintaining correct booking behaviour.


ST-1943 Multiple errors related to inventory after an expected error in CO/Modify

Fixed an issue in CO/Modify mode where once a handled error was triggered during Pre/Post Stay selection (e.g., choosing an invalid room configuration), the error state could not be cleared and subsequent valid selections continued to display multiple or inconsistent errors. The logic has been updated so that after an error is cleared, users can now correctly select a valid Pre/Post Stay option without further issues.



ST-1267 KAPI-4011 Activity Level is not displayed in package search expanded result

Resolved an issue in Package Search where the Activity Level field was not displayed in the expanded search results for packages (e.g., MO, ITS, RYX). The field now correctly appears when viewing detailed search results, ensuring users can see the activity level information as expected.


ST-2146 Multiple this.refs errors in console loading Package Search Availability.

Added microtask to render this.buildProperites ONLY once the DOM has successfully loaded. This prevents multiple errors showing in the developer console when in Package Search > Availabilities.


Feature: Booking Overview


ST-1856 KAPI-4515 When a package includes RoomUp, the RoomUp service level line item doesn’t appear in both Booking overview and Builder tab

Resolved an issue where creating a booking for MI 2025 – Grad Hotel Lake View (or similar itineraries) failed to generate the expected Room Up Service line item in the Builder tab. Previously, when users selected a Lake View service level, added mandatory components, and proceeded through the booking flow, the itinerary was created without the associated service-level line item. The logic has been updated to ensure that the Room Up Service line item is consistently created as expected for all applicable service levels during booking creation.


Feature: Promotions


ST-1980 GoT Auto-Apply Promotion remains applied after un-assigning all passengers in Booking Wizard

Resolved an issue in Booking Wizard where the GoT Auto-Apply promotion remained attached to a room even after all passengers were removed. Previously, once the promotion was automatically applied upon entry from a qualifying contact, it could not be cleared unless the promotion was re-triggered elsewhere. The system now correctly removes the promotion when no eligible passengers are assigned, ensuring passenger-based promotions behave as expected.


ST-2034 Promotion description is not visible in the Package Search

The promotion popup is now visible in the Package Search.


ST-2045 Promotion Name visible in the Booking Overview instead of the External Name

Fixed an issue in Booking Overview where the Promotion Name was displayed instead of the External Name for applied promotions. The interface now correctly shows the External Name, ensuring consistency with the promotion details visible to users and external systems.


Feature: Inventory


ST-2004 KAPI-4964 After the transfer departure the inventory remains in the reserved count even though the new itinerary is created with active booking status

Fixed an issue in the Itinerary Transfer process where, after transferring an active booking to a new departure date, the associated inventory units were incorrectly left in a Reserved state instead of being moved to Booked. With this fix, when an itinerary is successfully transferred, the inventory for the new departure is now properly deducted from Available units and reflected as Booked units, ensuring accurate inventory tracking across transfers.


Feature: Waitlist


ST-2066 Waitlists: incorrect results returned for Check avail. when Package has Service levels

Fix issue of displaying incorrect result when package has service level