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 $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
VariableTypBeschreibung
currentLinesintAktuelle Anzahl der angezeigten Eingabezeilen.
itemsarrayListe der eingegebenen Bestellpositionen.
idstringArtikelnummer der Bestellposition.
quantityintMenge der Bestellposition.
validbooltrue 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\[wsDirectOrder.items\[i].id

Gibt die Artikelnummer der Bestellposition aus.
Artikelnummer: {{= $wsDirectOrder.items[0].id }}

wsDirectOrder.items\[wsDirectOrder.items\[i].quantity

Gibt die Menge der Bestellposition aus.
Menge: {{= $wsDirectOrder.items[0].quantity }}

wsDirectOrder.items\[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>