$wsDirectOrder

$wsDirectOrder

Mit dem $wsDirectOrder Modul können Sie auf die Daten einer Direktbestellung zugreifen. Bei der Direktbestellung kann der Käufer durch die Eingabe von Produktnummern ein oder mehrere Produkte direkt in den Warenkorb legen.


Inhaltsverzeichnis

 


Modulübersicht


Beispiel / Ausschnitt über $wsDirectOrder

{{= $wsDirectOrder | json }}


JSON-Ausgabe

{ "currentLines": 5, "items": [ { "valid": true/false, "quantity": 1, "id": "123-45678" }, { "valid": true/false, "quantity": 1, "id": "910-111213" } ] }


Variablen in der Übersicht

Variable

Typ

Beschreibung

Variable

Typ

Beschreibung

currentLines

int

Aktuelle Anzahl der angezeigten Eingabezeilen.

items

array

Liste der eingegebenen Bestellpositionen.

id

string

Artikelnummer der Bestellposition.

quantity

int

Menge der Bestellposition.

valid

bool

true wenn die Artikelnummer gültig ist.


Templates

Der Bestellschein kann über ein beliebiges Template und somit eine beliebige Seite im Shop zur Verfügung gestellt werden, z.B. directOrder.htm.


Variablen

$wsDirectOrder.currentLines

Gibt die aktuelle Anzahl der angezeigten Eingabezeilen aus. Die Anzahl kann über die Konfiguration festgelegt werden.

Aktuelle Zeilen: {{= $wsDirectOrder.currentLines }}

 

$wsDirectOrder.items

Gibt eine Liste der eingegebenen Bestellpositionen aus.

{{ foreach $myDirectOrderItem in $wsDirectOrder.items }} {{= $myDirectOrderItem.id }} – Menge: {{= $myDirectOrderItem.quantity }} {{ /foreach }}

 

$wsDirectOrder.items[$i].id

Gibt die Artikelnummer der Bestellposition aus.

Artikelnummer: {{= $wsDirectOrder.items[0].id }}

 

$wsDirectOrder.items[$i].quantity

Gibt die Menge der Bestellposition aus.

Menge: {{= $wsDirectOrder.items[0].quantity }}

 

$wsDirectOrder.items[$i].valid

Gibt true aus, wenn die eigegebene Artikelnummer im Shop existiert und bestellt werden kann.

{{ if $wsDirectOrder.items[0].valid }} // Artikelnummer gültig {{ else }} // Artikelnummer ungültig {{ /if }}

 


Methoden

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


Aktionen

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



Beispiele


Template erstellen

Erstellen Sie im Verzeichnis views eine neue Datei directOrder.htm

In dieser Datei werden mehrere Reihen für die jeweiligen Bestellpositionen erzeugt.

{{ extends "layouts/layout.htm" }} {{ block content_main }} <div id="wsBasketWrapper"> <h1>Direktbestellung</h1> <table class="table"> <tbody id="wsDirectOrderTableBody"> {{ foreach $cProduct in range(0, $wsDirectOrder.currentLines - 1) }} {{ var $cActionDirectOrderAdd = $wsActions.create("DirectOrderAdd", tag=string($cProduct)) }} {{ var $cActionDirectOrderDelete = $wsActions.create("DirectOrderDelete", tag=string($cProduct)) }} <tr class="wsDirectOrderRow"> <td class="wsTableCellMin"> <svg role="img" xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 512 512"><g><path d="M379.453,123.562c0,0,7.232,270.164,17.48,336.787c-164.692,52.798-282.127,0-282.127,0c10.247-66.623,19.001-339.639,19.001-339.639" fill="none" stroke="#474747" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="15"/><path d="M131.033,193.628l-30.599,64.168c-46.962-7.004-88.077-48.676-88.077-48.676l99.61-164.692l81.112-19.349l10.59,29.084c25.215,35.473,78.085,34.885,102.505-1.141l8.858-27.944l82.999,19.349l99.61,164.692c0,0-41.115,41.672-88.077,48.676l-27.741-61.85" fill="none" stroke="#474747" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="15"/></g></svg> </td> <td> <div class="row"> <div class="col-12 col-md"> <form method="POST" action="{{= $wsViews.current.url() }}"> <input type="hidden" name="wscsrf" value="{{= $cActionDirectOrderAdd.csrf }}"> <input type="hidden" name="wstarget" value="{{= $wsViews.current.url() }}"> <p>Bitte Artikelnummer eingeben</p> <div class="row"> <div class="col col-sm-auto"> <div class="form-floating"> <input type="text" name="id" value="{{= $wsDirectOrder.items[$cProduct].id | ifNull('') }}" class="wsDirectOrderInputNumber form-control" placeholder="Art.-Nr."> <label>Art.-Nr.</label> </div> </div> <div class="col-auto"> <button type="submit" name="wsact" value="{{= $cActionDirectOrderAdd.id }}" class="btn btn-primary"><svg role="img" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" viewBox="0 0 16 16" class="align-text-bottom"><path d="M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z"></path></svg></button> <button type="submit" name="wsact" value="{{= $cActionDirectOrderDelete.id }}" class="btn btn-secondary">Löschen</button> </div> </div> <label>Menge</label> <input type="text" name="quantity" value="{{= $wsDirectOrder.items[$cProduct].quantity | ifNull('') }}"> {{ foreach $item in $wsConfig.directOrder.itemNumberFields }} <div class="itemNumberFields"> {{ if $item.type == "field" }} <input type="text" name="{{= $item.name }}"> {{ elseif $item.type == "separator" }} {{= $item.sign }} {{ /if }} </div> {{ /foreach }} </form> </div> </div> </td> </tr> {{ /foreach }} </tbody> </table> </div> {{ /block }}

Fehlermeldungen

Die Fehlermeldung können entweder vor, oder innerhalb des Form Elements platziert werden.

In diesem Beispiel werden Fehlermeldung zur Eingabe der Menge eines Artikels angezeigt

{{ foreach $cProduct in range(0, $wsDirectOrder.currentLines - 1) }} {{ var $cActionDirectOrderAdd = $wsActions.create("DirectOrderAdd", tag=string($cProduct)) }} {{ var $cActionDirectOrderDelete = $wsActions.create("DirectOrderDelete", tag=string($cProduct)) }} ... {{ if $cActionDirectOrderAdd.errorsByField.quantity }} <div class="alert alert-danger"> Es sind Fehler aufgetreten: <ul> {{ foreach $err in $cActionDirectOrderAdd.errorsByField.quantity }} {{ if $err.text }} <li>{{= $err.text }}</li> {{ else }} <li>{{= $err.code }}</li> {{ /if }} {{ /foreach }} </ul> </div> {{ /if }} {{ /foreach }}

 

In diesem Beispiel werden Fehlermeldung zum hinzufügen eines Artikels angezeigt

{{ foreach $cProduct in range(0, $wsDirectOrder.currentLines - 1) }} {{ var $cActionDirectOrderAdd = $wsActions.create("DirectOrderAdd", tag=string($cProduct)) }} {{ var $cActionDirectOrderDelete = $wsActions.create("DirectOrderDelete", tag=string($cProduct)) }} ... {{ if $cActionDirectOrderAdd.errorsByField.id }} <div class="alert alert-danger"> Es sind Fehler aufgetreten: <ul> {{ foreach $err in $cActionDirectOrderAdd.errorsByField.id }} {{ if $err.text }} <li>{{= $err.text }}</li> {{ else }} <li>{{= $err.code }}</li> {{ /if }} {{ /foreach }} </ul> </div> {{ /if }} {{ /foreach }}

Seite im Footer Verlinken

Sie können in jedem Template den Link zur Direktbestellung integrieren. Dieser lautet:

<a href="{{= $wsViews.viewUrl('module/directOrder.htm')}}">Direktbestellung</a>

 


Weiterführende Links