> ## 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.

# Materialien FACT-Finder-Templates

> Die vier Templates der FACT-Finder-Direktanbindung: Suchergebnisseite, Einbindung in ws_search.htm, Shop-Navigation mit Filterung und Kampagnen.

Bei der FACT-Finder-Direktanbindung übernimmt FACT-Finder die Suche und die Filterung, und der Shop zeigt die Ergebnisse mit seinen eigenen Produkt-Tags an. Diese Seite enthält die vier Templates, die Sie dafür brauchen.

Alle Beschriftungen sind Beispieltexte, und alle vier Templates zeigen die Produkte bewusst nur als Namen. Setzen Sie dort Ihre eigene Produktdarstellung ein.

> [!WARNING]
>
> **Die Direktanbindung ist veraltet und wird nicht mehr unterstützt.** Sie steht nur bis FACT-Finder 6.9 zur Verfügung und wird von WEBSALE weder gepflegt noch weiterentwickelt. Für neue Integrationen verwenden Sie die FACT-Finder WebComponents nach der offiziellen Dokumentation von FACT-Finder.
>
> Diese Seite ist für bestehende Shops gedacht, die noch mit der Direktanbindung arbeiten.

Wegweiser: [FACT-Finder-Integration](https://dokumentation.websale.de/v8s/integration-von-fact-finder/integration-von-fact-finder.md) · Referenz: [E-Search-Tags](https://dokumentation.websale.de/v8s/referenz/tags/e-pia/galerie.md) · Materialien: FACT-Finder Suggest-Layer

## Die vier Templates

| Datei | Aufgabe |
| - | - |
| `ws_search.htm` | die Suchseite des Shops, erweitert um den Aufruf der FACT-Finder-Ergebnisse |
| `incl_factfinder_search.htm` | die Ergebnisse der Suche, mit Filtern, Sortierung und Blätterfunktion |
| `incl_factfinder_shopnavigation.htm` | dasselbe für die Kategorieansicht, wenn FACT-Finder auch die Navigation übernimmt |
| `incl_factfinder_campaign.htm` | Kampagnen aus dem FACT-Finder Campaign Manager, beispielsweise auf der Startseite |

Der Einstieg ist `ws_search.htm`. Es holt sich die Ergebnisse über einen ExternInclude, und was dabei herauskommt, gestalten Sie in `incl_factfinder_search.htm`.

## ws\_search.htm

Dieses Template entspricht der normalen Suchseite des Shops. Der einzige Unterschied ist eine Zeile:

```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$)~
```

Sie ruft das Suchmodul auf, das seinerseits `incl_factfinder_search.htm` verarbeitet und das Ergebnis an dieser Stelle einsetzt.

> [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

Hier steckt die eigentliche Arbeit. Das Template zeigt der Reihe nach das Sucheingabefeld, die Filter, die Sortierung, die Trefferzahl je Seite, die Blätterleiste, die Kampagnen und zuletzt die Treffer.

Filter, Sortierung und Trefferzahl stehen in einem gemeinsamen `form`-Element und lösen beim Umschalten ein Absenden aus. Die Blätterleiste und die Ergebnisse stehen außerhalb, weil sie mit Links arbeiten.

> [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>
> ```

Das versteckte Feld mit `~E-Search_FollowSearchName~` reicht die Kennung der vorherigen Suche an FACT-Finder weiter. Darüber erkennt FACT-Finder, dass der Besucher seine Suche verfeinert, statt eine neue zu starten, und wertet das in seiner Statistik aus. Lassen Sie es nicht weg.

> [!WARNING]
>
> `~E-Search_FilterField_Select~` ist im Quelltext des Moduls als veraltet markiert. Der Nachfolger ist `~E-Search_FilterField_Link~` für einen fertigen Link auf den gefilterten Stand, beziehungsweise `~E-Search_FilterField_Params~` für die Parameter allein.
>
> Das Beispiel baut die Filter als Auswahllisten und braucht dafür weiterhin die Werte. Wenn Sie die Filter stattdessen als Linkliste bauen, kommen Sie ganz ohne `_Select` aus.

## incl\_factfinder\_shopnavigation.htm

Dieses Template übernimmt dieselbe Aufgabe für die Kategorieansicht. Es sieht dem Suchtemplate ähnlich, hat aber drei wichtige Unterschiede.

Erstens prüft es außen mit `{E-Search_Success}`, ob FACT-Finder überhaupt geantwortet hat, und innen mit `{E-Search_Result}`, ob die Filterung Treffer liefert. Beide Gegenstücke sind im Beispiel leer gelassen und als Hinweis kommentiert: Dort gehört die normale WEBSALE-Kategorieansicht als Rückfallweg hinein.

Zweitens stehen Filter einerseits und Sortierung mit Trefferzahl andererseits in **zwei getrennten Formularen**, weil sie an verschiedene Ziele gehen. Damit beim Umschalten des einen die Einstellung des anderen nicht verloren geht, trägt jedes Formular die Werte des anderen als versteckte Felder mit.

Drittens behandelt es Preis-Schieberegler gesondert. Ein `pricerange`-Filter hat keinen einzelnen Wert, sondern einen Anfang und ein Ende.

> [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]
>
> Die beiden leeren Rückfallbereiche am Ende sind kein Schönheitsfehler, sondern die wichtigste Stelle des Templates. Lassen Sie sie leer, sieht der Besucher eine leere Kategorieseite, sobald FACT-Finder nicht erreichbar ist. Bauen Sie dort die normale WEBSALE-Kategorieansicht ein.

Kategoriefilter erscheinen in der Shop-Navigation nicht in `{@E-Search_FilterField}`. Das Modul filtert sie bewusst heraus, weil die Kategorie bereits über die Navigation gesetzt ist. Wenn Sie sie doch brauchen, prüfen Sie einen Filter mit `{E-Search_FilterField_IsCat}`.

## incl\_factfinder\_campaign.htm

Kampagnen definieren Sie im FACT-Finder Campaign Manager und geben ihnen dort ein Kriterium. Im Template fragen Sie dieses Kriterium als Parameter ab und bestimmen so, welche Kampagne an welcher Stelle erscheint.

> [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>
> ```

Der dritte Block zeigt ein nützliches Muster: Die negative Klammerung mit mehreren Kriterien fängt alle Kampagnen ab, für die Sie keine eigene Gestaltung vorgesehen haben. So fällt keine neu angelegte Kampagne unter den Tisch.

## Voraussetzung in der shop.config

Beide Filterlisten tragen denselben Kommentar: Sie brauchen im Abschnitt `<SearchFactFinder-Filter>` den Eintrag `DirectShow = yes`.

Der Unterschied ist feiner, als der Kommentar vermuten lässt. Mit `DirectShow = yes` übernimmt der Shop die Filter so, wie FACT-Finder sie liefert, samt der dort hinterlegten Beschriftungen. Ohne diesen Eintrag zeigt er nur die Filter, die Sie in der `shop.config` selbst aufgelistet haben, und verwendet die dort hinterlegten Beschriftungen. `~E-Search_FilterField_Text~` liefert je nach Einstellung die eine oder die andere Beschriftung.

Referenz: shop.config, Abschnitt SearchFactFinder-Filter

## Was die Beispiele nicht zeigen

Die Templates nutzen einen kleinen Teil der verfügbaren Filter-Tags. Die Referenzseite beschreibt sie vollständig.

Referenz: [FACT-Finder, Filter, Sortierung und Navigation](https://dokumentation.websale.de/v8s/integration-von-fact-finder/fact-finder-filter-sortierung-und-navigation.md)

Sie sind nützlich, wenn Sie die Filterleiste nicht als Auswahllisten, sondern nach Filtertyp unterschiedlich gestalten wollen.

| Tag | Zweck |
| - | - |
| `E-Search_FilterField_Type` | der Filtertyp, als Klammerung mit einem oder mehreren Werten prüfbar. Das Navigations-Template nutzt ihn für `pricerange` |
| `E-Search_FilterField_IsCat` | erkennt einen Kategoriefilter |
| `E-Search_FilterField_Index` | die laufende Nummer des Filters, als Klammerung auf bestimmte Nummern prüfbar |
| `E-Search_FilterField_Level` | die Ebene des Filters, ebenfalls prüfbar |
| `E-Search_FilterField_GroupOrder` | die Sortierkennung der Filtergruppe |
| `E-Search_FilterField_Unit` | die Einheit, beispielsweise für einen Preisfilter |
| `E-Search_FilterField_Img` | das Vorschaubild einer Filteroption |
| `E-Search_FilterField_SelectLinks_Count` | wie viele Optionen hinter "mehr anzeigen" stecken |
| `E-Search_FilterField_Default` | wahr, wenn für diesen Filter ein Vorgabewert eingestellt ist |
| `E-Search_FilterField_Option_Default` | wahr, wenn die aktuelle Option dieser Vorgabewert ist |

Die Zahl der angebotenen Filteroptionen lässt sich in der `shop.config` begrenzen. Ist die Grenze gesetzt, bricht das Modul die Schleife `{@E-Search_FilterField_Option}` nach dieser Anzahl ab.

## Hinweis zu allen vier Templates

Die Beispiele tragen den HTML-4.01-Doctype und `charset=ISO-8859-1`. Für einen neuen Shop übernehmen Sie stattdessen Doctype und Zeichensatz Ihrer übrigen Templates, üblicherweise HTML5 und UTF-8.


## Related topics

- [Materialien FACT-Finder Suggest-Layer](https://dokumentation.websale.de/v8s/materialien/materialien-fact-finder-suggest-layer.md)
- [FACT-Finder-Kampagnen](https://dokumentation.websale.de/v8s/integration-von-fact-finder/fact-finder-kampagnen.md)
- [Integration von FACT-Finder](https://dokumentation.websale.de/v8s/integration-von-fact-finder/integration-von-fact-finder.md)
- [FACT-Finder: Filter, Sortierung und Navigation](https://dokumentation.websale.de/v8s/integration-von-fact-finder/fact-finder-filter-sortierung-und-navigation.md)
- [Produkte, Katalog und Suche](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/produkte-katalog-und-suche.md)


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