> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# Materials: FACT-Finder templates

> The four templates of the FACT-Finder direct integration: search results page, integration into ws_search.htm, shop navigation with filtering, and campaigns.

With the FACT-Finder direct integration, FACT-Finder handles search and filtering, and the shop displays the results using its own product tags. This page contains the four templates you need for this.

All labels are sample texts, and all four templates intentionally display the products by name only. Insert your own product presentation there.

> [!WARNING]
>
> **The direct integration is deprecated and no longer supported.** It is only available up to FACT-Finder 6.9 and is neither maintained nor developed further by WEBSALE. For new integrations, use the FACT-Finder WebComponents according to the official FACT-Finder documentation.
>
> This page is intended for existing shops that still work with the direct integration.

Guide: FACT-Finder integration · Reference: E-Search tags · Materials: FACT-Finder suggest layer

## The four templates

| File | Purpose |
| - | - |
| `ws_search.htm` | the shop's search page, extended with the call for the FACT-Finder results |
| `incl_factfinder_search.htm` | the search results, with filters, sorting, and paging |
| `incl_factfinder_shopnavigation.htm` | the same for the category view, if FACT-Finder also handles navigation |
| `incl_factfinder_campaign.htm` | campaigns from the FACT-Finder Campaign Manager, for example on the home page |

The entry point is `ws_search.htm`. It fetches the results via an ExternInclude, and you design the output in `incl_factfinder_search.htm`.

## ws\_search.htm

This template corresponds to the shop's normal search page. The only difference is one line:

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~WS-ExternInclude($URL-Homepage$/cgi/wsproductsearch/wsproductsearch.cgi?m=$WS-MallID$&s=$WS-ShopID$&ss=$WS-SubShopID$)~
```

It calls the search module, which in turn processes `incl_factfinder_search.htm` and inserts the result at this position.

> [accordion] ws\_search.htm
>
> ```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
> <html>
> <head>
> <title>Suche - Meine Firma</title>
> <meta name="description" content="Meine Firma ">
> <meta name="keywords" content="Onlineshop, Shop, online, einkaufen,">
> <meta name="page-topic" content="Branche Versand">
> <meta name="copyright" content="W E B S A L E  A G">
> <meta http-equiv="imagetoolbar" content="no">
> <meta http-equiv="language" content="de">
> <meta name="robots" content="~WS-RobotControl~">
> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
> <base href="~URL-Template~">
> <link rel="stylesheet" type="text/css" href="../css/web/styles.css">
>
> ~WS-Fast_Include(Incl-WEBSALEJavascript)~
>
> <!--{WS-Config}
> PMPositionType = css_ul
> {/WS-Config}-->
> </head>
>
> <body>
> ~WS-Fast_Include(Incl-AjaxBasket)~
> ~WS-Fast_Include(Incl-Suma)~
>
> <div id="wrapper">
>
>    ~WS-Fast_Include(Incl-Head)~
>    ~WS-Fast_Include(Incl-TopNavigation_Search)~
>
>    <div id="column_left">
>       ~WS-Fast_Include(Incl-ProductMenu)~
>    </div>
>
>    <div id="column_middle">
>       <p class="cat_path">Sie befinden sich hier: &raquo; <a href="~WS-Start(Startseite)~" class="cat_path">Startseite</a> &raquo; Suche</p>
>       <h1 class="headline">Suche</h1>
>       ~WS-ExternInclude($URL-Homepage$/cgi/wsproductsearch/wsproductsearch.cgi?m=$WS-MallID$&s=$WS-ShopID$&ss=$WS-SubShopID$)~
>    </div>
>
>    <div id="column_right">
>       ~WS-Fast_Include(Incl-SicherEinkaufen)~
>       ~WS-Fast_Include(Incl-Angesehen)~
>    </div>
>
>    <div class="clear"></div>
>
> </div>
>
> ~WS-Fast_Include(Incl-Footer)~
>
> </body>
> </html>
> ```

## incl\_factfinder\_search.htm

This is where the actual work happens. The template displays, in order, the search input field, the filters, the sorting, the number of hits per page, the paging bar, the campaigns, and finally the hits.

Filters, sorting, and number of hits are in a shared `form` element and trigger a submit when changed. The paging bar and the results are outside the form because they work with links.

> [accordion] incl\_factfinder\_search.htm
>
> ```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
> <html>
> <head>
> <title>Include der FACT-Finder Suchergebnisse mit Blätter-, Sortier- und Filterfunktion</title>
> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
> <base href="~URL-Template~">
> </head>
>
> <body>
> {WS-Include}
> <h1>FACT-Finder Direktanbindung</h1>
>
> <hr>
>
> <form action="~FORM-Template(ws_search.htm)~" method="GET">
>
>    <!-- ANFANG Suchbegriff-Eingabefeld -->
>    <h2>Suche</h2>
>    <input type="text" name="~E-Search_QueryName~" value="~E-Search_Query~">
>    <input type="submit" value="suchen">
>    <input type="hidden" name="~E-Search_FollowSearchName~" value="~E-Search_FollowSearch~">
>    <!-- ENDE Suchbegriff-Eingabefeld -->
>
>    <hr>
>
>    <h2>After Search Navigation (ASN)</h2>
>    <!-- ANFANG Liste aller möglichen Filterungen der Suchergebnisse -->
>    <!-- Erfordert in der shop.config im Abschnitt <SearchFactFinder-Filter> DirectShow = yes -->
>    {@E-Search_FilterField}
>    <div>
>       <h3>~E-Search_FilterField_Text~</h3>
>       {E-Search_FilterField_Active}
>          {@E-Search_FilterField_Active}
>             ~E-Search_FilterField_Active~ <a href="~E-Search_FilterField_Link~">zurücksetzen</a>
>             <input type="hidden" name="~E-Search_FilterField_SelectName~" value="~E-Search_FilterField_Active~">
>          {/@E-Search_FilterField_Active}
>       {/E-Search_FilterField_Active}
>
>       {E-Search_FilterField_Option}
>          <select name="~E-Search_FilterField_SelectName~" onchange="this.form.submit();">
>             <option value="">Bitte wählen...</option>
>             {@E-Search_FilterField_Option}
>                <option value="~E-Search_FilterField_Select~">~E-Search_FilterField_Content~ (~E-Search_FilterField_Count~) </option>
>             {/@E-Search_FilterField_Option}
>          </select>
>       {/E-Search_FilterField_Option}
>    </div>
>    {/@E-Search_FilterField}
>    <!-- ENDE Liste aller möglichen Filterungen der Suchergebnisse -->
>
>    <hr>
>
>    <h2>Sortierung der Suchergebnisse</h2>
>    <!-- ANFANG Liste aller möglichen Sortierungen der Suchergebnisse -->
>    <select name="~E-Search_SortSelectName~" onchange="this.form.submit();">
>       {@E-Search_SortSelect}
>          <option value="~E-Search_SortSelect~" {E-Search_SortActive} selected{/E-Search_SortActive}>
>             ~E-Search_SortDescription~ {E-Search_SortAsc}Up{/E-Search_SortAsc}{!E-Search_SortAsc}Down{/!E-Search_SortAsc}
>          </option>
>       {/@E-Search_SortSelect}
>    </select>
>    <!-- ENDE Liste aller möglichen Sortierungen der Suchergebnisse -->
>
>    <hr>
>
>    <h2>Anzahl der Treffer pro Seite</h2>
>    <!-- ANFANG Auswahl über die Anzahl der Ergebnisse pro Seite -->
>    <!-- Die Werte, die zur Auswahl stehen, werden im FACT-Finder Management definiert -->
>    <select name="~E-Search_ResultPerPage_SelectName~" onchange="this.form.submit();">
>       {@E-Search_ResultPerPage_Option}
>          <option value="~E-Search_ResultPerPage_Option~"
>             {E-Search_ResultPerPage_Active} selected{/E-Search_ResultPerPage_Active}>
>             ~E-Search_ResultPerPage_Option~
>          </option>
>       {/@E-Search_ResultPerPage_Option}
>    </select>
>    <!-- ENDE Auswahl über die Anzahl der Ergebnisse pro Seite -->
>
> </form>
> <hr>
>
> <h2>Blätterfunktion</h2>
> <!-- ANFANG Blätterfunktion -->
> Seite ~E-Search_PagingCurrent~ von ~E-Search_PagingMax~<br>
>
> {E-Search_PagingFirst}<a href="~E-Search_PagingLink~">&lt;&lt;</a>{/E-Search_PagingFirst}
> {E-Search_PagingPrev}<a href="~E-Search_PagingLink~">&lt;</a>{/E-Search_PagingPrev}
> {@E-Search_Paging}
>    {!E-Search_PagingActive}<a href="~E-Search_PagingLink~">{/!E-Search_PagingActive}~E-Search_PagingPosition~{!E-Search_PagingActive}</a>{/!E-Search_PagingActive}
> {/@E-Search_Paging}
> {E-Search_PagingNext}<a href="~E-Search_PagingLink~">&gt;</a>{/E-Search_PagingNext}
> {E-Search_PagingLast}<a href="~E-Search_PagingLink~">&gt;&gt;</a>{/E-Search_PagingLast}
> <!-- ENDE Blätterfunktion -->
>
> <hr>
>
> <h2>Kampagne</h2>
> <!-- ANFANG Schleife für die Anzeige von Kampagnen -->
> {@E-Search_Campaign}
>    {@E-Search_CampaignResult}
>       <!-- Verwendung aller Produkt-Tags, die auch auf dem Template ws_category.htm möglich sind -->
>       {PR-AdvData(~E-Search_CampaignResultIndex~)}
>          Name: ~PR-Name~<br>
>       {/PR-AdvData(~E-Search_CampaignResultIndex~)}
>    {/@E-Search_CampaignResult}
> {/@E-Search_Campaign}
> <!-- ENDE Schleife für die Anzeige von Kampagnen -->
>
> <hr>
>
> <h2>Anzeige der Suchergebnisse</h2>
> <!-- ANFANG Schleife für die Anzeige der Suchergebnisse -->
> {@E-Search_Result}
>    <!-- Verwendung aller Produkt-Tags, die auch auf dem Template ws_category.htm möglich sind -->
>    {PR-AdvData(~E-Search_ResultIndex~)}
>       ~PR-Name~<br>
>    {/PR-AdvData(~E-Search_ResultIndex~)}
> {/@E-Search_Result}
> <!-- ENDE Schleife für die Anzeige der Suchergebnisse -->
> <hr>
>
> {/WS-Include}
> </body>
> </html>
> ```

> [!NOTE]
>
> The hidden field with `~E-Search_FollowSearchName~` passes the identifier of the previous search on to FACT-Finder. This tells FACT-Finder that the visitor is refining their search rather than starting a new one, and FACT-Finder evaluates this in its statistics. Don't omit it.

> [!WARNING]
>
> `~E-Search_FilterField_Select~` is marked as deprecated in the module's source code. Its successor is `~E-Search_FilterField_Link~` for a ready-made link to the filtered state, or `~E-Search_FilterField_Params~` for the parameters alone.
>
> The example builds the filters as drop-down lists and therefore still needs the values. If you build the filters as a list of links instead, you can do without `_Select` entirely. This is added here.

## incl\_factfinder\_shopnavigation.htm

This template performs the same task for the category view. It looks similar to the search template but has three important differences.

First, it checks on the outside with `{E-Search_Success}` whether FACT-Finder responded at all, and on the inside with `{E-Search_Result}` whether the filtering returns any hits. Both counterparts are left empty in the example and commented as a hint: this is where the normal WEBSALE category view belongs as a fallback.

Second, the filters on the one hand and the sorting and number of hits on the other are in **two separate forms**, because they go to different targets. So that changing one doesn't lose the setting of the other, each form carries the values of the other as hidden fields.

Third, it handles price sliders separately. A `pricerange` filter doesn't have a single value but a start and an end.

> [accordion] incl\_factfinder\_shopnavigation.htm
>
> ```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
> <html>
> <head>
> <title>Include der FACT-Finder Shop Navigation mit Blätter-, Sortier- und Filterfunktion sowie die Anzeige der Ergebnisse</title>
> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
> <base href="~URL-Template~">
> </head>
>
> <body>
> {WS-Include}
>    <h1>FACT-Finder Shop Navigation</h1>
>    {E-Search_Success}
>       {E-Search_Result}
>          <form action="~FORM-CatFilter~" method="GET" id="form-filter">
>             <h2>Shop Navigation</h2>
>             <!-- ANFANG Liste aller möglichen Filterungen der Shop Navigation -->
>             <!-- Erfordert in der shop.config im Abschnitt <SearchFactFinder-Filter> DirectShow = yes -->
>             {@E-Search_FilterField}
>                <h3>~E-Search_FilterField_Text~</h3>
>
>                {E-Search_FilterField_Active}
>                   {@E-Search_FilterField_Active}
>                      ~E-Search_FilterField_Active~ <a href="~E-Search_FilterField_Link~">zurücksetzen</a>
>                      <input type="hidden" name="~E-Search_FilterField_SelectName~" value="~E-Search_FilterField_Active~">
>                   {/@E-Search_FilterField_Active}
>                {/E-Search_FilterField_Active}
>
>                {E-Search_FilterField_Option}
>                   <select name="~E-Search_FilterField_SelectName~" onchange="this.form.submit();">
>                      <option value="">Bitte wählen...</option>
>                      {@E-Search_FilterField_Option}
>                         <option value="~E-Search_FilterField_Select~">~E-Search_FilterField_Content~ (~E-Search_FilterField_Count~) </option>
>                      {/@E-Search_FilterField_Option}
>                   </select>
>                {/E-Search_FilterField_Option}
>             {/@E-Search_FilterField}
>             <!-- ENDE Liste aller möglichen Filterungen der Shop Navigation -->
>
>             <!-- ANFANG: HIDDEN Werte -->
>             <!-- Dadurch wird die aktuelle Sortierung und die aktuelle gewählte Anzahl an Produkte pro Seite gehalten, wenn ein neuer Filter ausgewählt wurde -->
>             {@E-Search_SortSelect}
>                {E-Search_SortActive}
>                   <input type="hidden" name="~E-Search_SortSelectName~" value="~E-Search_SortSelect~">
>                {/E-Search_SortActive}
>             {/@E-Search_SortSelect}
>
>             {@E-Search_ResultPerPage_Option}
>                {E-Search_ResultPerPage_Active}
>                   <input type="hidden" name="~E-Search_ResultPerPage_SelectName~" value="~E-Search_ResultPerPage_Option~">
>                {/E-Search_ResultPerPage_Active}
>             {/@E-Search_ResultPerPage_Option}
>             <!-- ENDE: HIDDEN Werte -->
>          </form>
>
>          <hr>
>
>          <!-- Anzeige Sortierung und Anzahl der Produkte pro Seite -->
>          <form action="~FORM-ProductSort~" method="GET">
>
>          <!-- ANFANG: HIDDEN Wert -->
>          <!-- Dadurch werden die aktuell gewählten Filter gehalten, wenn eine neue Sortierung oder Anzahl pro Seite gewählt wird -->
>          {@E-Search_FilterField}
>             {E-Search_FilterField_Active}
>                {@E-Search_FilterField_Active}
>                   {!E-Search_FilterField_Type(pricerange)}
>                      <input type="hidden" name="~E-Search_FilterField_SelectName~" value="~E-Search_FilterField_Active~">
>                   {/!E-Search_FilterField_Type(pricerange)}
>                {/@E-Search_FilterField_Active}
>             {/E-Search_FilterField_Active}
>             {E-Search_FilterField_Type(pricerange)}
>                <input type="hidden" name="~E-Search_FilterField_BeginName~" value="~E-Search_FilterField_BeginValue~">
>                <input type="hidden" name="~E-Search_FilterField_EndName~" value="~E-Search_FilterField_EndValue~">
>             {/E-Search_FilterField_Type(pricerange)}
>          {/@E-Search_FilterField}
>          <!-- ENDE: HIDDEN Wert -->
>
>          <h2>Sortierung der Suchergebnisse</h2>
>          <!-- ANFANG Liste aller möglichen Sortierungen -->
>          <select name="~E-Search_SortSelectName~" onchange="this.form.submit();">
>             {@E-Search_SortSelect}
>                <option value="~E-Search_SortSelect~" {E-Search_SortActive} selected{/E-Search_SortActive}>
>                   ~E-Search_SortDescription~ {E-Search_SortAsc}Up{/E-Search_SortAsc}{!E-Search_SortAsc}Down{/!E-Search_SortAsc}
>                </option>
>             {/@E-Search_SortSelect}
>          </select>
>          <!-- ENDE Liste aller möglichen Sortierungen der Suchergebnisse -->
>
>          <hr>
>
>          <h2>Anzahl der Produkte pro Seite</h2>
>          <!-- ANFANG Auswahl über die Anzahl der Ergebnisse pro Seite -->
>          <!-- Die Werte, die zur Auswahl stehen, werden im FACT-Finder Management definiert -->
>          <select name="~E-Search_ResultPerPage_SelectName~" onchange="this.form.submit();">
>             {@E-Search_ResultPerPage_Option}
>                <option value="~E-Search_ResultPerPage_Option~"
>                   {E-Search_ResultPerPage_Active} selected{/E-Search_ResultPerPage_Active}>
>                   ~E-Search_ResultPerPage_Option~
>                </option>
>             {/@E-Search_ResultPerPage_Option}
>          </select>
>          <!-- ENDE Auswahl über die Anzahl der Ergebnisse pro Seite -->
>          </form>
>
>          <hr>
>
>          <h2>Blätterfunktion</h2>
>          <!-- ANFANG Blätterfunktion -->
>          Seite ~E-Search_PagingCurrent~ von ~E-Search_PagingMax~<br>
>
>          {E-Search_PagingFirst}<a href="~E-Search_PagingLink~">&lt;&lt;</a>{/E-Search_PagingFirst}
>          {E-Search_PagingPrev}<a href="~E-Search_PagingLink~">&lt;</a>{/E-Search_PagingPrev}
>          {@E-Search_Paging}
>             {!E-Search_PagingActive}<a href="~E-Search_PagingLink~">{/!E-Search_PagingActive}~E-Search_PagingPosition~{!E-Search_PagingActive}</a>{/!E-Search_PagingActive}
>          {/@E-Search_Paging}
>          {E-Search_PagingNext}<a href="~E-Search_PagingLink~">&gt;</a>{/E-Search_PagingNext}
>          {E-Search_PagingLast}<a href="~E-Search_PagingLink~">&gt;&gt;</a>{/E-Search_PagingLast}
>          <!-- ENDE Blätterfunktion -->
>
>          <hr>
>
>          <h2>Anzeige der Produkte</h2>
>          <!-- ANFANG Schleife für die Anzeige der Produkte -->
>          {@E-Search_Result}
>             <!-- Verwendung aller Produkt-Tags, die auch auf dem Template ws_category.htm möglich sind -->
>             {PR-AdvData(~E-Search_ResultIndex~)}
>                ~PR-Name~<br>
>             {/PR-AdvData(~E-Search_ResultIndex~)}
>          {/@E-Search_Result}
>          <!-- ENDE Schleife für die Anzeige der Suchergebnisse -->
>       {/E-Search_Result}
>
>       {!E-Search_Result}
>          <!-- Sollte die Filterung keine Ergebnisse liefern, empfehlen wir Ihnen in diesem Bereich die Integration der WEBSALE Kategorieansicht. -->
>       {/!E-Search_Result}
>
>    {/E-Search_Success}
>
>    {!E-Search_Success}
>       <!-- Sollte keine Verbindung zu FACT-Finder möglich sein, empfehlen wir Ihnen in diesem Bereich die Integration der WEBSALE Kategorieansicht. -->
>    {/!E-Search_Success}
> {/WS-Include}
> </body>
> </html>
> ```

> [!WARNING]
>
> The two empty fallback areas at the end aren't a cosmetic flaw; they are the most important part of the template. If you leave them empty, the visitor sees an empty category page as soon as FACT-Finder is unreachable. Insert the normal WEBSALE category view there.

> [!NOTE]
>
> Category filters don't appear in `{@E-Search_FilterField}` in the shop navigation. The module deliberately filters them out because the category is already set via the navigation. This is added here. If you do need them, check a filter with `{E-Search_FilterField_IsCat}`.

## incl\_factfinder\_campaign.htm

You define campaigns in the FACT-Finder Campaign Manager and assign them a criterion there. In the template, you query this criterion as a parameter and thereby determine which campaign appears where.

> [accordion] incl\_factfinder\_campaign.htm
>
> ```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
> <html>
> <head>
> <title>Include einer FACT-Finder Kampagne</title>
> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
> <base href="~URL-Template~">
> </head>
>
> <body>
> {WS-Include}
> <h1>Beispiele für FACT-Finder Kampagnen</h1>
>
> <!-- ANFANG Design und Ausgabe einer Kampagne für die Startseite -->
> <!-- Ersetzen Sie START durch den Begriff, den Sie im FACT-Finder Campaign Manager als Kriterium für die Anzeige der Kampagne gewählt haben -->
> {E-Search_Campaign(START)}
>
> {@E-Search_Campaign}
>    {@E-Search_CampaignResult}
>       {PR-AdvData(~E-Search_CampaignResultIndex~)}
>          ~PR-Name~
>       {/PR-AdvData(~E-Search_CampaignResultIndex~)}
>    {/@E-Search_CampaignResult}
> {/@E-Search_Campaign}
>
> {/E-Search_Campaign(START)}
> <!-- ENDE Kampagne für die Startseite -->
>
> <!-- ANFANG Design und Ausgabe einer Kampagne für den Warenkorb -->
> <!-- Ersetzen Sie BASKET durch den Begriff, den Sie im FACT-Finder Campaign Manager als Kriterium für die Anzeige der Kampagne gewählt haben -->
> {E-Search_Campaign(BASKET)}
>
> {@E-Search_Campaign}
>    {@E-Search_CampaignResult}
>       {PR-AdvData(~E-Search_CampaignResultIndex~)}
>          ~PR-Name~
>       {/PR-AdvData(~E-Search_CampaignResultIndex~)}
>    {/@E-Search_CampaignResult}
> {/@E-Search_Campaign}
>
> {/E-Search_Campaign(BASKET)}
> <!-- ENDE Kampagne für den Warenkorb -->
>
> <!-- ANFANG Design und Ausgabe aller weiteren Kampagnen AUSSER START und BASKET -->
> <!-- Ersetzen Sie START und BASKET durch die Begriffe, die Sie im FACT-Finder Campaign Manager als Kriterium für die Anzeige der Kampagnen gewählt haben -->
> {!E-Search_Campaign(START,BASKET)}
>
> {@E-Search_Campaign}
>    {@E-Search_CampaignResult}
>       {PR-AdvData(~E-Search_CampaignResultIndex~)}
>          ~PR-Name~
>       {/PR-AdvData(~E-Search_CampaignResultIndex~)}
>    {/@E-Search_CampaignResult}
> {/@E-Search_Campaign}
>
> {/!E-Search_Campaign(START,BASKET)}
> <!-- ENDE weitere Kampagnen -->
>
> {/WS-Include}
> </body>
> </html>
> ```

> [!NOTE]
>
> The third block shows a useful pattern: the negative bracketing with multiple criteria catches all campaigns for which you haven't provided a design of their own. This way, no newly created campaign falls through the cracks.

## Prerequisite in the shop.config

Both filter lists carry the same comment: you need the entry `DirectShow = yes` in the `<SearchFactFinder-Filter>` section.

The difference is subtler than the comment suggests. With `DirectShow = yes`, the shop takes over the filters as FACT-Finder delivers them, including the labels stored there. Without this entry, it only shows the filters you have listed yourself in the `shop.config` and uses the labels stored there. Depending on the setting, `~E-Search_FilterField_Text~` returns one label or the other. This is added here.

Reference: shop.config, section SearchFactFinder-Filter

## What the examples don't show

The templates use a small portion of the available filter tags. The reference page describes them in full.

Reference: FACT-Finder, filters, sorting, and navigation

Ten of them are also missing there so far and are added here. They are useful if you want to design the filter bar differently by filter type instead of as drop-down lists.

| Tag | Purpose |
| - | - |
| `E-Search_FilterField_Type` | the filter type, can be checked as a bracketing with one or more values. The navigation template uses it for `pricerange` |
| `E-Search_FilterField_IsCat` | detects a category filter |
| `E-Search_FilterField_Index` | the sequential number of the filter, can be checked as a bracketing for specific numbers |
| `E-Search_FilterField_Level` | the level of the filter, can also be checked |
| `E-Search_FilterField_GroupOrder` | the sort identifier of the filter group |
| `E-Search_FilterField_Unit` | the unit, for example for a price filter |
| `E-Search_FilterField_Img` | the preview image of a filter option |
| `E-Search_FilterField_SelectLinks_Count` | how many options are hidden behind "show more" |
| `E-Search_FilterField_Default` | true if a default value is set for this filter |
| `E-Search_FilterField_Option_Default` | true if the current option is this default value |

> [!NOTE]
>
> You can limit the number of filter options offered in the `shop.config`. If the limit is set, the module stops the `{@E-Search_FilterField_Option}` loop after this number.

## Note on all four templates

> [!NOTE]
>
> The examples use the HTML 4.01 doctype and `charset=ISO-8859-1`. For a new shop, use the doctype and character set of your other templates instead, usually HTML5 and UTF-8.

> [!NOTE]
>
> Compared to the previous documentation, four places in the listings have been corrected: "müglich" instead of "möglich" five times in the navigation template, the paging arrows `&lt;` and `&gt;`, which appeared in the text as bare angle brackets, the inconsistent `submit()` versus `this.form.submit()`, and two comments with incomplete sentences.


## Related topics

- [Materials: FACT-Finder suggest layer](https://dokumentation.websale.de/en/v8s/materialien/materialien-fact-finder-suggest-layer.md)
- [Integration of FACT-Finder](https://dokumentation.websale.de/en/v8s/integration-von-fact-finder/integration-von-fact-finder.md)
- [FACT-Finder: Filters, sorting and navigation](https://dokumentation.websale.de/en/v8s/integration-von-fact-finder/fact-finder-filter-sortierung-und-navigation.md)
- [E-Search_ (basics and result list)](https://dokumentation.websale.de/en/v8s/referenz/tags/e-search/grundlagen-und-ergebnisliste.md)
- [FACT-Finder campaigns](https://dokumentation.websale.de/en/v8s/integration-von-fact-finder/fact-finder-kampagnen.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.