search node controls the internal product search (not WEBSALE search) and listing pages in the shop — e.g. which filters are offered, which sort options are available and how many results are shown per page. It separates the settings for category and search result pages and allows the definition of individual filters and sort rules as reusable building blocks.
search* - Basic structure
The basic structure of the search node is shown below:
| Parameter | Description |
|---|---|
categoryNavigation | Controls filters, sorting and results per page on category / listing pages. |
productSearchNavigation | Controls filters, sorting and results per page on search result pages. |
productFilter | Defines a filter component. |
productSortOption | Defines a sort rule for use in category and search lists. |
search.categoryNavigation - Filters and sorting for category pages
The search.categoryNavigation node controls which filters and sortings are available on category pages, which default sort order applies and the number of results per page.
Example configuration
| Parameter | Type | Description |
|---|---|---|
productFilters | multiAssoc | List of available filters from search.productFilter (e.g. price, brand, material). The order of the entries matches the order in the frontend. |
sortOptions | multiAssoc | List of sortings the user can choose from search.productSortOption (e.g. relevance, name or price ascending / descending). |
defaultSortOptions | singleAssoc | Preset sorting from search.productSortOption when a category page is first loaded (e.g. by relevance). |
resultsPerPageOptions | list (uint) | Selectable values for “results per page”. The order of the entries matches the order in the frontend. Default: [20, 50, 100, 200] |
defaultResultsPerPage | uint | Default results per page (must also be present in resultsPerPageOptions). Default: 20 |
keepSortSettings(coming soon) | bool | Keep the chosen sorting / limit per user session. Default: true |
search.productFilter - Define product filters
The search.productFilter node defines individual filters for listing pages (e.g. brand, material, price, weight). You specify which data field is filtered, how the filter works and whether there are dependencies on other filters.
Example configuration (search.productFilter.weight):
| Parameter | Type | Description |
|---|---|---|
name | string | Technical name of the filter (e.g. brand, price). |
filterDependency | object | Defines the dependency on another filter. |
filter | singleAssoc | Reference to the dependent filter from search.productFilter. |
options | list (string) | Allowed options of the dependent filter; when these are selected, this filter becomes active. Example: show “Size” filter only if the category “Clothing” is selected: { "name": "size", "filterDependency": { "filter": "search.productFilter.category", "options": ["clothing"] } } |
type | oneOf | Defines how the filter works. |
keyword | object | Selection list with fixed values (e.g. brands, colours). |
optionsSort | enum | Sort order of the option values. Possible values: lexical — alphabetical sort. numResults — sort by hit count. relevance — sort by relevance. |
multiSelect | bool | Allow multi-selection or only a single option. |
range | object | Controls a numeric filter (e.g. price, weight). |
inputType | enum | Defines how users choose the numeric range of the filter: rangeonly — freely adjustable range. optionsOnly — only predefined steps to select. rangeAndOptions — combines both. |
optionType | enum | Determines where the numeric range steps come from: static — define fixed steps manually. dynamic — steps are calculated automatically from existing product values. |
dynamicSteps | int | Specifies the number of dynamic steps. (Only used if optionType is set to dynamic.) |
statisticOptions | list (object) | List of fixed numeric range steps. |
from | float | Lower bound of the numeric range step. |
to | float | Upper bound of the numeric range step. |
target | oneOf | Defines which product field the filter uses (e.g. a product field or a product attribute). |
field | singleAssoc | Binds the filter to a product field (e.g. content.customProductField.weight). The data comes from content.productField | content.customProductField. |
special | enum | Determines whether to filter by category ID (categories) or new arrivals (new). |
attribute | singleAssoc | Binds the filter to a product attribute. Data from content.productAttribute. |
scoreBoost(coming soon) | float | Increases the ranking influence of selected filter values on the result order. |
optionsDirectlyDisplayable(coming soon) | bool | true — the option list can be shown in full without “show more”. false — the option list can be collapsed. |
unit | string | Unit for display (e.g. kg, cm, €). |
numInitialOptions | uint | Number of option values initially visible (e.g. show 5 first, the rest must be expanded). |
minOptions | uint | Minimum number of option values required for the filter to be displayed at all. |
search.productSearchNavigation - Filters and sorting for search result pages
The search.productSearchNavigation node defines the filters and sorting on search result pages. You can set, for example, the default sort order, the results per page and a limit for the maximum number of results per search.
Example configuration
| Parameter | Type | Description |
|---|---|---|
productFilters | multiAssoc | Available filters for the search (e.g. price, brand, material). The order matches the display in the frontend. |
sortOptions | multiAssoc | Sortings selectable by the user (e.g. relevance, name / price ascending or descending). |
defaultSortOption | singleAssoc | Preset sorting of the search results (e.g. relevance). |
resultsPerPageOptions | list (uint) | Selectable values for “results per page”. Default: [ 20, 50, 100, 200] |
defaultResultsPerPage | int | Default results per page (must be contained in resultsPerPageOptions). |
maxResults | int | Maximum number of results that are considered / displayed for a search. |
search.productSortOption - Sort option
The search.productSortOption node defines a sort option for category and search result pages. It defines, for example, what is sorted by and in which direction.
Example configuration (search.productSortOption.relevance)
| Parameter | Type | Description |
|---|---|---|
name | string | Display name of the sorting in the frontend (e.g. “Popularity”). |
target | oneOf | Defines what to sort by — choose one variant: field or special. |
field | object | Sort by a specific product field. |
field | enum | Product field from content.productField | content.customProductField to sort by (e.g. price). |
direction | enum | Sort direction. asc = ascending. desc = descending. |
special | enum | System sorting by relevance (relevance). |
