Booking Wizard Options & Extras Configuration Guide
Complete User Process & Admin Configuration Documentation
This guide provides step-by-step instructions for configuring optional services and extras in Kaptio’s Booking Wizard. Learn how to offer package-level options like bedding preferences, meal upgrades, equipment rentals, and other optional inclusions that travelers can select during the booking process.
What Are Booking Wizard Options?
Options are selectable services offered as part of a package that travelers can choose during the booking flow. These appear in the Options tab of the Booking Wizard, allowing guests to customize their experience with additional services, upgrades, or preferences.
Key Capabilities
-
Options Tab: Dedicated step in Booking Wizard for selecting optional services
-
Per-Person or Per-Room: Options can be charged per person or per room
-
Zero-Priced Options: Support for preference selections like bedding type at no additional cost
-
Inventory Management: Track availability for limited-inventory options
-
Protection Plans: Separate tab for travel insurance and protection products
-
Pre/Post Stay: Extensions for accommodations before or after the main package
Common Use Cases
| Use Case | Example | Pricing |
|---|---|---|
| Bedding Preference | King bed vs. two twins | Zero-priced (preference only) |
| Meal Upgrades | Standard vs. gourmet dinner | Priced upgrade |
| Equipment Rental | Bicycle, kayak, or hiking gear | Per-person or per-item |
| Room Upgrades | Standard to deluxe cabin | Per-room pricing |
| Activity Add-On | Optional guided excursion | Per-person pricing |
| Dietary Requirements | Vegetarian, gluten-free, etc. | Zero-priced (preference) |
IMPORTANT: Add-Ons Are NOT Supported in Booking Wizard
Kaptio has a concept of “Add-Ons” which are standalone sellable items in the ecommerce context. Add-Ons are NOT the same as Booking Wizard Options and are not supported in the Booking Wizard flow. To sell options and extras at the package level, you must configure them as Services with Price Categories added as Package Components.
Understanding the Difference
| Feature | Add-Ons | Package Options |
|---|---|---|
| Definition | Standalone purchasable items (B2C/ecommerce) | Services configured as package components |
| Where Offered | Website shopping cart, standalone purchases | Booking Wizard Options tab during package booking |
| Linked to Package | No - independent of packages | Yes - tied to specific package departures |
| Inventory Tracking | Separate inventory management | Uses package component inventory/allotments |
| Booking Wizard Support | ❌ Not supported | ✅ Fully supported |
The Correct Approach: Package Options Architecture
┌─────────────────────────────────────────────────────────────────────────┐
│ PACKAGE │
│ (e.g., "Canadian Rockies Explorer - 7 Days") │
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ Package Components │ │
│ │ │ │
│ │ ┌──────────────────────┐ ┌──────────────────────┐ │ │
│ │ │ INCLUDED SERVICE │ │ OPTIONAL SERVICE │ │ │
│ │ │ (Main Tour) │ │ (Bedding Type) │ │ │
│ │ │ │ │ │ │ │
│ │ │ Selection: Required │ │ Selection: Optional │ │ │
│ │ │ BW Tab: None │ │ BW Tab: Options ✓ │ │ │
│ │ └──────────────────────┘ └──────────────────────┘ │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌──────────────────────┐ │ │
│ │ │ PRICE CATEGORIES │ │ │
│ │ │ • King Bed ($0) │ │ │
│ │ │ • Two Twins ($0) │ │ │
│ │ └──────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────┐
│ BOOKING WIZARD │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Passengers │→│ Cabins │→│ OPTIONS ◄───┼─│ Summary │ │
│ │ │ │ (if cruise) │ │ │ │ │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │ │
│ │ Shows: │
│ │ • Bedding Type │
│ │ ○ King Bed │
│ │ ○ Two Twins │
└─────────────────────────────────────────────────────────────────────────┘
Why This Architecture Matters
The Booking Wizard’s Options tab only displays Package Components where: Selection Type is set to
OptionalBooking Wizard Tab (BookingWizardTab__c) is set toOptionsThe component has at least one active Price Category If you try to use standalone Add-Ons or incorrectly configured services, they will not appear in the Booking Wizard.
Before configuring Booking Wizard options, ensure the following are in place:
●
Minimum Hawaii Release: Booking Wizard with Options tab requires Hawaii (22.0) or later
●
Package Search Configured: If launching from Package Search, ensure it’s set up per the Package Search Configuration Guide
●
Active Package: You must have an active Package with at least one Package Departure
●
Channel & Pricing: Channels and Price Lists must be configured for the package
●
Understanding of Kaptio Services: Familiarity with creating Services and Price Categories
Required Objects
| Object | API Name | Purpose |
|---|---|---|
| Service | Service__c | The sellable service offered as an option |
| Price Category | PriceCategory__c | Specific variants of the service (e.g., King vs. Twin) |
| Package Component | PackageComponent__c | Links the service to a specific package |
| Price | Price__c | Pricing for each price category by channel |
User Guide
The Options tab appears in the Booking Wizard after the Passengers step (and Cabin Selection, if applicable). This is where travelers select optional services, upgrades, and preferences for their booking.
Options Tab Layout
Component Groups
Options are grouped by their parent service/component, with a clear label showing the component name.
Price Category Choices
Under each component, users see the available price categories (e.g., “King Bed” or “Two Twins”).
Inventory Status
Each option shows availability status (FS = Free Sale, AL = Allotment, RQ = On Request, SO = Sold Out).
Pricing Display
Prices are shown per the unit of measure - either per person or per room.
Room-Based Selection
When a booking includes multiple rooms, the Options tab displays options organized by room. Each room’s occupants can have their own selections, allowing for different preferences per room.
Passenger Names in Multi-Room Bookings
For bookings with more than 2 rooms, the room headers display passenger names to help identify which room is being configured (e.g., “Room 1 (John Smith, Jane Smith)”).
The selection behavior depends on the Unit of Measure configured for the option:
Per-Person Options (UoM: person(s))
-
Each traveler in the room can be individually selected or deselected
-
Click the option checkbox to select/deselect all passengers in the room
-
Expand the option to see individual passenger checkboxes
-
Prices are calculated per person based on selections
Per-Room Options (UoM: room(s))
-
Selection applies to the entire room
-
Click to select/deselect for all passengers in that room
-
Price is a single room rate, not multiplied by passengers
Selection States
Empty Checkbox (○): Option not selected for any passengers in the room
Filled Checkbox (●): Option selected for all passengers in the room
Partially Filled (◐): Option selected for some but not all passengers (per-person options only)
Mutually Exclusive Options
Within a single component, selecting one price category will automatically deselect others for that passenger. For example, if a guest selects “King Bed,” the “Two Twins” option is automatically deselected.
Each option displays an inventory status badge indicating availability:
| Badge | Status | Description |
|---|---|---|
| FS | Free Sale | Unlimited availability - always bookable |
| AL (5) | Allotment | Limited availability - number in parentheses shows remaining units |
| RQ | On Request | Must be confirmed with supplier - bookable but not guaranteed |
| SO | Sold Out | No availability - option is disabled |
| C | Closed | Option not available for this date - disabled |
| NA | Not Available | Option does not apply to this booking |
Allotment Behavior
When an option has Allotment status and the remaining units are less than the number of passengers requesting it, the option becomes disabled for passengers who would exceed the available inventory.
Price Display
-
Per-Person Options: Shows price per person; total calculates based on selected passengers
-
Per-Room Options: Shows single room price regardless of occupancy
-
Zero-Priced: Options with $0 price display as “Included” or “$0.00”
Summary Calculation
As selections are made, the Booking Wizard summary updates to show:
-
Total price for all selected options per room
-
Quantity of each option selected
-
Running total including base package price and options
Unpriced Options
Handling Unpriced Items
If a package component or option has a
pricing_statusofunpriced, a warning message is displayed: “Your selections have unpriced items.” The booking can still proceed, but the final price may need to be confirmed.
Configuration Guide
Configuring Booking Wizard options involves creating a chain of related records that define the service, its variants, pricing, and how it’s offered within a package.
Configuration Flow
- Service →
- Price Categories →
- Prices →
- Package Component →
- BW Tab Setting
Key Configuration Points
-
Service: The parent record defining the option (e.g., “Bedding Type”)
-
Price Categories: The specific choices within the service (e.g., “King Bed”, “Two Twins”)
-
Package Component: Links the service to a package with Selection Type = Optional
-
BookingWizardTab__c: Must be set to “Options” for items to appear in Options tab
-
Pricing: Each price category needs prices configured per channel
First, create a Service record to represent the optional offering.
Navigate to Services
-
Go to the Services tab in Kaptio
-
Click New
-
Select the appropriate Record Type (typically
Package_Itemfor options)
Required Fields
| Field | Value | Notes |
|---|---|---|
| Name | e.g., “Bedding Preference” | Internal name for the service |
| External Name | e.g., “Bedding Type” | Displayed to users in Booking Wizard |
| Active | ✓ Checked | Must be active to be selectable |
| Service Type | e.g., “Accommodation Option” | Categorizes the service type |
Recommended Fields
-
Short Description: Brief description shown in the info modal
-
Supplier: Link to the supplier providing this service (if applicable)
-
Unit of Measure: Set at Price Category level, but can set default here
Naming Convention
Use a clear naming convention that distinguishes optional services from included services. For example: prefix with “OPT -” or use a naming pattern like “Bedding Type - Select” to indicate this is a selectable option.
Price Categories define the specific choices within the service. Each price category becomes a selectable option in the Booking Wizard.
Navigate to Price Categories
-
Open the Service record you created
-
Navigate to the Price Categories related list
-
Click New to create each variant
Create Price Categories for Each Option
Example: Creating price categories for Bedding Type:
| Field | King Bed | Two Twins |
|---|---|---|
| Name | King Bed | Two Twins |
| External Name | King Bed | Two Twin Beds |
| Active | ✓ | ✓ |
| Unit of Measure | room(s) | room(s) |
| Min Occupancy | 1 | 2 |
| Max Occupancy | 2 | 2 |
Important Fields
-
Unit of Measure:
person(s)orroom(s)- determines pricing calculation -
Min/Max Occupancy: Filters which options appear based on room configuration
-
Sort Order: Controls display order in the Booking Wizard
Occupancy Filtering
Price Categories with Min Occupancy or Max Occupancy set will only appear when the room configuration matches. For example, a “Single Bed” option with Max Occupancy = 1 won’t appear for double-occupancy rooms.
Now link the service to your package as a Package Component.
Navigate to Package Components
-
Open the Package record
-
Navigate to the Package Editor (Lightning mode)
-
Click Add Component or navigate to Package Components related list
Create the Package Component
| Field | Value | Notes |
|---|---|---|
| Service | Select your service | The service created in Step 1 |
| Selection Type | Optional | CRITICAL: Must be Optional for Booking Wizard options |
| Record Type | Package_Item | Standard record type for most options |
| Day | e.g., 1 | Which day of the package this option applies to |
| Position | e.g., 10 | Sort order within the Options tab |
Selection Type Values
Required (UI label: “Pre-Selected Refundable”): Included in base package by default. Can be removed with a refund. Not shown in Options tab.
Optional: Not included by default. Shown in Options tab — user can choose to add.
NonRefundable (UI label: “Pre-Selected Non-Refundable”): Included in base package by default. Can be removed visually but the price is not removed — the customer still pays. Line appears greyed out in Costings.
Common Mistake: Wrong Selection Type
If your option is not appearing in the Booking Wizard Options tab, the most common cause is Selection Type not set to Optional. Double-check this field on the Package Component.
Other Component Fields That Affect Downstream Behaviour
Package Component configuration goes beyond Selection Type and Booking Wizard Tab. Fields like
IsMainComponent__c,IsMainTourComponent__c, andPackageTotals__ccontrol cancellation fee inclusion and document generation. See the Package Setup Configuration Guide for the complete component field reference.
The BookingWizardTab__c field controls which tab in the Booking Wizard the option appears in.
Configure the Field
-
On the Package Component record, find the Booking Wizard Tab field
-
Set it to Options
-
Save the record
Available Tab Values
| Picklist Value | Tab Displayed | Use Case |
|---|---|---|
None | Not shown in any tab | Included services, background components |
Options | Options tab | Standard optional services and upgrades |
Protection Plan | Protection Plan tab | Travel insurance and protection products |
Pre Stay | Pre Stay tab | Hotel nights before the main package |
Post Stay | Post Stay tab | Hotel nights after the main package |
Tab Visibility
Tabs only appear in the Booking Wizard if there are components configured for that tab. If no components have
BookingWizardTab__c = 'Options', the Options tab won’t be displayed.
If your option has limited availability, configure inventory tracking.
Inventory Configuration Options
Free Sale (No Inventory Tracking) — Default setting - unlimited availability. No additional configuration needed.
Allotment (Limited Inventory) — Track available units per departure. Configure through:
On Request — Availability must be confirmed. Set on the Price Category or Inventory Contract.
Inventory Required Field
On the Package Component, the Inventory Required checkbox determines whether inventory status affects availability:
-
Checked: Component inventory is checked before booking
-
Unchecked: Inventory is tracked but doesn’t block bookings
Zero-priced options allow you to collect preferences without adding cost. This is ideal for choices like bedding type, dietary requirements, or room location preferences.
Creating a Zero-Priced Option
-
Create the Service and Price Categories as normal
-
When creating Prices for each Price Category:
-
Set Sales Price = 0
-
Set Net Price = 0 (or your internal cost if applicable)
-
Ensure prices exist for all relevant channels and date ranges
Example: Bedding Preference (Zero-Priced)
| Price Category | Sales Price | UoM | Notes |
|---|---|---|---|
| King Bed | $0.00 | room(s) | Preference only |
| Two Twin Beds | $0.00 | room(s) | Preference only |
Why Use Zero-Priced Options?
Operations Visibility: The selection appears on itineraries and manifests Supplier Communication: Preferences are passed to suppliers in booking confirmations Reporting: Track which preferences are most requested Guest Experience: Guests see their preferences confirmed
Example 1: Bedding Preference (Zero-Priced)
A zero-priced preference option for bed configuration:
Service: "Bedding Preference"
├── Price Category: "King Bed" ($0, UoM: room)
├── Price Category: "Two Twins" ($0, UoM: room)
└── Price Category: "Queen Bed" ($0, UoM: room)
Package Component:
- Selection Type: Optional
- Booking Wizard Tab: Options
- Day: 1
- Position: 10
Example 2: Meal Upgrade
A priced upgrade option for meals:
Service: "Dinner Upgrade"
├── Price Category: "Standard Dinner" ($0, UoM: person)
├── Price Category: "Gourmet Dinner" ($45/person, UoM: person)
└── Price Category: "Wine Pairing" ($75/person, UoM: person)
Package Component:
- Selection Type: Optional
- Booking Wizard Tab: Options
- Day: 3 (applies to day 3 of package)
- Position: 20
Example 3: Equipment Rental
Per-person equipment rental option:
Service: "Bicycle Rental"
├── Price Category: "Standard Bike" ($50/person, UoM: person)
├── Price Category: "E-Bike" ($100/person, UoM: person)
└── Price Category: "Premium E-Bike" ($150/person, UoM: person)
Package Component:
- Selection Type: Optional
- Booking Wizard Tab: Options
- Day: 1
- Inventory Required: ✓ (limited bikes available)
- Position: 30
Example 4: Room Upgrade
Per-room upgrade option:
Service: "Room Category Upgrade"
├── Price Category: "Standard Room" ($0, UoM: room)
├── Price Category: "Deluxe Room" ($200/room, UoM: room)
└── Price Category: "Suite" ($500/room, UoM: room)
Package Component:
- Selection Type: Optional
- Booking Wizard Tab: Options
- Day: 1
- Position: 5 (show first)
Example 5: Dietary Requirement (Zero-Priced)
Collecting dietary preferences:
Service: "Dietary Requirements"
├── Price Category: "Standard" ($0, UoM: person)
├── Price Category: "Vegetarian" ($0, UoM: person)
├── Price Category: "Vegan" ($0, UoM: person)
├── Price Category: "Gluten-Free" ($0, UoM: person)
└── Price Category: "Kosher" ($0, UoM: person)
Package Component:
- Selection Type: Optional
- Booking Wizard Tab: Options
- Day: 1
- Position: 100 (show last)
Test the Configuration
☐ Launch Booking Wizard from Package Search or directly
☐ Verify Options tab appears in the wizard navigation
☐ Confirm your option service appears with correct name
☐ Verify all price categories are displayed as choices
☐ Test selecting different options
☐ Verify pricing calculations are correct
☐ Test with multi-room bookings
☐ Verify inventory status badges appear correctly
☐ Complete a test booking and verify options on itinerary
Common Test Scenarios
-
Single Room: Test option selection for a single-room booking
-
Multi-Room: Test different selections per room
-
Occupancy Filtering: Test that min/max occupancy filters work
-
Pricing: Verify per-person vs. per-room pricing calculation
-
Zero-Priced: Confirm zero-priced options don’t affect total
Common Issues
Option not appearing in Options tab — Possible causes:
Options tab not showing at all — Possible causes:
Price showing as $0 unexpectedly — Possible causes:
Option is disabled (greyed out) — Possible causes:
Option doesn’t appear for certain room configurations — Possible causes:
Debug Checklist
Is the Service active? ✓ Are all Price Categories active? ✓ Does the Package Component have Selection Type = Optional? ✓ Is BookingWizardTab__c = Options? ✓ Are Prices configured for this channel and date range? ✓ Does occupancy match Price Category min/max? ✓
Appendix
Service Setup
☐ Create Service record with appropriate record type
☐ Set Service to Active
☐ Configure External Name for display
Price Categories
☐ Create Price Category for each option variant
☐ Set Unit of Measure (person or room)
☐ Configure Min/Max Occupancy if needed
☐ Set all Price Categories to Active
Pricing
☐ Create Price records for each Price Category
☐ Configure prices for all relevant channels
☐ Set appropriate date ranges for validity
☐ For zero-priced options, ensure Sales Price = 0
Package Component
☐ Create Package Component linking Service to Package
☐ Set Selection Type = Optional
☐ Set Booking Wizard Tab = Options
☐ Set Day number
☐ Set Position for sort order
Testing
☐ Test in Booking Wizard - verify option appears
☐ Test selection behavior
☐ Verify pricing calculation
☐ Complete end-to-end booking test
Package Component Fields
| Field | API Name | Purpose |
|---|---|---|
| Selection Type | SelectionType__c | Optional, Required, NonRefundable |
| Booking Wizard Tab | BookingWizardTab__c | None, Options, Protection Plan, Pre Stay, Post Stay |
| Day | Day__c | Which day of package the component applies to |
| Position | Position__c | Sort order within the tab |
| Inventory Required | InventoryRequired__c | Whether to check inventory for this component |
Price Category Fields
| Field | API Name | Purpose |
|---|---|---|
| Unit of Measure | UnitOfMeasure__c | person(s) or room(s) |
| Min Occupancy | MinOccupancy__c | Minimum occupancy for this option to appear |
| Max Occupancy | MaxOccupancy__c | Maximum occupancy for this option to appear |
| External Name | ExternalName__c | Display name in Booking Wizard |
| Active | IsActive__c | Must be true to be selectable |
Related Guides
-
Package Search Guide - How to use Package Search and launch Booking Wizard
-
Booking Wizard User Guide - Complete guide to Booking Wizard functionality
Key Concepts
-
Services: Sellable items that can be included in packages
-
Price Categories: Variants of a service with distinct pricing
-
Package Components: Links between services and packages
-
Selection Type: Required, Optional, or NonRefundable
Support
Need Help?
If you encounter issues configuring Booking Wizard options: Review the troubleshooting section above Check the configuration checklist Contact Kaptio Support with your org ID and specific issue details