Skip to main content

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.

Mit dem $wsForm Modul können Sie Formulardaten dynamisch im Frontend verwenden, Formularfelder laden und abgesendete Formulardaten lesen.

Modulübersicht

Beispiel / Ausschnitt über $wsForm
{{= $wsForm | json }}
JSON-Ausgabe
{
  "inquiryId": "...",
  "load": "ƒ()",
  "loadAllTypes": "ƒ()",
  "loadType": "ƒ()"
}
Anmerkung: ƒ() kennzeichnet eine Funktion. Variablen in der Übersicht
NameRückgabe-TypBeschreibung
inquiryIdstringEnthält die ID nach dem Abschicken eines Formulars.
loadType()mapLädt die Struktur eines Formulars anhand des Formularnamens.
loadAllTypes()arrayLädt alle verfügbaren Formulartypen des Shops.
load()mapLädt die übermittelten Daten eines abgeschickten Formulars.

Templates

Formulare werden überall im Shop und auf allen Templates verwendet. Diese Formulare sind beispielsweise:
  • Kontaktformular
  • Widerrufsformular
  • Frage zum Produkt
  • Passwort aussetzen

Variablen

$wsForm.inquiryId

Enthält die eindeutige ID einer Formularanfrage nach dem erfolgreichen Absenden. Mit dieser ID können die Formulardaten über load() abgerufen werden.
Anfrage-ID: {{= $wsForm.inquiryId }}

Methoden

$wsForm.loadType()

Lädt die Struktur eines Formulars (Felder, Labels, Validierungen) anhand der Formular-ID. Signatur
$wsForm.loadType(inquiryId)
Rückgabe
map - Map mit den Formular-Eigenschaften und Feldern.
Parameter
NameTypPflichtBeschreibung
inquiryIdstringjaID des Formulars (z.B. “contact”).
Beispiel, das alle Eigenschaften jedes Formularfeldes ausgibt:
{{ foreach $field in $wsForm.loadType("contact").fields }}
    {{ foreach $key in sort(keys($field)) }}
        {{= $key }}: {{= $field[$key] }} 
    {{ /foreach }}
{{ /foreach }}

Variablen der Feld-Objekte

Die Methode $wsForm.loadtype() gibt pro Feld (in diesem Beispiel $myField) ein Objekt mit folgenden Eigenschaften zurück. Ist dem Formular ein RuleSet (inquiry - Formulare ) zugewiesen, werden die Attribute required und label automatisch durch die dort definierten Regeln angepasst.
VariableRückgabe-TypBeschreibung
$myField.namestringTechnischer Feldname.
$myField.labelstringAnzeigename des Feldes. Wird automatisch durch customLabelDefinition im RuleSet aktualisiert, sofern ein RuleSet verknüpft ist.
$myField.requiredboolPflichtfeldkennzeichen (true / false). Wird automatisch durch requiredDefinition im RuleSet aktualisiert.
$myField.validationsarrayListe der Validierungsregeln für das Feld.
$myField.defaultValuestringStandardwert des Feldes (gesetzt durch defaultValuesDefinition im RuleSet). Kann im Template verwendet werden, um den Feldwert vorzublegen, wenn dieser leer ist.
$myField.valuestringAktueller Wert des Feldes. Wird bei der Aktion inquiryCheck befüllt (siehe actions - Formulare).
$myField.visibleboolGibt an, ob das Feld angezeigt werden soll (true / false). Wird automatisch durch inputVisibilityDefinition im RuleSet gesteuert.

$wsForm.loadAllTypes()

Lädt alle verfügbaren Formulartypen des Shops Signatur
$wsForm.loadAllTypes()
Rückgabe
array - Liste aller verfügbaren Formulartypen.
Beispiel, das alle verfügbaren Formulartypen durchläuft.
{{ foreach $formType in $wsForm.loadAllTypes() }}
  Formular: {{= $formType.name }}
{{ /foreach }}

$wsForm.load()

Lädt die übermittelten Daten eines abgeschickten Formulars. Signatur
$wsForm.load(inquiryId)
Rückgabe
map - Map mit den Anfragedaten.
Parameter
NameTypPflichtBeschreibung
inquiryIdstringjaID des abgeschickten Formulars.
Beispiel, das prüft, ob das Formular erfolgreich abgesendet wurde und die Daten lädt.
{{ var $myAction = $wsActions.create('InquirySend') }}
{{ if $myAction.success }}
    {{ var $myInquiry = $wsForm.load($myAction.successInfo.inquiryId) }}
{{ /if }}
Vorgehen:
  • Action “InquirySend” erstellen
  • Prüfen, ob das Absenden erfolgreich war
  • Formulardaten über die Inquiry-ID laden
Die folgenden Variablen sind verfügbar, nachdem die Inquiry-Daten mit load()geladen wurden:
VariableRückgabe-TypBeschreibung
idstringEindeutige ID der Formularanfrage.
formIdstringID des Formulars, das benutzt wurde.
createdAtstringZeitpunkt des Abschickens.
submittermapDaten des Absenders.
emailstringE-Mail-Adresse des Absenders.
sessionIdstringSession-ID, während der das Formular abgeschickt wurde.
ipAddressstringIP-Adresse des Absenders.
formmapDaten des Formulars, die der Kunde im Shop eingegeben hat.
"fieldName".labelstringSprechender Name des Feldes.
"fieldName".valuestringEingetragener Wert des Feldes.

Variablen der Inquiry-Daten

$myInquiry.id

Gibt die eindeutige ID der Formularanfrage aus.
ID der Formularanfrage: {{= $myInquiry.id }}

$myInquiry.formId

Gibt die ID des Formulars aus, das benutzt wurde.
Formular-ID: {{= $myInquiry.formId }}

$myInquiry.createdAt

Gibt den Zeitpunkt des Abschickens aus.
Formular versendet: {{= $myInquiry.createdAt }}

$myInquiry.submitter

Gibt eine Map mit Daten über den Absender aus.

$myInquiry.submitter.email

Gibt die E-Mail-Adresse des Absenders aus.
E-Mail-Adresse: {{= $myInquiry.submitter.email }}

$myInquiry.submitter.sessionId

Gibt die Session-ID aus, während der das Formular abgeschickt wurde.
Session-ID: {{= $myInquiry.submitter.sessionId }}

$myInquiry.submitter.ipAddress

Gibt die IP-Adresse des Absenders aus.
IP-Adresse: {{= $myInquiry.submitter.ipAddress }}

$myInquiry.form

Gibt die Daten der Formularanfrage, die der Kunde im Shop eingegeben hat, als Map aus.

$myInquiry.form.”fieldName”.label

Gibt den sprechenden Namen des Feldes aus.
Vorname-Label: {{= $myInquiry.form.firstName.label }}

$myInquiry.form.”fieldName”.value

Gibt den eingetragenen Wert des Feldes aus.
Vorname-Wert: {{= $myInquiry.form.firstName.value }}

Aktionen

Aktionen zu diesem Modul, die Änderungen auslösen, sind separat im Kapitel “Aktionen” dokumentiert: Inquiry

Beispiel für die Anzeige von Formularfeldern

Funktion - loadType

Die Funktion $wsForm.loadType() nimmt den Namen des Formulars als Argument und wird verwendet um auf die Eigenschaften und Felder des Formulars zuzugreifen. Die Felder und zugehörigen Eigenschaften des Kontaktformulars können dann folgendermaßen geladen und gelesen werden.
{{ foreach $field in $wsForm.loadType("contact").fields }}
   {{ foreach $key in sort(keys($field)) }}
      {{= $key }}: {{= $field[$key] }} 
   {{ /foreach }}
{{ /foreach }} 
Die Ausgabe könnte dann wie folgt aussehen:
[
  {
    "defaultValue": "",
    "label": "Vorname",
    "name": "firstName",
    "required": false,
    "validations": [
      { "type": "formCheck", "name": "minlen" },
      { "type": "formCheck", "name": "maxlen" }
    ],
    "value": "",
    "visible": true
  },
  {
    "defaultValue": "",
    "label": "Nachname",
    "name": "lastName",
    "required": false,
    "validations": [
      { "type": "formCheck", "name": "minlen" },
      { "type": "formCheck", "name": "maxlen" }
    ],
    "value": "",
    "visible": true
  },
  {
    "defaultValue": "",
    "label": "Betreff",
    "name": "subject",
    "required": true,
    "validations": [
      { "type": "formCheck", "name": "maxlen" }
    ],
    "value": "",
    "visible": true
  },
  {
    "defaultValue": "",
    "label": "Kundennummer",
    "name": "customerNumber",
    "required": false,
    "validations": [
      { "type": "formCheck", "name": "maxlen" }
    ],
    "value": "",
    "visible": true
  },
  {
    "defaultValue": "",
    "label": "Text",
    "name": "text",
    "required": true,
    "validations": [
      { "type": "formCheck", "name": "minlen" },
      { "type": "formCheck", "name": "maxlen" }
    ],
    "value": "",
    "visible": true
  }
]

Funktion - load

Die Funktion $wsForm.load() wird verwendet, um auf die übermittelten Daten eines abgeschickten Formulars zuzugreifen. Dies kann beispielsweise genutzt werden, um dem Nutzer die übermittelten Informationen im Frontend oder per E-Mail anzuzeigen. In diesem Beispiel wird überprüft, ob das Formular erfolgreich abgesendet wurde und lädt die Daten des Inquirys. Dies erfolgt folgendermaßen (kommentiert, damit die Ausgabe nicht direkt im Frontend angezeigt wird):
{{ var $action = $wsActions.create('InquirySend') }}
{{ if $action.success }}
    
{{ /if }}
Die Ausgabe in der Developer-Konsole des Browsers könnte dann wie folgt sehen:
{
  "createdAt": "2025-04-14T06:43:57Z",
  "form": {
    "customerNumber": {
      "label": "Kundennummer",
      "value": "10011"
    },
    "firstName": {
      "label": "Vorname",
      "value": "VX"
    },
    "lastName": {
      "label": "Nachname",
      "value": "Käufer"
    },
    "subject": {
      "label": "Betreff",
      "value": "Test-Anfrage"
    },
    "text": {
      "label": "Text",
      "value": "Bitte um weitere Infos"
    }
  },
  "formId": "contact",
  "id": "52ad06427c68738c",
  "submitter": {
    "email": "vx-kauefer@beispiel.de",
    "ipAddress": "95.90.217.XXX",
    "sessionId": "c5a37018627bf18e2f0b151ee5fa19b77b1ed64794fa710b45e17613460ba60a"
  }
}

Beispiel: Daten im Frontend anzeigen

In diesem Beispiel werden die Daten eines abgesendeten Formulars mittels der Funktion $wsForm.load() geladen und angezeigt.
{{ var $action = $wsActions.create('InquirySend') }}
{{ if $action.success }}
   {{ var $inquiry = $wsForm.load($action.successInfo.inquiryId) }}
   Danke für Ihre Anfrage.
   Hier Ihre Daten:
   Ihre E-Mail Adresse:  {{= $inquiry.submitter.email }}
   Ihre IP Adresse:  {{= $inquiry.submitter.ipAddress }}
   Anfrage ID:  {{= $inquiry.id }}
   Anfragetyp: {{= $inquiry.formId }}
   Vorname:  {{= $inquiry.form.firstName.value }}
   Nachname:  {{= $inquiry.form.lastName.value }}
   Ihre Kundennummer:  {{= $inquiry.form.customerNumber.value }}
   Betreff:  {{= $inquiry.form.subject.value }}
   Ihre Nachricht:  {{= $inquiry.form.text.value }}
{{ /if }}
Weitere Beispiele für das Anzeigen und Laden von Formulardaten finden Sie hier:
Praxisbeispiele Formulare