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

# Session

> Session-Aktionen im Frontend: eigene Session-Variablen schreiben und nach fehlgeschlagenem Bezahlvorgang eine gesperrte Session entsperren.

In diesem Abschnitt werden die verfügbaren Aktionen der Session beschrieben. Mit diesen Aktionen können z.B. Session-Variablen geschrieben oder eine gesperrte Session nach einem fehlgeschlagenen Bezahlvorgang wieder entsperrt werden.

***

## Aktionen im Überblick

| **Aktion**      | **Beschreibung**                                                        |
| --------------- | ----------------------------------------------------------------------- |
| `SessionUpdate` | Schreibt einen Wert in eine Session-Variable.                           |
| `SessionUnlock` | Entsperrt die Session nach einem fehlgeschlagenen Online-Bezahlvorgang. |

***

## Aktionen

### SessionUpdate

Mit dieser Aktion wird ein Wert in eine Session-Variable geschrieben. Die Variable wird dabei über den Parameternamen `session.(variableName)` adressiert, wobei `variableName` für den gewünschten Schlüssel innerhalb der Session steht.

**Anwendungsbeispiel**\
Nutzbar, um während des Nutzererlebnisses benutzerdefinierte Zustandsinformationen in der Session zu speichern, z.B. einen ausgewählten Filter, einen Fortschritt im Checkout oder einen temporären Hinweis, der seitenübergreifend verfügbar sein soll.

**Parameter**

| **Name**                 | **Beschreibung**                                                      |
| ------------------------ | --------------------------------------------------------------------- |
| `session.(variableName)` | Der Schlüssel und Wert der Session-Variable, die gesetzt werden soll. |

**Zugehörige Module, Variablen & Methoden**

* [\$wsSession](/frontend/referenz/module/wssession)
* [\$wsSession.set()](/frontend/referenz/module/wssession#\$wssession-set)
* [\$wsSession.get()](/frontend/referenz/module/wssession#\$wssession-get)

**Beispiel** das zeigt, wie ein Wert in eine Session-Variable geschrieben und anschließend ausgelesen wird.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myActionSessionUpdate = $wsActions.create("SessionUpdate") }}
<form method="post" action="{{= $wsViews.current.url() }}">
    <input type="hidden" name="wscsrf" value="{{= $myActionSessionUpdate.csrf }}">
    <input type="hidden" name="wsact" value="{{= $myActionSessionUpdate.id }}">
    <input type="hidden" name="session.lastViewedCategory" value="Laufschuhe">
    <button type="submit">Speichern.</button>
</form>

{{ if $wsSession.get("lastViewedCategory") }}
    Kategorie: {{= $wsSession.get("lastViewedCategory") }}
{{ /if }}
```

***

### SessionUnlock

Mit dieser Aktion wird eine gesperrte Session wieder entsperrt. Eine Session kann nach einem fehlgeschlagenen Online-Bezahlvorgang in einen gesperrten Zustand geraten, um unbeabsichtigte Folgeaktionen zu verhindern. `SessionUnlock` setzt diesen Sperrzustand zurück, sodass der Kunde den Vorgang erneut starten oder fortsetzen kann.

Diese Aktion erwartet keine Parameter und liefert keine Fehlerrückmeldungen.

**Anwendungsbeispiel**\
Nutzbar auf einer Fehler- oder Rücksprungs-Seite nach einem fehlgeschlagenen Zahlungsvorgang, um dem Kunden zu ermöglichen, die Zahlung erneut zu versuchen oder eine andere Zahlungsmethode auszuwählen.

**Zugehörige Module, Variablen & Methoden**

* [\$wsSession](/frontend/referenz/module/wssession)
* [\$wsSession.isLocked](/frontend/referenz/module/wssession#\$wssession-islocked)

**Beispiel** das zeigt, wie einem Kunden bei gesperrter Session die Möglichkeit gegeben wird, diese über einen Button zu entsperren.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ if $wsSession.isLocked }}
    {{ var $myActionSessionUnlock = $wsActions.create("SessionUnlock") }}
    <form method="post" action="{{= $wsViews.current.url() }}">
        <input type="hidden" name="wscsrf" value="{{= $myActionSessionUnlock.csrf }}">
        <input type="hidden" name="wstarget" value="{{= $wsViews.current.url() }}">
        <input type="hidden" name="wsact" value="{{= $myActionSessionUnlock.id }}">
        <button type="submit">Session entsperren.</button>
    </form>
{{ /if }}
```
