Fiji - Minor 2 (20.3)

Release Summary


This Minor Fiji release intends to address issues from earlier Fiji releases and make general improvements.

See the Minor Changes and Bug Fixes sections for more details on the specific changes.


Release Type



Sandbox Availability Date


2024-10-14


Known Issues


  • KT-11305; Service levels are not being respected in Booking Wizard, all services configured on the package are shown in options/pre/post stay tabs regardless of service level - Fix Scheduled for End of cycle release (20.3).


New MetaData


For a full overview of new metadata introduced as part of this release, please refer to our Core Data Model Changelog.


"Add to Itinerary" for Booking Wizard


Using Add to Itinerary from Booking Wizard (just in the regular Booking Wizard flow, not Modify mode) is being refactored. Now, when an Itinerary is created, any itinerary item will only have a quantity = 1 regardless of the unit of measure.

Booking Wizard supports the following Units of Measure:

Unit of Measure (UOM)

Action

Room/Apartment/Unit

Create ItineraryItem per room/unit

Person/Adult/Child/Infant

Create ItineraryItem per passenger

Bus (Per Passenger)

Create ItineraryItem per passenger

Bus (Per Unit)

Create one ItineraryItem for the entire group

Known Issues

  • KT-10965; Pre-existing issue. Using Add to Itinerary from Booking Wizard when only 1 pax Option is chosen causes ALL pax for that room to be assigned the option - Fix Scheduled for End of cycle 6 release (20.3).

  • KT-10591; When creating an Itinerary with multiple rooms; if one of the optional components is Car Rental (UOM=Unit), selecting Car Rental for each room will still display “1 Unit” in the Itinerary. No fix scheduled

  • KT-11272; When adding a triple room package to an itinerary; Selecting different optional components for each of the 3 travellers in the room will create duplicate itinerary items for those selected component options - Fix Scheduled for End of cycle release (20.3).

  • KT-11308; When launching package search from an itinerary. Itineraries are being deleted when any error occurs while adding a package to itinerary from BW - Fix Scheduled for End of cycle release (20.3).

  • KT-11259; Incorrect inventory statuses shown when adding a Package to Itinerary from Booking wizard - Fix Scheduled for End of cycle release (20.3).

  • KT-11367; Required accommodation options not added to itinerary when number of rooms >= 2 - Fix Scheduled for End of cycle release (20.3).

  • KT-11318; Required components which have ‘person’ as a unit of measure are not added to itinerary from booking wizard - Fix Scheduled for End of cycle release (20.3).

  • KT-11382; When selecting the same Accommodation Component Option for multiple rooms (from Options/Pre/Post), only 1 room gets passengers allocated in the Allocation tab. - No fix Scheduled .

Data model improvements for Group Tour and Tour Departure objects


New Field on Tour Departure object


  • Itinerary

    • API Name: Itinerary__c

    • Label: Itinerary

    • Field Type: Lookup(Itinerary)

    • Description: Indicates which price model itinerary is applicable for a Tour Departure

    • Not required

New Fields Group Travel Object

  • Channel

    • API Name: Channel__c

    • Field Label: Channel

    • Field Type: lookup(Channel)

    • Not Required

  • Operator Cost Currency Definition

    • API Name: CostCurrencyDefinition__c

    • Field Label: Cost Currency Definition

    • Field Type: Picklist

      • Same as Business Unit, Same as Sales Currency

      • Please create Global value set for this field and values

    • Default value: Same as Sales Currency

    • Help Text: Please select the currency in which tour costs should be aggregated.

    • Description: This field specifies the currency in which the tour operator’s costs are aggregated.

    • Not Required

  • Operator Cost Currency

    • API Name: CostCurrency__c

    • Field Label: Cost Currency

    • Field Type: Text(3)

    • Description: Stores the Currency Code based on selection in Operator Cost Currency Definition field.

    • Not Required

  • Package Code

    • Field Label: Package Code

    • Field Type: Text(25)

    • Help Text: Enter a combination of letters and numbers to make up a code for your package/tour.

    • Not Required

  • Status:

    • Field Label: Status

    • Field Type: Picklist

      • Values: Planning, Contracting, Pre Launch, For Sale, Complete, Cancelled

      • Please create Global value set for this field and values

    • Default Value: Planning

    • Not Required

  • Activity Level:

    • Field Label: Activity Level

    • Field Type: Picklist

      • If possible we’d like to update the current Activity Level field on the Package to use a Global value set for the picklist fields and reuse that same global value set for this field.

      • Values; Easy, Medium, Advanced

    • Help Text: Please select the level of activity associated with this tour. This will help travellers understand the physical demands of the tour.

    • Not Required

  • Pace:

    • Field Label: Pace

    • Field Type: Picklist

      • If possible we’d like to update the current Pace field on the Package to use a Global value set for the picklist fields and reuse that same global value set for this field. **/ Values; Easy, Medium, Advanced

    • Help Text: Choose the pace that best describes what is included in the package. This will provide travellers with an idea of the tour’s tempo and daily schedule.

    • Not Required

  • Language

    • Field Label: Language

    • Field Type: Lookup(Language)

    • Help Text: Choose the language which this tour will be operated in.

    • Not Required


Price Model - Data Model


In this release we are introducing the data model behind our Price Model feature.

data model 1

Itinerary Configuration Group


This object groups multiple Itinerary Configurations.

In the first iteration of the feature, we will always begin with one Itinerary Configuration Group. However, in later iterations there may be more option configurations.

  • Object label: Itinerary Configuration Group

  • API Name: ItineraryConfigurationGroup__c

  • Fields required:

    • Configuration Code

      • API Name: ConfigurationCode__c

      • Label: Configuration Code

      • Field Type: Text

      • Description: Alphabetic letters will be used as identifiers for configuration groups

      • Read Only

  • Itinerary__c

    • API Name: Itinerary__c

    • Label: Itinerary

    • Field Type: MasterDetail(Itinerary)

    • Description: Indicates which Itinerary the Configuration Group belongs to.

    • Required


Itinerary Configuration


These are customizable options defined by tour operators for each tour package. The configurations refer to the different options available to a traveller when booking a package, and these in turn influence the pricing. These configurations can include choices such as single room options for solo travellers, twin share arrangements, room upgrades, and additional excursions or activities (later iterations). By enabling these customizations, operators can dynamically adjust prices based on the selected options, providing a flexible and personalized booking experience that caters to varying preferences and budgets.

  • Object Label: Itinerary Configuration

  • API Name: ItineraryConfiguration__c

  • Fields Required:

    • Occupancy Type:

      • API Name: OccupancyType__c

      • Label: Occupancy Type

      • Field Type: Number (2,0)

      • Required

    • Configuration Group

      • API Name: ConfigurationGroup__c

      • Label: Configuration Group

      • Field Type: Master Detail(Configuration Group)

      • Description: Indicates which Configuration Group the Configuration belongs to.

      • Required

    • Sort

      • API Name: Sort__c

      • Label: Sort

      • Field Type: Number (2,0)


Itinerary Configuration to Itinerary Item Assignment


  • API Name: ItinConfigurationItinItemAssignment__c

  • Label: Configuration to Itinerary Item Assignment

  • Fields required:

    • Itinerary Configuration

      • API Name: ItineraryConfiguration__c

      • Label: Itinerary Configuration

      • Field Type: Master Detail(Itinerary Configuration)

      • Description: Used to assign an Itinerary Configuration

      • Required

    • Itinerary Item

      • API Name: Itinerary Item

      • Label: Itinerary Item

      • Field Type: MasterDetail(Itinerary Item)

      • Description: Used to assign an Itinerary Item

      • Required


New fields on Itinerary object:


  • Group Sizes

    • API Name: GroupSizes__c

    • Label: Group Sizes

    • Field Type: Text Area Long

    • Description: Captures the group sizes defined for price model itineraries in a comma separated list.

    • Not required.

    • The idea behind this field is that we want to be able to store an array of numbers inside, e.g. something like:1,2,3,4,5,6,7,8,9,10,15,20.

  • Itinerary Type

    • API Name: ItineraryType__c

    • Label: Itinerary Type

    • Field Type: Global Picklist

      • Values: Standard, Price Model, Operational

    • Description: Indicates what type the itinerary is. Whether it is a standard sales itinerary, Price Model for groups or an Operational only itinerary.

    • Not required. Default to Standard.


New field on Itinerary Item object


  • All Configurations

    • API Name: AllConfigurations__c

    • Label: All Configurations

    • Field Type: Checkbox

    • Description: Identifies itinerary item which are applicable for all configurations. Only used for Price Model itineraries.

    • Default value: Unchecked/False

    • Not required

  • Group Size From

    • API Name: GroupSizeFrom__c

    • Label: Group Size From

    • Field Type: Number(4,0)

    • Description: Used for Price Model itineraries to capture the group size for which the itinerary is applicable for.

    • Not required

  • Group Size To

    • API Name: GroupSizeTo__c

    • Label: Group Size To

    • Field Type: Number(4,0)

    • Description: Used for Price Model itineraries to capture the group size for which the itinerary is applicable for.

    • Not required

  • Quantity Behaviour

    • API Name: QuantityBehaviour__c

    • Label: Quantity Behaviour

    • Field Type: Picklist

    • Values: Standard, Auto

    • Default value: Standard

    • Description: Used for Price Model itineraries to determine the behaviour of the quantity.

    • Not required


Price Model Output


Price Model Output records will store costs and prices for a dedicated date, group size and configuration.

  • Object Name: Price Model Output

  • Fields:

    1. Name (Standard SF name field)

      • Automatically generated name field combining the date, configuration, and group size.

    2. Group Size

      • API Name: GroupSize__c

      • Label: Group Size

      • Field Type: Number (4,0)

      • Description: The number of participants which the Price Model Output record applies. Set by the system.

      • Required

    3. Operator Cost Per Person

      • API Name: OperatorCostPerPerson__c

      • Label: Operator Cost Per Person

      • Field Type: Number (16,2)

      • Description: The per person cost in the operator cost currency for this Price Model output record.

      • Help Text: This field shows the per person cost in the operator cost currency.

      • Required

    4. Operator Total Cost

      • API Name: OperatorTotalCost__c

      • Label: Operator Total Cost

      • Field Type: Number (16,2)

      • Description: The total cost for the group size, configuration and date in question in operator cost currency.

      • Help Text: This is the total cost in the operator cost currency.

      • Required

    5. Cost Price Per Person

      • APIName: CostPricePerPerson__c

      • Label: Cost Price Per Person

      • Field Type: Currency (16,2)

      • Description: The per person cost in the sales currency for this Price Model Output record.

      • Help Text: This field shows the per person cost in the sales currency.

      • Required

    6. Total Cost

      • API Name: TotalCost__c

      • Label: Total Cost

      • Field Type: Currency (16,2)

      • Description: The total cost for the group size, configuration and date in question in the sales currency.

      • Help Text: This is the total cost in the sales currency.

      • Required

    7. Operator Cost Currency

      • API Name: OperatorCostCurrency__c

      • Label: Operator Cost Currency

      • Field Type: Text (3)

      • Description: The ISO currency code in which the operator’s costs are aggregated.

      • Required

    8. Price Per Person

      • API Name: PricePerPerson__c

      • Label: Price Per Person

      • Field Type: Currency (16,2)

      • Description: The per person sell price for the group size, configuration and date in question.

      • Required

    9. Total Price

      • API Name: TotalPrice__c

      • Label: Total Price

      • Field Type: Currency (16,2)

      • Description: The total price for the group size, configuration and date in question.

      • Required

    10. Profit Per Person

      • API Name: ProfitPerPerson__c

      • Label: Profit Per Person

      • Field Type: Currency (16,2)

      • Description: The profit margin per person for the configuration, group size and date in question, after costs are deducted.

      • Help Text: This field calculates the profit earned per person after subtracting the operator’s costs from the selling price for this group size, configuration and date.

      • Required

    11. Tax Per Person

      • API Name: TaxPerPerson__c

      • Label: Tax Per Person

      • Field Type: Currency(16, 2)

      • Description: Sum of tax applies to the price per person.

      • Required

    12. Cost Tax Per Person

      • API Name: CostTaxPerPerson__c

      • Label: Cost Tax Per Person

      • Field Type: Currency(16, 2)

      • Description: Sum of tax applies to the cost per person in sales currency.

      • Required

    13. Operator Cost Tax Per Person

      • API Name: OperatorCostTaxPerPerson__c

      • Label: Operator Cost Tax Per Person

      • Field Type: Number(16, 2)

      • Description: Sum of tax applies to the cost per person in operator cost currency.

      • Required

    14. Total Tax

      • API Name: TotalTax__c

      • Label: Total Tax

      • Field Type: Currency(16, 2)

      • Description: Sum of tax applies to the total price.

      • Required

    15. Cost Tax Total

      • API Name: CostTaxTotal__c

      • Label: Cost Tax Total

      • Field Type: Currency(16, 2)

      • Description: Sum of tax applies to the total cost in sales currency.

      • Required

    16. Operator Cost Tax Total

      • API Name: OperatorCostTaxTotal__c

      • Label: Operator Cost Tax Total

      • Field Type: Number(16, 2)

      • Description: Sum of tax applies to the total cost in operator cost currency.

      • Required

    17. Tour Departure

      • API Name: TourDeparture__c

      • Label: Tour Departure

      • Field Type: Lookup (Tour Departure)

      • Description: Indicates which departure date the record applies to.

      • Required

    18. Itinerary Configuration

      • API Name: Itinerary Configuration

      • Label: Itinerary Configuration

      • Field Type: Lookup(Itinerary Configuration)

      • Description: Indicates which configuration the record applies to.

      • Required


Minor Changes


Feature: Supplier Agreement


Lookup on Supplier Agreement (KT-10944)

We have added a new Lookup Field on Supplier Agreement.


Feature: Payments


Decimal format in Payments may cause inconsistent UI in some European locales (KT-10779)

Decimals are now formatted accordingly with thousands separators based on Locale configuration of the current user in Payments tab.


Feature: Amendments


Rename Flight Legs to Flight Segments in amendment progress bar (KT-7603)

Flight legs have been renamed to Flight Segments in the amendment progress bar


Feature: Services


Replace Destination Region on Linked Services with Location (KT-7631)

Linked services tab will now will display location instead of destination region.


Support Mixed inventory status in the filtering scheme (KT-8311)

Mixed status is now supported in the filtering scheme for allotments.

Related Support Ticket: KHELP-9958


Feature: Itinerary Builder


Populate Trip’s Lead Passenger First Name and Lead Passenger Last Name in trigger (KT-9683)

The lead passenger’s first name and last name are auto populated when created from a Trip.

Relate Support Ticket: KHELP-9573


Feature: PNR


Save External PNR only after confirming rail booking (KT-10710)

External PNR’s are only saved once Rail Booking is confirmed.

Related Support Ticket: KHELP-10987


Bug Fixes

Feature: Passenger Grid


Passenger Grid renders 'Disabled' for all Multi-Select Picklist fields (KT-10905 & KAPI-1951)

We fixed a UI issue in the Passenger grid.


New Guest creation flow not linking contact to the Passenger record when initiated from Passenger Grid (KT-10907 & KAPI-2124)

We fixed an issue where contact would not link to the Passenger in the Passenger grid. Now, the Contact will link as expected.


Support for other data types in passenger grid JSON (KT-10906 & KAPI-2122)

We fixed an issue where the Passenger Grid would not support other data types when configured for custom rendering. Now, the Passenger Grid supports these types.


Feature: Booking Wizard


Itinerary - System creates itinerary without Itinerary items [Intermittent Issue] (KT-11026 & KAPI-2133)

The Itinerary record is now deleted if created during booking wizard when an error occurs.


(System.QueryException: Variable does not exist: itineraryIdSet) Error displayed While creating itinerary from booking wizard (KT-11245 & KAPI-2381)

We fixed an issue with an incorrect variable binding in a Selector when using package search.


Complete Household name is not getting displayed at Passenger selection page (KT-10689 & KAPI-1837)

Household name should now be shown on the passenger selection screen in Booking Wizard.


Booking Wizard: Cabin Category filter pricing incorrectly (KT-10809)

We have fixed an issue with pricing in Booking wizard when selecting cabins.


Cabin Category Filter in Booking Wizard Doesn’t Load Correctly if Opened to Quickly (KT-10895)

Cabin category filter now works as intended in Booking Wizard


Feature: Bookings


A booking with 'Confirmation Status'='Unconfirmed Amendment' should get a 'Pending Amendment' status after a failed confirmation attempt (KT-7380)

A booking with 'Confirmation Status'='Unconfirmed Amendment' will now get a 'Pending Amendment' status after a timed out confirmation attempt

Related Support Ticket: KHELP-9801


Service Cabins allowing NumberOfActivePassengers greater than MaxCabinOccupancy (KT-10919 & KAPI-2074)

We fixed an issue where Service Cabins would allow passengers greater than the Max Cabin Occupancy. Now, passengers can only be added up to the Occupancy listed.


Cancel confirmation actions look enabled when they shouldn’t (KT-10384)

Confirmation action options should now be greyed out correctly when disabled.

Related Support Ticket: KHELP-10855


Feature: Package Departure


Cache Issue - Package Departure note from one departure date is displayed in another departure when we switch between departure dates (KT-10682 & KAPI-1824)

Package departure notes should now always show under the correct package departure date.


Observing discrepancies in GLE package - Package search is showing NA for Single room even though inventory is present. (KT-10684 & KAPI-1790)

We fixed a javascript error in the booking wizard that caused unintended behaviours.


Feature: Supplier Agreement


Issues with new 'Channels' field on Supplier Agreement object (KT-10730)

We changed the behaviour of a drop down on the Supplier Agreement Page


Default value for new 'Payment Method' field on Supplier Payment Rule object (KT-10731)

Payment method will now default to Bank Transfer on the Supplier Payment rule.


Feature: Itinerary Builder


Creating an Itinerary Group and deleting them prevents from being able to add all passengers to Itinerary Group (KT-10827 & KAPI-1919)

We fixed an issue with Itinerary groups that prevented passengers from being added.


Error when adding a package to an itinerary (KT-10934)

We have addressed issues with adding a package to the Itinerary.


[Regression] Manual Rail - Departure / Arrival time should be in military time. (KT-11200)

Formatting of time has been improved for Manual rail models in Itinerary builder.


'null input to JSON parser'-error thrown when creating itinerary from Package Search (KT-11278)

We fixed a JSON error that happened when adding a package from package search into Itinerary builder.


Cancel button on Payment Schedules does nothing (old payments UI) (KT-8740)

Cancel button now works on payment schedules page for Old Payments.

Related Support Ticket: KHELP-10198


Qty on Itinerary Item updates when updating pick up/drop off services (KT-9555)

The quantity on an Itinerary Line will no longer update to the number of passengers when changing the linked service.

Related Support Ticket: KHELP-10614


Incorrect currency on Passenger Itinerary Unit Assignments (KT-10988)

Currency on the passenger assignment records will now always match the Itinerary.

Related Support Ticket: KHELP-11125


Feature: Package Editor


Package Editor - Day Locations are not showing in the expected order (KT-11024)

Day locations are now show in the correct order in Package Editor


Mass Delete Tour Departures throws an error when run from the package (KT-11130)

2 Labels were made unprotected so they could be referenced by flows.


Incorrect validation of start/end days when creating new package component (KT-10336)

Start and End days are now validated correctly when creating package components.


Package Editor: supplier isn’t auto-selected for new component options when Prepackaged by Single Supplier (KT-10724)

Supplier is auto selected when creating new Package component options

Related Support Ticket: KHELP-10998


Feature: PNR


Missing whitespace trimming for PNR input (KT-8029)

PNR Imports will now trim trailing white space from the fields

Related Support Ticket: KHELP-9839


Error when refreshing PNR if itinerary items have different price categories (KT-11249)

We have fixed an error when refreshing a PNR with price categories.

Related Support Ticket: KHELP-11009


Feature: Location


Incorrect sub-tab behavior when editing a note from a location record (KT-9062)

We adjusted tab behavior when editing a note in a location record when salesforce console is active.

Related Support Ticket: KHELP-10198



"No Pick Up needed" must not be offered when adding activity/transfer to basket (KT-10412)

No Pickup needed option has been removed from Service search bookings under some scenarios.

Related Support Ticket: KHELP-10890


Feature: Content Wizard


Unhandled JS error when adding custom line to destination placeholder (KT-11239)

We have added additional checks for resolving an error that occurs when adding Custom lines to destination placeholders.