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

# UL- (SuperUser)

> Die Trefferliste der Kundensuche eines SuperUsers aufbauen: über die gefundenen Konten laufen, deren Adressdaten ausgeben und je Treffer den Link zum Anmelden als dieser Kunde erzeugen.

In Shops mit Innendienst oder Kundenbetreuung gibt es Konten mit besonderen Rechten, die sogenannten SuperUser. Ein SuperUser sucht im Shop nach einem Kundenkonto und meldet sich dann als dieser Kunde an, beispielsweise um eine Bestellung am Telefon aufzunehmen oder einen Warenkorb nachzuvollziehen.

Die `UL-`Tags bauen die Trefferliste dieser Suche auf. Sie laufen über die gefundenen Konten, geben deren Adressdaten aus und erzeugen je Treffer den Link zum Anmelden.

Wegweiser: [SuperUser](https://dokumentation.websale.de/v8s/referenz/tags/ul-superuser.md)

Alle Tags dieser Seite gehören auf das Template für die Kundensuche. Das Suchformular selbst bauen Sie mit `WS-`Tags auf, die Trefferliste mit den Tags dieser Seite.

> [!WARNING]
>
> Die Suche läuft nur für ein Konto, das als SuperUser eingerichtet ist. Ohne diese Kennung liefert das Shopsystem gar keine Treffer, unabhängig davon, was im Template steht.

## Der Rahmen um die Trefferliste

Die Treffer stehen nicht einfach bereit, sondern werden über einen Pseudo-Kategorieindex abgerufen. `UserSearch` ist dieser Index, und er wird ausschließlich innerhalb von `CAT-AdvData()` verwendet, mit einem Dollarzeichen davor.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{CAT-AdvData($UserSearch,999)}
   {@UL-Data}
      ...
   {/@UL-Data}
{/CAT-AdvData($UserSearch,999)}
```

| Tag | Bedeutung |
| - | - |
| `$UserSearch` | der Pseudo-Index für die Treffer der Kundensuche |
| `UL-Data` | die Schleife über die gefundenen Konten |

Die Zahl im zweiten Argument von `CAT-AdvData()` begrenzt, wie viele Treffer die Schleife durchläuft. Eine kleinere Zahl ist sinnvoll, wenn Sie die Liste bewusst kurz halten wollen.

> [!WARNING]
>
> Unabhängig davon begrenzt das Shopsystem die Zahl der Treffer bereits bei der Datenbankabfrage. Eine sehr große Zahl in `CAT-AdvData()` hebt diese Grenze nicht auf. Weisen Sie den SuperUser im Template darauf hin, die Suche einzugrenzen, statt eine vollständige Liste zu erwarten.

`UL-Data` gibt es ausschließlich als Schleife. Für die Frage, ob überhaupt Treffer vorliegen, nehmen Sie die Klammerung um `CAT-AdvData($UserSearch,…)` selbst.

Referenz: [CAT-AdvData()](https://dokumentation.websale.de/v8s/referenz/tags/cat/navigation-und-kategoriebaum.md#cat-advdata)

## Die Angaben zum gefundenen Konto

Zwei Tags liefern die Kennungen des Kontos.

| Tag | Liefert |
| - | - |
| `UL-Number` | die Kundennummer |
| `UL-Email` | die E-Mail-Adresse des Kontos |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{@UL-Data}
   <tr>
      <td>{UL-Number}~UL-Number~{/UL-Number}</td>
      <td>~UL-Email~</td>
   </tr>
{/@UL-Data}
```

Gerade die Kundennummer ist in der Trefferliste meist die wichtigste Spalte, denn sie unterscheidet gleichnamige Kunden zuverlässiger als die Adresse.

Beide Tags greifen auch als Klammerung, und zwar dann, wenn der Wert gefüllt ist. Nicht jedes Konto hat eine Kundennummer.

## Die Adressdaten

Alle übrigen Angaben holen Sie sich über den technischen Namen des jeweiligen Adressfeldes, mit `UL-` davor.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{@UL-Data}
   ~UL-FirstName~ ~UL-LastName~<br>
   {UL-Company}~UL-Company~<br>{/UL-Company}
   ~UL-Street1~<br>
   ~UL-Zip~ ~UL-City~
{/@UL-Data}
```

Die technischen Feldnamen stehen im Abschnitt `AddressFields-Txt` der Shopkonfiguration. Hängen Sie `UL-` davor, und das Feld steht in der Trefferliste zur Verfügung.

> [!WARNING]
>
> Zur Verfügung stehen ausschließlich die Felder der **Rechnungsadresse**. Das Shopsystem gleicht den Namen gegen die Felddefinition der Rechnungsadresse ab, Felder, die es nur bei der Lieferadresse gibt, finden deshalb kein Gegenstück.
>
> Ein Tippfehler im Feldnamen wird **nicht** als ungültiges Tag gemeldet. Das Shopsystem findet schlicht kein passendes Feld und gibt einen leeren Wert aus. Eine Klammerung darum blendet dann ebenfalls aus. Prüfen Sie den Feldnamen deshalb gegen die Shopkonfiguration, wenn eine Spalte unerwartet leer bleibt.

Die Adressfeld-Tags greifen auch als Klammerung, und zwar dann, wenn das Feld gefüllt ist. Für Felder, die nicht jeder Kunde pflegt, beispielsweise die Firma oder die zweite Straßenzeile, ist die Klammerung der bessere Weg, weil sonst leere Zeilen in der Liste stehen.

Referenz: Abschnitt [`AddressFields-Txt`](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/adressen-und-eingabepruefung#addressfields-txt) in der Shopkonfiguration

## Als Kunde anmelden

`UL-LoginLink` erzeugt je Treffer den Link, über den sich der SuperUser als dieser Kunde anmeldet.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{@UL-Data}
   <a href="~UL-LoginLink~">Als ~UL-FirstName~ ~UL-LastName~ anmelden</a>
{/@UL-Data}
```

> [!WARNING]
>
> `UL-LoginLink` ist ausschließlich ein Einzel-Tag. Das eigene Beispiel der Quelle verwendet es korrekt als Einzel-Tag.

Der Link ist eine absolute Adresse über HTTPS und wechselt die Sitzung auf das gewählte Kundenkonto. Alles, was danach im Shop geschieht, geschieht unter diesem Konto.

> [!WARNING]
>
> Ein eingeschränkter SuperUser darf sich nur bei den ihm zugewiesenen Konten anmelden. Diese Prüfung findet im Shopsystem statt und nicht im Template. Die Trefferliste zeigt einem eingeschränkten SuperUser deshalb von vornherein nur seine eigenen Kunden.

Geben Sie im Template deutlich aus, als welcher Kunde der Wechsel erfolgt. Nach dem Wechsel sieht der SuperUser den Shop aus Kundensicht, und ohne einen entsprechenden Hinweis im Template ist der Unterschied zur normalen Anmeldung nicht zu erkennen.

## Wonach gesucht werden kann

Die Suchart bestimmt der SuperUser im Suchformular. Das Shopsystem kennt diese Arten:

| Suchart | Sucht in |
| - | - |
| `Name` | Nachname, mit Komma zusätzlich im Vornamen |
| `Company` | der Firma |
| `Zip` | der Postleitzahl |
| `City` | dem Ort |
| `Email` | der E-Mail-Adresse des Kontos |
| `Number` | der Kundennummer |

Bei der Suchart `Name` trennt ein Komma Nachname und Vorname. Die Eingabe `Müller,Anna` sucht nach beidem zugleich, die Eingabe `Müller` nur nach dem Nachnamen. Das ist für die Bedienungshinweise im Template wichtig.

Alle Suchen sind Teiltreffer. Die Eingabe `müll` findet also auch `Müller`, und zwar unabhängig von Groß- und Kleinschreibung.

Gelöschte Konten erscheinen nicht in der Trefferliste. Bei der Suche über E-Mail-Adresse und Kundennummer werden zusätzlich zum Löschen vorgemerkte Konten übersprungen.

## Die Tags des Suchformulars

Das Formular selbst gehört zum Präfix `WS-` und wird dort beschrieben.

| Tag | Aufgabe |
| - | - |
| `WS-UserSearch_Input` | der HTML-Name des Suchfelds |
| `WS-UserSearch` | die bisherige Eingabe |
| `WS-UserSearchType` | die gewählte Suchart |
| `WS-UserSearchResults` | die Zahl der Treffer |
| `WS-SuperUserID` | die Kennung des angemeldeten SuperUsers |

Referenz: Diese fünf Tags auf der Seite WS- (Allgemeine Tags)

## Die Tags im Überblick

| Tag | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag | Schleifen-Tag |
| - | - | - | - | - |
| `UL-Data` | – | – | – | ja |
| `UL-Number` | ja | ja | ja | – |
| `UL-Email` | ja | ja | ja | – |
| `UL-LoginLink` | ja | – | – | – |
| `UL-<technischer Feldname>` | ja | ja | ja | – |

Alle Tags gelten auf dem Template für die Kundensuche und ausschließlich innerhalb der `UL-Data`-Schleife. Diese wiederum steht innerhalb von `CAT-AdvData($UserSearch,…)`.

## Verwandte Themen

* Wegweiser: SuperUser
* Referenz: [CAT-AdvData()](https://dokumentation.websale.de/v8s/referenz/tags/cat/navigation-und-kategoriebaum.md#cat-advdata)
* Referenz: [WS- (Allgemeine Tags)](https://dokumentation.websale.de/v8s/referenz/tags/ws/shop-seite-und-technik.md)
* Referenz: Abschnitt `AddressFields-Txt` in der Shopkonfiguration


## Related topics

- [Kunde, Anmeldung und Konto](https://dokumentation.websale.de/v8s/referenz/tags/ws/kunde-anmeldung-und-konto.md)
- [Anmeldung und Registrierung](https://dokumentation.websale.de/v8s/kundenkonto/anmeldung-registrierung.md)
- [Import-Dateien](https://dokumentation.websale.de/v8s/schnittstellen/kundendaten/ws-sftp-kunden-pro/import-dateien.md)
- [Geräteübergreifender Warenkorb](https://dokumentation.websale.de/v8s/warenkorb/geraeteuebergreifender-warenkorb.md)
- [Grundlagen und Technik](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/grundlagen-und-technik.md)


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