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

# Erweiterte Suche

> Wie Sie in WEBSALE V8s ein Suchformular mit Filterkriterien aufbauen, vom Abschnitt ProductItemSearch in der shop.config bis zu den Tags im Template.

Die erweiterte Suche stellt dem Käufer neben dem Suchbegriff zusätzliche Filter zur Verfügung. Damit grenzt er die Trefferliste ein, statt sie nur zu durchblättern.

Typische Filter sind die Wahl des Suchbereichs, eine Preisspanne und die Beschränkung auf eine Hauptkategorie. Dazu kommen beliebige eigene Produktdatenfelder, sobald Sie diese für die Suche freischalten.

![20200108 Erweiterte Suche](https://mintcdn.com/websaleag-44ee7ea6/98HtpcQDYdzjmpoC/images/20200108_erweiterte_suche.png?fit=max\&auto=format\&n=98HtpcQDYdzjmpoC\&q=85\&s=7a85af042ddadd1afd13b7e2db6a24bc)

Die erweiterte Suche ist im Standardumfang von WEBSALE V8s enthalten. Eine Freischaltung durch WEBSALE ist nicht nötig, Sie können direkt mit der Konfiguration beginnen.

## Schritt 1: Produktdatenfelder für die Suche aktivieren

Die Felder Produktname, Beschreibung und Produktnummer sind ab Werk durchsuchbar. Jedes weitere Feld, nach dem gefiltert werden soll, muss dafür erst aktiviert werden.

Das geschieht in den Produktdaten selbst, über eine eigene Angabe am jeweiligen Feld.

## Schritt 2: Suchfelder in der shop.config benennen

Erst durch den Abschnitt `<ProductItemSearch>` weiß der Shop, welche Felder im Suchformular zur Auswahl stehen und wie sie dort heißen sollen.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<ProductItemSearch>
   All-Txt      = in allen Produktfeldern
   Name-Txt     = nur in Produktnamen
   Number-Txt   = nur in Produktnummer
</ProductItemSearch>
```

Die `-Txt`-Einträge sind die Beschriftungen, die der Käufer in der Auswahlliste sieht. Ohne sie bleibt die Liste unbeschriftet, deshalb gehören sie zum Pflichtteil der Einrichtung.

### Eigene Felder aufnehmen

Ein eigenes Produktdatenfeld bekommt zwei Einträge: einen für den technischen Namen, unter dem der Shop es anspricht, und einen für die Beschriftung.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<ProductItemSearch>
   All-Txt        = in allen Produktfeldern
   Name-Txt       = nur in Produktnamen
   Number-Txt     = nur in Produktnummer

   FreeField1     = marke
   FreeField1-Txt = nur in Marke
   FreeField2     = material
   FreeField2-Txt = nur in Material
</ProductItemSearch>
```

Durchnummeriert wird von `FreeField1` bis `FreeField20`.

> [!WARNING]
>
> Mehr als 20 eigene Suchfelder sind nicht möglich. Planen Sie die Belegung deshalb, bevor Sie anfangen. Nachträgliches Umsortieren bedeutet, bestehende Such-Links anzupassen.

Der hier vergebene Name ist zugleich der Parametername für Such-Links. Mit `FreeField1 = marke` wird `&marke=adidas` an einem Deep-Link wirksam. Der Shop wandelt den Namen intern in Kleinbuchstaben um, Groß- und Kleinschreibung spielt also keine Rolle.

Wegweiser: [Suchergebnisse](https://dokumentation.websale.de/v8s/suche/suchergebnisse.md)

### Weitere Einstellungen des Abschnitts

Drei Einstellungen sind für das Sucherlebnis besonders spürbar:

| Einstellung | Wirkung |
| - | - |
| `ExactProductNumberSearch-Allow` | die Suche nach Produktnummer trifft nur exakt statt als Teilstring |
| `KeepSearchInput` | die gewählten Filter bleiben über die Suche hinaus erhalten |
| `AutoSelectSingleEntry` | führt genau ein Treffer direkt auf die Produktseite, statt eine einelementige Liste zu zeigen |

`KeepSearchInput` lohnt sich, wenn Käufer typischerweise mehrere Suchen hintereinander absetzen. `AutoSelectSingleEntry` spart einen Klick, macht die Navigation aber weniger vorhersehbar.

Referenz: [Abschnitt ProductItemSearch](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/produkte-katalog-und-suche.md#productitemsearch)

## Schritt 3: Das Suchformular aufbauen

Das Formular bringt alle Filter zusammen. Ziel ist [`~FORM-Search~`](https://dokumentation.websale.de/v8s/referenz/tags/form-formulare#katalog-suche-und-produkt), nicht `~FORM-QuickSearch~`.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<form action="~FORM-Search~" method="post">
   Suche nach: <input type="text" name="~WS-Search_Input~" value="~WS-Search~"><br>

   Erweiterte Suche:<br>
   ~Cat-TopList~<br>
   ~WS-ProductItemList~<br>

   Preis: ab <input type="text" name="~WS-PriceFrom_Input~" value="~WS-PriceFrom~">
   bis <input type="text" name="~WS-PriceUntil_Input~" value="~WS-PriceUntil~"> ~WS-CurrencySymbol~<br>
   <input type="submit" value="Suche starten">
</form>
```

| Tag | Erzeugt |
| - | - |
| `~FORM-Search~` | Ziel des Formulars |
| [`~WS-Search_Input~`](https://dokumentation.websale.de/v8s/referenz/tags/ws/suche-listen-und-blaettern#die-tags-im-uberblick) | Name des Texteingabefelds |
| [`~WS-Search~`](https://dokumentation.websale.de/v8s/referenz/tags/ws/suche-listen-und-blaettern#die-tags-im-uberblick) | zuletzt eingegebener Suchbegriff |
| [`~Cat-TopList~`](https://dokumentation.websale.de/v8s/referenz/tags/cat/navigation-und-kategoriebaum#die-tags-im-uberblick) | fertige Auswahlliste der Hauptkategorien |
| [`~WS-ProductItemList~`](https://dokumentation.websale.de/v8s/referenz/tags/ws/suche-listen-und-blaettern#die-tags-im-uberblick) | fertige Auswahlliste der Suchbereiche |
| [`~WS-PriceFrom_Input~`](https://dokumentation.websale.de/v8s/referenz/tags/ws/suche-listen-und-blaettern#die-tags-im-uberblick), [`~WS-PriceUntil_Input~`](https://dokumentation.websale.de/v8s/referenz/tags/ws/suche-listen-und-blaettern#die-tags-im-uberblick) | Namen der beiden Preisfelder |
| [`~WS-PriceFrom~`](https://dokumentation.websale.de/v8s/referenz/tags/ws/suche-listen-und-blaettern#die-tags-im-uberblick), [`~WS-PriceUntil~`](https://dokumentation.websale.de/v8s/referenz/tags/ws/suche-listen-und-blaettern#die-tags-im-uberblick) | zuletzt eingegebene Preisgrenzen |
| `~WS-CurrencySymbol~` | Währungssymbol |

`~Cat-TopList~` und `~WS-ProductItemList~` geben jeweils eine vollständige Auswahlliste aus, einschließlich der umschließenden Elemente. Sie bauen diese Listen also nicht selbst auf. Die Beschriftungen der Suchbereiche stammen aus den `-Txt`-Einträgen aus Schritt 2.

Die Tags mit `_Input` im Namen liefern jeweils nur den Feldnamen, die gleichnamigen Tags ohne diesen Zusatz den zuletzt übermittelten Wert. Deshalb steht in jedem Eingabefeld das eine im `name`-Attribut und das andere im `value`-Attribut. So findet der Käufer seine Eingaben nach dem Absenden wieder vor.

### Sucheinstellungen zurücksetzen

Je mehr Filter gesetzt sind, desto eher landet der Käufer bei null Treffern, ohne zu erkennen, welcher Filter dafür verantwortlich ist. Eine Schaltfläche zum Zurücksetzen löst das in einem Schritt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<input type="submit" name="~WS-ResetSearch~" value="Sucheinstellungen zurücksetzen">
```

Referenz: [WS-ResetSearch](https://dokumentation.websale.de/v8s/referenz/tags/ws/suche-listen-und-blaettern.md#die-tags-im-uberblick)

## Die Trefferliste

Die Ergebnisse erscheinen anschließend auf der Suchergebnisseite. Dort stehen zusätzlich [`~WS-SearchResults~`](https://dokumentation.websale.de/v8s/referenz/tags/ws/suche-listen-und-blaettern#die-tags-im-uberblick) für die Anzahl der Treffer und [`~WS-MaxSearchResults~`](https://dokumentation.websale.de/v8s/referenz/tags/ws/suche-listen-und-blaettern#die-tags-im-uberblick) zur Verfügung.

Die Anzahl der Suchergebnisse ist nach oben begrenzt, standardmäßig auf 1000 Treffer. Die Grenze lässt sich je Shop und Subshop herabsetzen, um den Speicherverbrauch zu verringern. Für den Käufer ist das in der Praxis unkritisch, weil niemand tausend Treffer durchsieht.

Wie viele Produkte je Seite erscheinen, wie sortiert und wie geblättert wird, gilt für Suchergebnisse genauso wie für Kategorielisten.

* Wegweiser: [Anzahl der Produkte pro Seite](https://dokumentation.websale.de/v8s/kategorien/anzahl-der-produkte-pro-seite.md)
* Wegweiser: [Sortieren von Produktlisten](https://dokumentation.websale.de/v8s/funktionen-fuer-produktlisten/produktlisten-sortieren.md)
* Wegweiser: [Blättern in Produktlisten](https://dokumentation.websale.de/v8s/anwendungsbeispiele/anwendungsbeispiele.md#blattern-in-produktlisten)

## Verwandte Themen

* Wegweiser: [Schnellsuche, für das einfache Sucheingabefeld ohne Filter](https://dokumentation.websale.de/v8s/suche/schnellsuche.md)
* Wegweiser: [Suchergebnisse, für die Trefferliste und für Such-Links mit vorbelegten Kriterien](https://dokumentation.websale.de/v8s/suche/suchergebnisse.md)


## Related topics

- [Abhängige Suche](https://dokumentation.websale.de/v8s/suche/abhaengige-suche.md)
- [WEBSALE-Suche und FACT-Finder-Suche parallel betreiben](https://dokumentation.websale.de/v8s/anwendungsbeispiele/appex-websale-und-fact-finder-suche-parallel.md)
- [Produkte, Katalog und Suche](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/produkte-katalog-und-suche.md)
- [Suche, Listen und Blättern](https://dokumentation.websale.de/v8s/referenz/tags/ws/suche-listen-und-blaettern.md)
- [Ausgewählte Suchergebnisse anzeigen](https://dokumentation.websale.de/v8s/suche/ausgewaehlte-suchergebnisse-anzeigen.md)


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