Zum Hauptinhalt springen
Mit dem $wsDirectOrder-Modul lesen Sie den Zustand einer Direktbestellung. Bei der Direktbestellung legt der Kunde Produkte durch Eingabe ihrer Artikelnummern direkt in den Warenkorb, ohne sie einzeln im Shop zu suchen. Das Modul liefert die aktuelle Anzahl der Eingabezeilen und die bisher erfassten Positionen samt Gültigkeit. Auf dieser Seite geht es um das Lesen des Direktbestell-Zustands. Das Hinzufügen und Löschen von Positionen erfolgt über die Aktionen DirectOrderAdd / DirectOrderDelete.

Grundkonzept

Der Bestellschein ist ein Formular mit mehreren Eingabezeilen. In jede Zeile gibt der Kunde eine Artikelnummer (und eine Menge) ein. Beim Absenden prüft die Aktion DirectOrderAdd, ob die Nummer existiert, und legt das Produkt in den Warenkorb. $wsDirectOrder stellt dabei den aktuellen Zustand bereit:
  • currentLines – wie viele Eingabezeilen aktuell angezeigt werden. Der Wert stammt aus der Konfiguration ($wsConfig.directOrder: initialNumber bis maximalNumber).
  • items – die bereits erfassten Positionen, je mit id, quantity und valid.

Gültigkeit

Das Feld valid einer Position zeigt an, ob die eingegebene Artikelnummer im Shop existiert und bestellbar ist. Werten Sie es aus, um dem Kunden eine ungültige Eingabe direkt zurückzumelden.

Modulübersicht

Beispiel / Ausschnitt über $wsDirectOrder
JSON-Ausgabe
Variablen in der Übersicht Eigenschaften einer Bestellposition (items[])

Templates

Der Bestellschein liegt im Standard im Template module/directOrder.htm. Verlinken Sie ihn z. B. im Footer (siehe Beispiel).

Variablen

$wsDirectOrder.currentLines

Gibt die aktuelle Anzahl der angezeigten Eingabezeilen aus. Der Wert wird über $wsConfig.directOrder konfiguriert (initialNumber als Start, maximalNumber als Obergrenze). Nutzen Sie ihn beispielsweise, um genau so viele Zeilen zu erzeugen.

$wsDirectOrder.items

Gibt die erfassten Bestellpositionen aus. Über den Zeilenindex greifen Sie auf eine bestimmte Position zu (items[$index]).

Eigenschaften einer Bestellposition


Methoden

Für $wsDirectOrder stehen keine Methoden zur Verfügung.

Aktionen

$wsDirectOrder selbst stellt keine Aktionen bereit. Das Hinzufügen und Löschen von Positionen erfolgt über die Aktionen.

Beispiele

Bestellschein-Template

Dieses Beispiel erzeugt für jede konfigurierte Zeile (currentLines) eine Eingabereihe. range(0, currentLines - 1) liefert die Indizes 0 bis currentLines - 1. Pro Zeile werden die Aktionen DirectOrderAdd und DirectOrderDelete mit dem Zeilenindex als tag erzeugt, damit Eingaben und Fehler der richtigen Zeile zugeordnet werden. Der Filter ifNull('') setzt einen leeren Wert, falls die Zeile noch nicht erfasst wurde.
Ergebnis
Ein Bestellschein mit so vielen Eingabereihen, wie currentLines vorgibt. Bereits erfasste Zeilen haben ihre Artikelnummer und Menge vorbelegt.

Fehlermeldungen anzeigen

Die Aktion DirectOrderAdd meldet Fehler feldbezogen über errorsByField. Dieses Beispiel zeigt die Fehler zur Artikelnummer (id) und zur Menge (quantity) je Zeile.
Ergebnis
Bei fehlerhafter Eingabe (z. B. ungültige Artikelnummer oder Menge) erscheint die zugehörige Meldung in der betreffenden Zeile.
Den Link zur Direktbestellung erzeugen Sie mit viewUrl(). Den Pfad zum Template als Argument übergeben.
Ergebnis
Ein Link, der zur Direktbestell-Seite führt.