How it works
To generate a search results page, execute a Search request and follow these steps:
- Check if a redirect is possible.
- Use the facets from the response to display Facets.
- Use the items from the response to display products.
- Use the configuration to display paging & sorting options.
If you want to display a product lister page, visit the Merchandising section.
Structure
After successfully executing the search request, the reponse XML or JSON response will contain everything you need to generate a search results page. The XML response will have this structure:
facets
: see Facets.items
: see Items.properties
: see Properties.
<navigation xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<facets>
<facet>
<!-- omitted for brevity -->
</facet>
</facets>
<items>
<item>
<!-- omitted for brevity -->
</item>
</items>
<properties>
<nrofitems>4480</nrofitems>
<pagesize>12</pagesize>
<nrofpages>374</nrofpages>
<currentpage>1</currentpage>
<selectedcategory>100022</selectedcategory>
<searchterm/>
<suggestedsearchterm/>
<isdirectsearch>false</isdirectsearch>
<isrootcategory>false</isrootcategory>
<pageurl>?tn_cid=100022&tn_sort=Aanbevolen</pageurl>
<reseturl>?tn_cid=100022</reseturl>
<sortfields>
<!-- omitted for brevity -->
</sortfields>
<redirects>
<!-- omitted for brevity -->
</redirects>
</properties>
</navigation>
Facets
To implement facets, read our guide on Facets.
Items
To implement items, go to Items.
Properties
nrofitems
,pagesize
,nrofpages
andcurrentpage
: see Paging.selectedcategory
: the currently selected category. This is the value of the tn_cid parameter. In case of a category path it's the last one in the list (e.g. fortn_cid=100022-100021968
the value is100021968
).searchterm
: the current searchterm.suggestedsearchterm
: suggested searchterm for a follow-up search request.isdirectsearch
: indicator for a pure direct search. true when there is:- a searchterm
- one category selected
- no active sortoption (defaulting to recommended)
isrootcategory
: indicates if the current category is the root category.pageurl
: current request url without paging properties.reseturl
: a predefined request url to easily reset all selected facets, sorting and paging.
Redirects
If the properties.redirects
contains one or more <url>
properties, use any of those, to redirect to that value.
For example, searching for sale could result in a server-side redirect to /sale/
:
<navigation xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<facets>
<!-- omitted for brevity -->
</facets>
<items>
<!-- omitted for brevity -->
</items>
<properties>
<!-- omitted for brevity -->
<redirects>
<url>/sale/</url>
</redirects>
</properties>
</navigation>
Sorting
To support different ways of sorting (or ordering) of items, go to Sorting, ordering and paging.
Paging
To implement paging, go to Sorting, ordering and paging.
Language
To specify what language should be used, go to Language Support.
Need even more control?
In general, the response times of our endpoints are so fast we can provide both facets and products in a single response. This makes a traditional implementation of search and/or merchandising easy.
If you want even more control or want to squeeze the last piece of performance, take a look at the Facets and Products endpoints.