Skip to content

Trip, destination and guide pages

How pages built from Travel Orbit's templates are delivered, and how to render them with the SDK.

Reference2 min read

A space connected to Travel Orbit has three page templates: Trip page, Destination page and Guide page. Their addresses use {slug}, such as /trips/{slug}. When no CMS page has the address asked for, getPage and resolve answer with the matching template's blocks and the item from Travel Orbit, in one call.

What arrives

TypeScript
const page = await cms.getPage({ path: '/trips/lofoten-ridge-walk' });page.contentType; // "travelTripPage"page.travel;      // { kind: "trip", slug: "lofoten-ridge-walk", trip: CmsTripPage }

travelOf(page) returns { trip, destination, guide } with the one the page shows. Each section block, such as travelTripHero or travelGuideStory, also has the item in its fields as trip, destination or guide, so a registry renderer gets what it needs. Other blocks on the template arrive as usual. Search engine data, structured data and the sitemap are built from Travel Orbit.

Sections

Trip page
Blocks
travelTripHero, travelTripOverview, travelTripItinerary, travelTripBooking, travelTripGuides, travelTripStays, travelTripIncluded, travelTripGallery
Destination page
Blocks
travelDestinationIntro, travelDestinationFacts, travelDestinationGuide, travelDestinationTrips
Guide page
Blocks
travelGuideProfile, travelGuideStory, travelGuideTrips

Each has an optional heading. Render them in the order they arrive: editors arrange them.

Images

Travel Orbit's images have the same shape as CMS images and the same address convention, so <CmsImage> serves smaller copies and AVIF without extra work.

getTravelTrips, getTravelDestinations and getTravelGuides return everything for trip finders and grids. Trips everywhere, on template pages, in fields and in getTravelTrips (which takes region), have priceFrom in the region's currency when the trip is sold in it, with currency saying which and tripCurrency the trip's own. Link with pageUrl, the item's page on your website; url is the booking site. Publishing a template refreshes every page; a changed trip refreshes its own page.

Changed addresses

When a trip's address name changes in Travel Orbit, or a guide's name and with it their address name, the old address keeps working: resolve answers with a permanent redirect (308) to the new one, such as /trips/lofoten-walk to /trips/lofoten-ridge-walk, and followResolution from the SDK follows it. getPage gives not found for the old address, like any page that has moved. Links and menu items that point at the trip follow the new address by themselves. Destinations keep their addresses, since they come from the country or continent.

When Travel Orbit is down

The last answer is used for up to a minute and longer while Travel Orbit cannot be reached. An item Travel Orbit has never answered for gives not found, so builds never break.

Was this page helpful?

Read next