Sort, and 'your search'
The strip above the results: the removable pills showing what was searched for, the count, and the sort dropdown.
Search results (Page)
What makes it this section
A JSON object on the Page entry. The ranking is built into the site; the wording, the order and the availability are yours.
What a visitor sees

- 1
Sort option label
- 2
The default sort
- 3
The pills — rebuilt from the search
- 4
The filters button — not authored
What each field controls
The Field column is the label as it appears in Contentful; under it, the field's id, for talking to a developer. The number matches the marker on the screenshots above.
| # | Field | What it controls | Notes |
|---|---|---|---|
Sort options sort | The sort wording, its order, the default, and which tabs offer which sorts. | A JSON object: { "options": [ { "id", "label" } ], "default": …, "byTab": { … } }. A bare [ … ] of options is also accepted. | |
— options[].id sort.options[].idrequired | Which ranking the option applies. | A closed set — how each one ranks is built in, on the agreed position that the "tech config of how this works should be built in, wording of these should be configurable in CMS". An unknown id is dropped rather than guessed at. relevance is the Kuoni-recommended order. Choose one of: relevance priceAsc priceDesc starAsc starDesc | |
1 | — options[].label sort.options[].labelrequired | The wording in the dropdown. | e.g. "Kuoni recommended", "Price (low to high)". |
2 | — default sort.default | Which sort is applied before anyone chooses one. | This is the wording shown on the control before anyone touches it, which is why the screenshot marks the same place twice. Choose one of: relevance priceAsc priceDesc starAsc starDesc |
— byTab sort.byTab | Which sorts each tab offers. | One list per tab id, e.g. { "hotels": ["relevance","priceAsc","starDesc"], "destinations": [] }. It exists because the three tabs are not comparable — star rating means something on Hotels and nothing on Destinations. An empty list means that tab offers no sort at all. | |
3 | The pills — | Nothing you can set. | They are rebuilt from the visitor's own search so they cannot disagree with it. Removing one re-runs the search without that criterion. |
4 | The SEARCH FILTERS button — | Nothing you can set. | Its wording is built in; the number on it is how many filters are currently applied. What is INSIDE the drawer is yours — see Filters, next. |
How to change it, step by step
Open the search results Page entry
Search Contentful for the Page entry whose Kind is "searchResults" and open it.
Open the Sort options object editor
This field is a JSON object, not a set of boxes. Contentful shows it as a code editor and checks nothing about what you type, so the shape below has to be exactly right.
Edit the JSON, keeping the shape
Change labels and order freely. Do not invent ids: an id the page has no code for is dropped, and the page records that it dropped it.
Publish, then check the page
Change status → Publish. If the field is malformed the page ignores it WHOLESALE and keeps its built-in copy rather than applying half of it — so a page that looks unchanged after publishing usually means a JSON error. /api/debug-fallbacks lists what fell back and why.
