> ## 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.

# DirectOrder

> DirectOrder-Aktionen für die Direktbestellung: Produkte per Artikelnummer in eine Bestellliste eintragen, ändern und in den Warenkorb übernehmen.

In diesem Abschnitt werden die verfügbaren Aktionen im Bereich Direktbestellung beschrieben. Mit diesen Aktionen können Produkte pro Artikelnummer direkt in eine Bestellliste eingetragen, aktualisiert und in den Warenkorb übernommen werden.

***

## Aktionen im Überblick

| **Aktion**               | **Beschreibung**                                                 |
| ------------------------ | ---------------------------------------------------------------- |
| `DirectOrderAdd`         | Fügt ein Produkt per Artikelnummer zur Direktbestellliste hinzu. |
| `DirectOrderUpdate`      | Aktualisiert die Menge eines Produkts in der Direktbestellliste. |
| `DirectOrderDelete`      | Entfernt ein Produkt aus der Direktbestellliste.                 |
| `DirectOrderAddLines`    | Fügt eine weitere Eingabezeile zur Direktbestellliste hinzu.     |
| `DirectOrderDeleteLines` | Entfernt die letzte Eingabezeile aus der Direktbestellliste.     |

***

## Aktionen

### DirectOrderAdd

Mit dieser Aktion wird ein Produkt per Artikelnummer zur Direktbestellliste hinzugefügt. Nach erfolgreicher Ausführung wird das Produkt mit seinen Informationen in der Liste angezeigt.

**Anwendungsbeispiel**\
Nutzbar auf der Direktbestellseite, auf der Kunden Produkte schnell per Artikelnummer suchen und zur Bestellliste hinzufügen können, ohne die Produktdetailseite aufrufen zu müssen.

**Parameter**

| **Name** | **Beschreibung**                                             |
| -------- | ------------------------------------------------------------ |
| `id`     | Die Artikelnummer des Produkts, das hinzugefügt werden soll. |

**Fehlercodes**

| **Fehlercode**           | **Beschreibung**                          |
| ------------------------ | ----------------------------------------- |
| `errorsByField.id`       | Fehler bei der Eingabe der Artikelnummer. |
| `errorsByField.quantity` | Fehler bei der Eingabe der Menge.         |

**Zugehörige Module, Variablen & Methoden**

* [\$wsDirectOrder](/frontend/referenz/module/wsdirectorder)
* [\$wsDirectOrder.items](/frontend/referenz/module/wsdirectorder#\$wsdirectorder-items)
* [\$wsDirectOrders.currentLines](/frontend/referenz/module/wsdirectorder#\$wsdirectorder-currentlines)

**Beispiel** das zeigt, wie ein Produkt über ein Artikelnummer-Eingabefeld zur Direktbestellliste hinzugefügt wird.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myActionDirectOrderAdd = $wsActions.create("DirectOrderAdd", tag=string($myDirectOrderProduct)) }}
<form method="post" action="{{= $wsViews.current.url() }}">
    <input type="hidden" name="wscsrf" value="{{= $myActionDirectOrderAdd.csrf }}">
    <input type="text" name="id" value="{{= $wsDirectOrder.items[$myDirectOrderProduct].id | ifNull('') }}">
    <button type="submit" name="wsact" value="{{= $myActionDirectOrderAdd.id }}">Produkt suchen.</button>
</form>
```

***

### DirectOrderUpdate

Mit dieser Aktion wird die Menge eines Produkts in der Direktbestellliste aktualisiert.

**Anwendungsbeispiel**\
Nutzbar auf der Direktbestellseite, wenn ein Kunde die Menge eines bereits eingetragenen Produkts anpassen möchte.

**Parameter**

| **Name**   | **Beschreibung**             |
| ---------- | ---------------------------- |
| `quantity` | Die neue Menge des Produkts. |

**Fehlercodes**

| **Fehlercode**           | **Beschreibung**                  |
| ------------------------ | --------------------------------- |
| `errorsByField.quantity` | Fehler bei der Eingabe der Menge. |

**Zugehörige Module, Variablen & Methoden**

* [\$wsDirectOrder](/frontend/referenz/module/wsdirectorder)
* [\$wsDirectOrder.items](/frontend/referenz/module/wsdirectorder#\$wsdirectorder-items)

**Beispiel** das zeigt, wie die Menge eines Produkts in der Direktbestellliste über ein Eingabefeld aktualisiert wird.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myActionDirectOrderUpdate = $wsActions.create("DirectOrderUpdate", tag=string($myDirectOrderProduct)) }}
<input type="text" name="quantity" value="{{= $wsDirectOrder.items[$myDirectOrderProduct].quantity | ifNull('1') }}">
<button type="submit" name="wsact" value="{{= $myActionDirectOrderUpdate.id }}">Produkt aktualisieren.</button>
```

***

### DirectOrderDelete

Mit dieser Aktion wird ein Produkt aus der Direktbestellliste entfernt.

**Anwendungsbeispiel**\
Nutzbar auf der Direktbestellseite, wenn ein Kunde ein Produkt aus der Bestellliste entfernen möchte.

**Parameter**

| **Name** | **Beschreibung**                                          |
| -------- | --------------------------------------------------------- |
| `id`     | Die Artikelnummer des Produkts, das entfernt werden soll. |

**Fehlercodes**

| **Fehlercode**     | **Beschreibung**                          |
| ------------------ | ----------------------------------------- |
| `errorsByField.id` | Fehler bei der Eingabe der Artikelnummer. |

**Zugehörige Module, Variablen & Methoden**

* [\$wsDirectOrder](/frontend/referenz/module/wsdirectorder)
* [\$wsDirectOrder.items](/frontend/referenz/module/wsdirectorder#\$wsdirectorder-items)

**Beispiel** das zeigt, wie ein Produkt über einen Button aus der Direktbestellliste entfernt wird.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myActionDirectOrderDelete = $wsActions.create("DirectOrderDelete", tag=string($myDirectOrderProduct)) }}
<button type="submit" name="wsact" value="{{= $myActionDirectOrderDelete.id }}">Produkt entfernen.</button>
```

***

### DirectOrderAddLines

Mit dieser Aktion wird eine weitere Eingabezeile zur Direktbestellliste hinzugefügt, sodass der Kunde mehr Produkte auf einmal eintragen kann.

**Anwendungsbeispiel**\
Nutzbar auf der Direktbestellseite, wenn ein Kunde mehr Produkte eintragen möchte als aktuell Zeilen vorhanden sind.

**Zugehörige Module, Variablen & Methoden**

* [\$wsDirectOrder](/frontend/referenz/aktionen/directorder)
* [\$wsDirectOrders.currentLines](/frontend/referenz/module/wsdirectorder#\$wsdirectorder-currentlines)

**Beispiel** das zeigt, wie über einen Button eine neue Eingabezeile zur Direktbestellliste hinzugefügt wird.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myActionDirectOrderAddLines = $wsActions.create("DirectOrderAddLines") }}
<form method="post" action="{{= $wsViews.current.url() }}">
    <input type="hidden" name="wsact" value="{{= $myActionDirectOrderAddLines.id }}">
    <input type="hidden" name="wscsrf" value="{{= $myActionDirectOrderAddLines.csrf }}">
    <button type="submit">Zeile hinzufügen.</button>
</form>
```

***

### DirectOrderDeleteLines

Mit dieser Aktion wird die letzte Eingabezeile aus der Direktbestellliste entfernt. Die Aktion ist nur verfügbar, wenn mehr als fünf Zeilen vorhanden sind.

**Anwendungsbeispiel**\
Nutzbar auf der Direktbestellseite, wenn ein Kunde zu viele Zeilen hinzugefügt hat und diese wieder entfernen möchte.

**Zugehörige Module, Variablen & Methoden**

* [\$wsDirectOrder](/frontend/referenz/aktionen/directorder)
* [\$wsDirectOrders.currentLines](/frontend/referenz/module/wsdirectorder#\$wsdirectorder-currentlines)

**Beispiel** das zeigt, wie die letzte Eingabezeile über einen Button entfernt wird, sofern mehr als fünf Zeilen vorhanden sind.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ if $wsDirectOrder.currentLines > 5 }}
    {{ var $myActionDirectOrderDeleteLines = $wsActions.create("DirectOrderDeleteLines") }}
    <form method="post" action="{{= $wsViews.current.url() }}">
        <input type="hidden" name="wsact" value="{{= $myActionDirectOrderDeleteLines.id }}">
        <input type="hidden" name="wscsrf" value="{{= $myActionDirectOrderDeleteLines.csrf }}">
        <button type="submit">Zeile entfernen.</button>
    </form>
{{ /if }}
```
