Supplier & Service Setup

To be Reviewed

The foundation layer — creating services, configuring service settings, and defining price categories for your product catalog.

Version 12 min read | March 4, 2026 Gallery

Overview

Suppliers and services form the foundation of every package in Kaptio. Whether you are building an Anyday city break, a Seasonal brochure product, or a Fixed group departure, the underlying data is the same: a supplier provides services, and those services carry pricing through price categories.

Getting this layer right determines everything downstream. A misconfigured service means incorrect pricing. A missing price category means an occupancy type cannot be booked. This guide covers the supplier-to-price-category setup so that every package you build sits on a solid, validated foundation.

By the end of this guide you will have created services, configured service settings, and defined price categories. For inventory setup — creating contracts, generating allotment days, and managing availability — continue to the Inventory Operations Guide.

Prerequisites

Before beginning supplier and service setup, ensure the following are in place:

  • Business Unit configured with the correct currency and tax settings (Organization Structure Guide, Currency & Tax Configuration)
  • Supplier accounts created in Salesforce — standard Account records with the appropriate supplier record type
  • Pricing strategy defined — you should know what occupancy types, age bands, or cabin classes your services will offer before creating price categories
  • Admin or Product Manager access in Kaptio

Part 1: The Foundation Model

Supplier Setup Best Practices

Supplier Account Structure

How you structure supplier accounts affects pricing, inventory, and booking flows across all packages.

PatternWhen to UseExample
One account per propertyHotels and lodges where each property is a distinct supplier”Hotel Centrale” as a supplier with all its services underneath
One account per management groupHotel chains or management companies that provide contracted rates centrally”Luxury Hotels Group” as the supplier, with individual properties as services
One account per API connectionSuppliers connected via Kaptio Connect where rates come from an external systemThe API supplier account, with connected services receiving dynamic pricing

Tip: If you have both contracted (manually priced) and API-connected rates for the same property, consider creating separate services under the same supplier — one for contracted rates and one for the API feed. This keeps pricing sources separate and avoids confusion when costs differ between the two.

Contracted vs API-Connected Suppliers

AspectContracted (Manual)API-Connected (Kaptio Connect)
Cost entryManually entered via Price ManagerAutomatically imported from external system
Pricing updatesRequires manual update when supplier changes ratesUpdates automatically when the feed refreshes
InventoryManaged through inventory contracts and allotment daysMay be managed externally with availability sync
Best forSuppliers with annual rate sheets, negotiated contractsSuppliers with dynamic pricing, GDS connections, channel managers

For API-connected supplier setup, see the Kaptio Connect Integration guide.

Planning Your Service Catalog

Before creating services, plan your catalog:

QuestionWhy It Matters
How many distinct supplier services do you offer?Determines the number of service records you need
What occupancy or passenger types apply?Determines price category structure
How are your rates structured — by season, by date, flat?Determines price season configuration
What naming convention will you use?Critical for managing a large catalog

Tip: Invest time in naming conventions before creating your first service. A catalog of 50 services is manageable with any naming scheme. A catalog of 500 services requires a disciplined convention or it becomes unworkable.

Service Record Types

Kaptio supports the following Service Record Types. Choose the type that best matches the supplier service:

Service Record TypeUse ForExamples
AccommodationHotels, lodges, resorts, guesthouses”Riverside Hotel”, “Mountain Lodge”
ActivityTours, excursions, experiences”City Walking Tour”, “Wine Tasting Experience”
TransferGround transport between locations”Airport Shuttle”, “Private Car to City Center”
MealDining services”Welcome Dinner”, “Breakfast Package”
Flight PlaceholderFlights not available through electronic booking channels, where flight information is manually entered”Client arranged own flights”
PNR FlightFlights booked via a GDS and imported to Kaptio Travel”Flight booking via Amadeus or similar GDS”
InsuranceTravel insurance products”Comprehensive Travel Cover”
SupplementAdd-on charges and surcharges”Single Supplement”, “Peak Season Surcharge”
MiscellaneousAnything that does not fit another type”Visa Assistance”, “Luggage Forwarding”

Record Type Specifics: Rail, Flights, and Transport

Rail, flight, and transport services have additional configuration options that do not apply to accommodation or activity services.

Rail services (record types: MultidayRail):

FeatureHow It Works
Fare ClassThe FareClass__c field on component options controls which fare tier (e.g., Economy, Business, First Class) applies when the service is assigned to a package. Fare classes are defined on RailFare__c records and linked to component options.
Arrival / Departure LocationsComponent options for rail and transport services can specify ArrivalLocation__c and DepartureLocation__c via service location junctions. This defines the route segment (e.g., City A to City B).
Available TimesThe AvailableTimes__c field on component options holds the time schedule for the service (departure times, arrival times).
MultidayRailA separate record type for rail journeys spanning multiple days (e.g., scenic train routes with overnight segments). Pricing and allotment cover the full multi-day journey rather than individual segments.

Flight services (record types: Flight Placeholder, PNR Flight):

FeatureHow It Works
Flight PlaceholderUse for flights which are not available through traditional electronic booking channels, for which you need to manually input flight information. Typical example: “Client arranged own flights”.
PNR FlightUse for flights that are booked via a GDS and imported to Kaptio Travel. Typical example: flight booking via Amadeus or similar GDS. PNR data is imported and linked to the itinerary.

Transfer services (record type: Transfer):

FeatureHow It Works
Route-based pricingTransfers are typically priced per booking (not per night), so set Allocation Type to Per Booking.
Pick Up / Drop OffControlled via checkboxes on the Service record: Enable Linked Services For Pick Up (creates linked services to control pick-up time from the hotel) and Enable Linked Services For Drop Off (creates linked services to control drop-off time). If Allow Own Arrangement is also checked, the user can specify their own pick-up or drop-off location and times in the Itinerary.

Tip: When setting up rail services, create Price Categories that map to fare classes (e.g., “Standard Class”, “First Class”). The fare class on the component option then determines which price category is used during booking. For detailed location setup including train stations, see the Location Setup Guide.


Part 2: Creating Services

Step 1: Create a Service Record

Navigate to the Services tab in the Kaptio app and click New.

Required fields:

FieldDescriptionExample
Service NameDescriptive name for the service”Mountain Lodge”
SupplierLookup to the supplier accountMountain Lodge Resort
Service Record TypeCategory of serviceAccommodation
ActiveWhether the service is available for useChecked

Screenshot of the New Service form showing the required fields: Service Name, Supplier lookup, Service Record Type, and Active checkbox

Save the record. You now have a service that can be assigned to package components and configured with pricing.

Step 2: Configure Service Settings

After creating the service, review and set additional fields:

FieldDescriptionNotes
LocationThe geographic location (continent, country, city, etc.) the service belongs toSelect from the Location hierarchy configured in your org
Visibility SettingControls whether the service is visible to all channels or restrictedOptions: Visible for All (default) or Restricted. If set to Restricted, you must also select an Access Rule to define which channels or travel agents can book it. See Visibility Settings & Access Rules for full details
Pricing TypeDetermines how pricing is calculated for multi-day servicesOptions: Standard (price depends on number of days) or Booking (flat price regardless of duration)
Allocation TypeDefines how duration and pricing units are measuredOptions: Per Night, Per Day, or Per Booking
DescriptionInternal description of the serviceUsed for internal reference, not guest-facing
External IDIntegration identifierKaptioTravel__KaptioExternalId__c for third-party sync

Important: The Service Record Type field drives downstream behavior including pricing logic, availability checking, and component assignment rules. Set it correctly at creation time.

Naming Conventions

A consistent naming convention prevents confusion as your catalog grows. Recommended patterns:

PatternExampleWhen to Use
Service Name”Mountain Lodge”Default for accommodation — the Service is the property itself
Supplier — Activity (Location)”City Tours — Walking Tour (Old Town)“When a supplier offers the same activity in multiple locations, or when several suppliers provide the same tour in the same location
Activity [Season]”Reykjavik Winter Highlights [Winter]“When the actual offering differs by season — e.g., different routes or activities, not just a price change
Location — Service Record Type”Capital City — Airport Transfer”When the location matters more than the supplier

What is NOT a separate Service: Room types (Single, Double, Suite) are Price Categories, not Services. Board basis (Full Board, Half Board) is handled via Meal Plans on the Service. If only the price changes by season, use Price Seasons — do not create a separate Service. Only create a different Service when the actual experience or offering changes (e.g., a summer walking tour vs a winter snow-shoeing tour).

Best practices:

  • Use a consistent separator ( or -)
  • Include the supplier name for services that are not self-explanatory
  • Avoid abbreviations that new team members will not recognize
  • Keep names under 80 characters

Part 3: Defining Price Categories

Understanding Price Categories

A price category represents a pricing tier within a service. Most services need at least one price category. Common uses:

  • Hotel rooms: Single occupancy, Double occupancy, Triple occupancy, Quad occupancy
  • Tours and activities: Adult, Child, Infant
  • Flights: Economy class, Business class, First class
  • Supplements: Per-person, Per-room, Per-booking

Each price category has its own cost and sell price. When a booking is made, the system uses the price category that matches the guest configuration (number of adults, children, occupancy type).

Key concept: A service without price categories cannot be priced. Every service must have at least one price category.

Step 3: Create Price Categories

Open the service record and navigate to the Price Categories related list. Click New.

FieldDescriptionExample
NameDescriptive tier name”Double Occupancy”
ServiceAuto-populated from the parent serviceMountain Lodge
Category TypeThe occupancy or passenger class”Double”, “Adult”, “Economy”
ActiveWhether this tier is availableChecked
Sort OrderDisplay ordering — required for Pre/Post Stay search visibility1, 2, 3…

IMPORTANT

If you are loading price categories via Data Loader, data import, or any bulk method, you must populate the Sort Order field. The Salesforce UI enforces Sort Order as mandatory, but imports can skip it without error. Price categories with a blank Sort Order will work in standalone bookings but will not appear in Pre/Post Stay tabs in package search results. See Pre/Post Stay Configuration — Troubleshooting for full details.

Screenshot of the Price Categories related list on a service record, showing three categories: Single, Double, and Triple with their sort order values

Repeat for each pricing tier the service supports.

Step 4: Set Cost and Sell Prices

Each service needs cost (net) and sell (gross) prices. Prices are managed through the service’s Price Manager and Price Seasons — they are separate from inventory contracts and allotment days, which control availability only.

Prices can be set at the following levels:

  1. Price Category — the base cost and sell price for each occupancy or passenger tier
  2. Meal Plan — pricing for board basis options (e.g., Half Board, Full Board)
  3. Add-on — pricing for optional extras attached to the service
Price FieldDescription
Cost PriceWhat you pay the supplier (net)
Sell PriceWhat the guest pays (gross)
MarkupDifference between sell and cost (calculated or set manually depending on configuration)

For full details on configuring Price Seasons, the Price Manager, and the five sales price modes, see the Cost & Pricing Architecture guide.

Common Price Category Patterns

Accommodation

Price CategoryCategory TypeTypical Use
Single OccupancySingle1 guest in the room
Double OccupancyDouble2 guests sharing
Triple OccupancyTriple3 guests sharing
Quad OccupancyQuad4 guests sharing (family rooms)
Child SharingChildChild in existing bedding

How Occupancy Limits Affect Search Results

Accommodation price categories have occupancy fields that control which room types appear when a traveler searches with a specific guest configuration. These fields are set on the Price Category record and are visible in the Accommodation Price Category field set.

FieldAPI NameWhat It Controls
Max Room OccupantsMaxPeople__cMaximum total guests (adults + children) the room can hold
Max Adult OccupantsMaxAdults__cMaximum number of adults allowed
Max Child OccupantsMaxChildren__cMaximum number of children allowed
Max Infant OccupantsMaxInfants__cMaximum number of infants allowed — enforced during booking (passenger assignment) rather than search filtering
Min OccupancyMinOccupancy__cMinimum number of guests required for the room — used in cabin/cruise workflows for occupancy validation

During an accommodation search, the system evaluates each price category against the guest configuration in the search request. If any maximum is exceeded, that room type is excluded from results. The check runs for every room in the request — a room type must be able to accommodate the guests in each individual room to appear.

Example: A “Family Room” price category configured with Max Room Occupants = 4, Max Adults = 2, Max Children = 2:

Search RequestShown in Results?Why
2 adultsYesWithin all limits
2 adults, 1 childYes3 total ≤ 4 max, 2 adults ≤ 2 max, 1 child ≤ 2 max
2 adults, 2 childrenYes4 total ≤ 4 max, all occupant limits met
3 adultsNo3 adults exceeds Max Adults (2)
2 adults, 3 childrenNo5 total exceeds Max Room Occupants (4), and 3 children exceeds Max Children (2)
1 adultYesWithin all limits

Tip: If you leave the occupancy fields blank on a price category, the system treats them as unrestricted — the room type will appear in search results regardless of how many guests are in the request. Only set these fields when you need to enforce specific capacity constraints.

Tip: Occupancy limits apply across the platform, but behave differently depending on context. In Package Search, the limits hide rooms that don’t fit the guest configuration — they won’t appear in results at all. In Builder, Costings, and Booking Wizard, the same limits constrain how many passengers you can assign to a room. The underlying data (the five fields on Price Category) is the same everywhere.

Tours and Activities

Price CategoryCategory TypeTypical Use
AdultAdultGuests aged 12+ (or as defined)
ChildChildGuests aged 2–11
InfantInfantGuests under 2 (often free)
SeniorSeniorDiscounted rate for older guests

Flights (Flight Placeholder / PNR Flight)

Price CategoryCategory TypeTypical Use
EconomyEconomyStandard seating
BusinessBusinessPremium seating
First ClassFirstLuxury seating

Next Steps

With services and price categories in place, the next step is to understand how cost modes and sales pricing work together. Head to the Cost & Pricing Architecture guide for the full breakdown. Then, when you’re ready to manage availability, see the Inventory Operations Guide for contract setup, allotment days, and availability controls.


How Services Connect to Packages

Services are the bridge between suppliers and packages. They are not assigned to packages directly — they are assigned to components within a package. This separation is intentional:

  • A single service (e.g., “Mountain Lodge”) can be assigned to components in many different packages.
  • A component can have multiple services assigned, allowing the system to offer alternatives or service level tiers.
  • Pricing flows from the service’s Price Manager and Price Seasons, not from the package or component.

This means you build your service catalog once and reuse it across your entire product range.

For the full inventory chain model — how packages, components, services, inventory contracts, and allotment days connect — see the Inventory Operations Guide.


Validation Checklist

Before using services in packages, verify each step:

Supplier Account

  • Supplier account exists with the correct record type
  • Account is active and has accurate contact information

Services

  • Service Name follows your naming convention
  • Service Record Type is correctly set (Accommodation, Activity, Transfer, etc.)
  • Active checkbox is checked for services ready to use
  • Service Record Type, Location, Visibility Setting, Pricing Type, and Allocation Type are configured

Price Categories

  • Every service has at least one price category
  • Price category names are descriptive and consistent
  • Category types match the occupancy or passenger classes you support
  • Cost and sell prices are populated (on the price category, meal plan, or add-on)
  • Sort Order is set on every price category (required for Pre/Post Stay tabs in package search; bulk imports can leave it blank)

End-to-End Verification


Common Issues and Solutions

Service Not Appearing on Component

If a service books fine standalone but never appears under Package Search Pre/Post Stay tabs, check Sort Order on every price category before other troubleshooting. Blank Sort Order is common after bulk import or Data Loader: the load succeeds, but the package search results builder drops those categories when grouping Pre/Post Stay options.

CauseSolution
Service is inactive (Active = false)Check the Active checkbox on the service record
Service Record Type does not match the component typeVerify the Service Record Type is compatible with the component (e.g., an Accommodation component only shows Accommodation services)
Supplier is inactive or does not match a single-supplier packageCheck that the supplier account is active, and if the package is restricted to a single supplier, ensure the service belongs to that supplier
Price categories have no Sort OrderThe package search results builder requires Sort Order to group and display services in the Pre/Post Stay tabs. If Sort Order is null, the service works in standalone bookings but silently disappears from Pre/Post Stay results. Populate Sort Order on all price categories for the service. Query to find affected records: SELECT Id, Name, KaptioTravel__SortOrder__c FROM KaptioTravel__PriceCategory__c WHERE KaptioTravel__Item__c = '<service_id>' AND KaptioTravel__SortOrder__c = null

Pricing Incorrect or Missing

CauseSolution
No price categories on the serviceCreate at least one price category
Price category has no cost/sell pricePopulate prices on the price category, meal plan, or add-on via the Price Manager
Price Seasons not configuredCheck that Price Seasons cover the requested travel dates in the Price Manager
Currency mismatchCheck the currency rate on the Itinerary to convert the value to the expected currency

ObjectAPI NamePurposeKey Fields
Supplier AccountAccount (supplier record type)The vendor providing the serviceName, Record Type, Active
ServiceKaptioTravel__Item__cA specific service offered by a supplierName, Supplier, Service Record Type, Active
Price CategoryKaptioTravel__PriceCategory__cPricing tier within a serviceName, Item, Category Type, Cost, Sell, Sort Order
PackageKaptioTravel__Package__cTop-level product containerName, Departure Type
ComponentKaptioTravel__PackageComponent__cTrip segment within a packageName, Type, Position, Duration
Component ServiceKaptioTravel__PackageComponentItem__cLinks a service to a componentComponent, Item, Default, Service Level

See Also

Back to Gallery