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 $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.
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 |
|---|
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 befindet sich im Template module/directOrder.htm und sollte z.B. im Footer verlinkt werden.
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 eingegebene 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 Fehlermeldungen 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 Fehlermeldungen 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 }}
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