The search results page
This page is not a stack of sections you drag into order. The results, the tabs, the filters and the sort are built into the site, and Contentful supplies their wording and their settings — through five fields on one Page entry, plus the search bar it links.
How it fits together
One Page entry, the one whose Kind is searchResults, drives the whole page. It has no Slug — this route comes from the application, and a slug typed there is ignored while looking authoritative. Its Sections list carries exactly one thing: the headings of the two card rows underneath the results. Everything else is a field on the entry itself.
Page "Search results" ← Kind = searchResults. No slug.
├─ Search bar configuration → the bar at the top (shared with the home page)
├─ Title → the big heading above the tabs
├─ Result tabs (JSON) → the three tab labels, and which opens first
├─ Filters (JSON) → every group in the filter drawer, per tab
├─ Sort options (JSON) → the sort wording and which tabs offer which
├─ No-results heading / body → what an empty search reads
└─ Sections (a list of 2)
├─ Content rail source = offers → heading of the offers row
└─ Content rail source = tripIdeas → heading of the trips row
The RESULTS themselves are the live search. Nothing here changes a card.Two consequences worth knowing. First, three of those fields are free-form JSON with no checking on Contentful's side, so a typo in one is not a broken tab — it is the whole field being ignored and the page quietly showing the built-in copy instead. Second, the search bar is a shared entry: the home page reads the same one, so a label changed for this page changes it there too.
Why so little of this page is authored
The rule the platform is built on: product data lives in ePIM and prices live in the reservation system, and Contentful is a thin editorial layer over them. On a page whose entire job is to show live products, that leaves the CMS owning the words — the heading, the tab labels, the filter and sort wording, the message when nothing is found — and nothing about the results. It is worth knowing before you go looking for a field that will not be there.
| Content type | Sections | Which ones |
|---|---|---|
| Page | 6 | Results heading, Result tabs, Sort, and 'your search', Filters, Pagination, Nothing found |
| Content rail (card row) | 2 | Offers row, 'Trips you'll love' row |
| Search bar (config) | 1 | Search bar |
| Product Card | 1 | The result cards |
The page, top to bottom
In the order a visitor meets them. Open one to see which field changes which part of it, how to edit it, and what is not yours to change.
| # | Section | What it is | What you edit |
|---|---|---|---|
| 1 | Search barSearch bar (config) | The Where to / When / Where from / Who's going bar at the top of the page, and the guided 'Help me choose' finder behind it. | The Search bar (config) entry the Page links |
| 2 | Results headingPage | The large centred line above the tabs — the page's own title, not a count of results. | Search results (Page) |
| 3 | Result tabsPage | Trip ideas / Hotels / Destinations. You own the wording, the order and which one opens first; the counts are the search's. | Search results (Page) |
| 4 | Sort, and 'your search'Page | The strip above the results: the removable pills showing what was searched for, the count, and the sort dropdown. | Search results (Page) |
| 5 | FiltersPage | The 'Search filters' drawer: every group, its wording, its options, and which tabs it applies to. | Search results (Page) |
| 6 | The result cardsProduct Card | The hotel, trip-idea and destination cards themselves. Almost none of this is authored here — it is the live search over each product's own record. | Not authored on this page TravelBox, live at render, over each product's ePIM / Contentful record |
| 7 | PaginationPage | The pager under the results. Nothing here is authored — it is listed so you do not go looking for a field. | Not authored The application |
| 8 | Nothing foundPage | What a visitor reads when their search returns no holidays — and what an empty tab shows too. | Search results (Page) |
| 9 | Offers rowContent rail (card row) | The first card row under the results — the one headed with your best offers right now. | A Content rail in the Page entry's Sections list |
| 10 | 'Trips you'll love' rowContent rail (card row) | The second card row under the results, headed with trip ideas. | A Content rail in the Page entry's Sections list |
Before you start
Find the entry
Search Contentful for a Page entry whose Kind is searchResults. There is no slug to search on and the page is routed by the application, so Kind is the only way to identify it. If no such entry is published, the page is showing the copy written into the code — the results heading, the three tab labels, all eight filter groups, the sort wording and the no-results message — and no editor can change any of it until the entry exists.
