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

# ST- (Seitenzustand und Navigation)

> Mit Klammerungen erkennen, welche Seite gerade angezeigt wird, wie sie aufgerufen wurde und wo im Kategoriebaum der Käufer steht.

Ein Template läuft im Shop an vielen Stellen, oft sogar dasselbe Template auf mehreren Seiten. Damit ein Include oder ein Kopfbereich sich dem anpassen kann, braucht er eine Antwort auf drei Fragen: Auf welcher Seite stehe ich, wie bin ich hierhergekommen, und wo im Sortiment bin ich gerade.

Genau das beantworten die `ST-`Tags dieser Seite. Die übrigen Zustände des Präfixes stehen auf eigenen Seiten.

* Referenz: [ST- (Kunde und Anmeldung)](https://dokumentation.websale.de/v8s/referenz/tags/st/seitenzustand-und-navigation.md)
* Referenz: [ST- (Prüfungen im Bestellprozess)](https://dokumentation.websale.de/v8s/referenz/tags/st/seitenzustand-und-navigation.md)
* Referenz: [ST- (Zahlung und Express-Checkout)](https://dokumentation.websale.de/v8s/referenz/tags/st/seitenzustand-und-navigation.md)
* Referenz: [ST- (Lieferung, Steuer und Mehrfachlieferung)](https://dokumentation.websale.de/v8s/referenz/tags/st/seitenzustand-und-navigation.md)
* Referenz: [ST- (Betriebsarten und Technik)](https://dokumentation.websale.de/v8s/referenz/tags/st/seitenzustand-und-navigation.md)

Alle `ST-`Tags sind reine Klammerungen. Es gibt sie als positive und als negative Fassung, aber weder als Einzel-Tag noch als Schleife. In der Übersichtstabelle am Ende steht das deshalb für alle Tags gleich.

## Auf welcher Seite steht der Käufer

| Tag | Greift auf |
| - | - |
| `ST-StartPage` | der Startseite |
| `ST-CatPage` | einer Kategorieseite |
| `ST-BasketPage` | der Warenkorbseite |
| `ST-PlaceOrderPage` | der Bestellübersichtsseite |
| `ST-LoginPage` | der Anmeldeseite |
| `ST-MultiDeliveryManagePage` | der Verwaltung mehrerer Lieferadressen |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-PlaceOrderPage}
   <p>Bitte prüfen Sie Ihre Angaben vor dem Absenden.</p>
{/ST-PlaceOrderPage}

{!ST-PlaceOrderPage}
   <p>Weiter einkaufen</p>
{/!ST-PlaceOrderPage}
```

> [!WARNING]
>
> Das bisherige Beispiel zu `ST-PlaceOrderPage` schließt beide Bereiche mit `{/ST-PlacedOrderPage}`, also mit einem **d** zu viel. Das ist ein anderer Tagname, der Bereich wird dadurch nie geschlossen.

Der Hauptzweck dieser Tags ist das Steuern von Includes. Ein Kopf- oder Fußbereich, der auf allen Seiten eingebunden wird, blendet damit die Teile aus, die auf einer bestimmten Seite stören.

> [!WARNING]
>
> `ST-StartPage` greift nur, wenn die Startseite als Startseite aufgerufen wurde. Eine Weiterleitung dorthin, beispielsweise nach der Anmeldung in einem geschlossenen Shop, und das Laden des Startseitentemplates über einen Template-Link setzen diesen Zustand **nicht**. Das Template ist dann dasselbe, der Zustand aber ein anderer.

`ST-BasketPage` greift auch, wenn die Warenkorbseite über eine Hintergrundanfrage nachgeladen wird.

Es ergänzt die übrigen Seitenzustände um die Anmeldeseite.

## Die Bestellung ist abgeschickt

`ST-PlacedOrder` unterscheidet nicht nach Seite, sondern nach Zeitpunkt: es greift, sobald die Bestellung erfolgreich erzeugt wurde.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-PlacedOrder}
   <!-- Zählpixel und Bestätigungstexte gehören hierher -->
{/ST-PlacedOrder}
```

> [!WARNING]
>
> Richtig ist `{!ST-PlacedOrder}` für den Fall, dass die Bestellung noch nicht aufgegeben wurde oder ein Fehler aufgetreten ist.

Eine Bestellung gilt als aufgegeben, wenn der Käufer die Bestellschaltfläche gedrückt hat und dabei kein Fehler aufgetreten ist. Scheitert der Vorgang, greift die Klammerung nicht.

## Wie die Seite aufgerufen wurde

| Tag | Greift, wenn |
| - | - |
| `ST-Ajax` | der Aufruf eine Hintergrundanfrage war |
| `ST-FormMethodGet` | das Formular per GET abgeschickt wurde |
| `ST-Addr_Order` | die Adress- oder Anmeldeseite im Zuge einer Bestellung angezeigt wird |
| `ST-Addr_Manage` | dieselbe Seite aus der Verwaltung der Kundendaten heraus angezeigt wird |
| `ST-Change` | eine Angabe von der Bestellübersicht aus geändert wird |
| `ST-PR_Change` | ein Produkt aus dem Warenkorb heraus geändert wird |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-Change}
   <input name="~BT-Addr_Change~" type="submit" value="Rechnungsadresse ändern">
{/ST-Change}

{!ST-Change}
   <input name="~BT-Addr_Back~" type="submit" value="Zurück">
   <input name="~BT-Addr_Next~" type="submit" value="Weiter">
{/!ST-Change}
```

`ST-Addr_Order` und `ST-Addr_Manage` sind ein Paar. Dieselbe Adressseite dient im Bestellablauf und in der Kontoverwaltung, und die beiden Tags unterscheiden die beiden Wege. Damit beschriften Sie die Schaltflächen passend, statt in beiden Fällen "Weiter zum nächsten Bestellschritt" anzubieten.

`ST-FormMethodGet` ist ebenfalls nicht beschrieben. Es greift, wenn das Formular per GET abgeschickt wurde und der Sitzungsparameter in der Adresse steht. Gedacht ist es für Templates, die mit Linkoptimierung arbeiten und den Rückwärtsknopf des Browsers berücksichtigen müssen.

`ST-Ajax` eignet sich für Bereiche, die nur in der Antwort auf eine Hintergrundanfrage ausgegeben werden sollen, beispielsweise ein Teilstück HTML ohne Seitengerüst.

## Wo im Kategoriebaum

Vier Klammerungen beantworten Fragen zur aktuellen Kategorie. Alle vier brauchen ein Argument.

| Tag | Greift, wenn |
| - | - |
| `ST-CatIndex()` | der angegebene Kategorieindex der aktuelle ist |
| `ST-CatTopIndex()` | der angegebene Index die aktuelle Hauptkategorie ist |
| `ST-CatLastTopIndex()` | der angegebene Index die zuletzt besuchte Hauptkategorie ist |
| `ST-CatLevel()` | die aktuelle Kategorieebene in den angegebenen Grenzen liegt |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-CatTopIndex(1-2344)}
   <link rel="stylesheet" href="/css/welt-der-schuhe.css">
{/ST-CatTopIndex(1-2344)}
```

`ST-CatLevel()` nimmt zwei durch Komma getrennte Grenzen entgegen. Die erste ist die Untergrenze, die zweite die Obergrenze, und jede von beiden darf leer bleiben.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-CatLevel(1,3)}
   <!-- Kategorieebene 1 bis 3 -->
{/ST-CatLevel(1,3)}

{ST-CatLevel(,4)}
   <!-- Kategorieebene höchstens 4, und ohne gewählte Kategorie ebenfalls -->
{/ST-CatLevel(,4)}

{ST-CatLevel(5,)}
   <!-- Kategorieebene mindestens 5 -->
{/ST-CatLevel(5,)}
```

Ohne gewählte Kategorie ist die Ebene null. Eine Klammerung mit offener Untergrenze greift dann also, eine mit einer Untergrenze ab eins nicht.

> [!WARNING]
>
> Diese vier Tags brauchen zwingend ein Argument. Eine leere Klammer macht sie zu einem ungültigen Tag. Als Einzel-Tag und als Schleife sind sie ebenfalls ungültig.
>
> Das bisherige Beispiel zu `ST-CatIndex()` prüft in der negativen Klammerung auf `1-111`, beschreibt darunter aber den Index `1-1234`. Das Beispiel ist in sich widersprüchlich.

Es greift auf die zuletzt besuchte Hauptkategorie zurück und ist damit auf Seiten nützlich, die selbst keine Kategorie haben, beispielsweise der Warenkorb.

`ST-CatIndex()` vergleicht mit dem Index der aktuellen Kategorie, `ST-CatTopIndex()` mit deren oberster Ebene. Für eine Gestaltung je Sortimentsbereich ist fast immer die Hauptkategorie die richtige Wahl.

## Rund um das angezeigte Produkt

| Tag | Greift, wenn |
| - | - |
| `ST-ParentProduct` | das Produkt das Hauptprodukt einer Gruppierung ist |
| `ST-AlternativeProductData` | die Funktion Alternative Produktdaten aktiv ist |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{!ST-ParentProduct}
   <input type="text" name="~PR-Quantity_Input~" value="1">
   <input type="submit" name="~BT-Order~" value="In den Warenkorb">
{/!ST-ParentProduct}
```

Ein Hauptprodukt einer Gruppierung ist selbst nicht bestellbar. Mengenfeld und Bestellschaltfläche gehören deshalb in die negative Klammerung. Im Shopsystem greift das Tag, sobald das Produkt untergeordnete Produkte hat.

* Referenz: [APD- (Alternative Produktdaten)](https://dokumentation.websale.de/v8s/produkte/alternative-produktdaten.md)
* Wegweiser: [Gruppierungsprodukte](https://dokumentation.websale.de/v8s/produkte/gruppierungsprodukte-anzeigen.md)

## Veraltete Tags

`ST-PR_FromCategory` sollte anzeigen, ob ein Produkt aus einer gewöhnlichen Kategorie heraus aufgerufen wurde, um Blättern und den Rückweg zur Liste auszublenden, wenn der Käufer über die Suche oder den Warenkorb gekommen ist.

> [!WARNING]
>
> Das Tag ist im Shopsystem weiterhin vorhanden und prüft ein internes Kennzeichen, das in dieser Version offenbar nicht mehr gesetzt wird. Die Klammerung greift deshalb nicht, und ein Ersatz dafür ist nicht vorgesehen. Verwenden Sie es nicht in neuen Templates.

## Die Tags im Überblick

| Tag | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag | Schleifen-Tag |
| - | - | - | - | - |
| `ST-StartPage` | – | ja | ja | – |
| `ST-CatPage` | – | ja | ja | – |
| `ST-BasketPage` | – | ja | ja | – |
| `ST-PlaceOrderPage` | – | ja | ja | – |
| `ST-LoginPage` | – | ja | ja | – |
| `ST-MultiDeliveryManagePage` | – | ja | ja | – |
| `ST-PlacedOrder` | – | ja | ja | – |
| `ST-Ajax` | – | ja | ja | – |
| `ST-FormMethodGet` | – | ja | ja | – |
| `ST-Addr_Order` | – | ja | ja | – |
| `ST-Addr_Manage` | – | ja | ja | – |
| `ST-Change` | – | ja | ja | – |
| `ST-PR_Change` | – | ja | ja | – |
| `ST-CatIndex()` | – | ja | ja | – |
| `ST-CatTopIndex()` | – | ja | ja | – |
| `ST-CatLastTopIndex()` | – | ja | ja | – |
| `ST-CatLevel()` | – | ja | ja | – |
| `ST-ParentProduct` | – | ja | ja | – |
| `ST-AlternativeProductData` | – | ja | ja | – |
| `ST-PR_FromCategory` | – | ja | ja | – |

Alle Tags dieser Seite sind auf allen Templates zulässig. `ST-ParentProduct` braucht ein aktives Produkt, die vier Kategorie-Tags eine geladene Kategorie. `ST-Change` und `ST-Addr_Order` ergeben nur im Bestellablauf eine sinnvolle Aussage.

## Verwandte Themen

* Wegweiser: Includes und Templatelogik
* Referenz: [CAT- (Kategorien)](https://dokumentation.websale.de/v8s/referenz/tags/cat/kategoriedaten.md)
* Referenz: ST- (Betriebsarten und Technik)


## Related topics

- [Anmeldung und Registrierung](https://dokumentation.websale.de/v8s/kundenkonto/anmeldung-registrierung.md)
- [Speicherbarer Warenkorb](https://dokumentation.websale.de/v8s/warenkorb/speicherbarer-warenkorb.md)
- [Lagerbestand anzeigen](https://dokumentation.websale.de/v8s/lagerbestand/lagerbestand-anzeigen.md)
- [Produkt per AJAX in den Warenkorb legen](https://dokumentation.websale.de/v8s/warenkorb/produkt-per-ajax-in-den-warenkorb-legen.md)
- [Informationsseiten per AJAX nachladen](https://dokumentation.websale.de/v8s/informationsseiten/informationsseiten-per-ajax-nachladen.md)


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