Auftrag anlegen
jtl_auftrag_anlegen
Was das Tool macht
Legt einen neuen Auftrag für einen bestehenden Kunden an - mit Vorschau und Backup-Eintrag. Pflicht sind Kundennummer und mindestens eine Position (Artikel per SKU oder freie Position mit Bezeichnung). Adressen, Zahlungsart und Zahlungsziel übernimmt JTL vom Kunden, sofern nichts anderes angegeben ist; ohne Preis gilt der Preis des Kunden laut JTL. Optional: Rückhaltegrund (der Auftrag ist dann sofort zurückgehalten), Versandart, Versandkosten, Zahlungsart, Zahlungsziel, Skonto, externe Nummer, Kommentare, Liefertermin, abweichende Rechnungs- und Lieferadresse. Nutze dieses Tool für 'Lege für Kunde 4005 einen Auftrag über 10x SKU X an und halte ihn zurück'. Ein angelegter Auftrag lässt sich nicht löschen, nur stornieren (jtl_auftrag_stornieren). Vorschau zuerst: Ohne dryRun=false wird nichts geändert. Zeige dem Nutzer Vorher/Nachher aus der Vorschau, hole seine Zustimmung ein und rufe dann mit dryRun=false und der bestaetigung erneut auf.
Eingaben
| kundennummerPflicht | Kundennummer (exakt) |
| positionenPflicht | Positionen in der gewünschten Reihenfolge |
| rueckhaltegrundoptional | Rückhaltegrund (Name wie in JTL) - der Auftrag wird damit zurückgehalten angelegt |
| versandartoptional | Versandart - Name wie in JTL (kein Id); weglassen = unverändert |
| versandkostenNettooptional | Versandkosten netto - legt eine Versandposition an - weglassen = unverändert; Komma oder Punkt als Dezimaltrenner |
| versandkostenBezeichnungoptional | Bezeichnung der Versandposition - Default: Name der Versandart |
| zahlungsartoptional | Zahlungsart - Name wie in JTL (kein Id); weglassen = unverändert |
| zahlungszielTageoptional | Zahlungsziel in Tagen - weglassen = unverändert |
| skontoProzentoptional | Skonto in Prozent - weglassen = unverändert; Komma oder Punkt als Dezimaltrenner |
| skontoTageoptional | Skontofrist in Tagen - weglassen = unverändert |
| externeNummeroptional | Externe Auftragsnummer, z.B. Bestellnummer des Kunden |
| kommentaroptional | Interner Kommentar |
| kundenkommentaroptional | Kundenkommentar |
| lieferterminoptional | Geplanter Liefertermin als Datum JJJJ-MM-TT - weglassen = unverändert, null = leeren |
| versandprioritaetoptional | Versandpriorität - weglassen = unverändert |
| rechnungsadresseoptional | Ohne Beschreibung |
| lieferadresseoptional | Ohne Beschreibung |
| spracheIsooptional | Sprache des Auftrags als ISO-Code - Default: Sprache des Kunden |
| firmaoptional | JTL-Firma (Mandant), falls mehrere - sonst die erste - Name wie in JTL (kein Id); weglassen = unverändert |
| workflowsAuslassenoptional | true = automatische JTL-Workflows für diese Änderung nicht auslösen (Default false). |
| dryRunoptional | true (Default) = nur Vorschau, in JTL wird nichts geändert. false = wirklich schreiben - nur zusammen mit der bestaetigung aus der Vorschau und nach ausdrücklicher Zustimmung des Nutzers. |
| bestaetigungoptional | Bestätigungs-Token aus der Vorschau (Dry-Run). Pflicht bei dryRun=false. |
Die Eingaben füllt die KI aus deiner Frage. Du musst dir keine Parameternamen merken.
So wird gerechnet
Der Rechenweg in der Reihenfolge, in der das Tool arbeitet: Abruf, Filter, Berechnung, Ausgabe. Aus dem Tool-Code abgeleitet, damit nachvollziehbar ist, warum eine Zahl so ist. Dieselbe Auskunft liefert das Tool kiuser_tool_logik direkt im KI-Chat.
- 1Prüft zuerst die Rechte: Server erlaubt Schreiben, JTL-Verbindung für Schreibzugriff freigeschaltet, AVV in aktueller Fassung angenommen, Add-on „Schreiben“ aktiv. Fehlt eines, endet der Aufruf mit dem Grund.
- 2Findet den Kunden exakt per Kundennummer und liest ihn vollständig; die JTL-Firma ist die genannte oder die erste.
- 3Versandart, Zahlungsart und Rückhaltegrund werden per Name gegen die JTL-Listen aufgelöst (exakt oder eindeutiger Namensanfang). Ohne Rückhaltegrund warnt die Vorschau und nennt die verfügbaren Gründe.
- 4Jede Artikelposition wird exakt per SKU gefunden; inaktive Artikel und doppelte SKUs erzeugen Warnungen. Freie Positionen (ohne SKU) brauchen Bezeichnung, Nettopreis und Steuersatz.
- 5Gibt es zur externen Nummer bereits einen nicht stornierten Auftrag, warnt die Vorschau vor einer Dublette.
- 6Ohne Bestätigung endet der Aufruf als Vorschau mit einmaligem Token (15 Minuten gültig, an Eingaben und Ist-Stand gebunden); der scharfe Aufruf löst ihn ein, verbraucht die Limits und legt das Backup an.
- 7Schritt 1: POST salesOrders (REST v1.3) legt den Kopf an - mit Rückhaltegrund, falls genannt. Adressen, Zahlungsart, Zahlungsziel und Skonto übernimmt JTL vom Kunden, soweit nicht angegeben.
- 8Schritt 2: POST salesOrders/{id}/lineitems legt alle Positionen in einem Aufruf an. JTL setzt dabei Name und Steuersatz der Artikel und - ohne Preisangabe - den Preis des Kunden.
- 9Scheitert Schritt 2, wird der leere Auftrag automatisch storniert und der Aufruf endet mit der Fehlermeldung von JTL.
- 10Schritt 3 (nur mit versandkostenNetto): Die Versandposition entsteht über PATCH /v2/sales-orders/{guid}. Weil dieser Aufruf die Positionsliste ersetzt, gehen alle eben angelegten Positionen mit ihrer Id mit; stimmt ihre Anzahl nicht, wird nichts geschrieben. Steuersatz der Versandkosten = höchster Satz der Warenpositionen.
- 11Danach wird der Auftrag samt Positionen gelesen und mit der Erwartung verglichen; Werte, die JTL selbst festlegt (Nummer, Kundenpreise, Steuersätze, Kundenadressen), gelten nicht als Abweichung. Eine fehlende Versandposition erscheint als Abweichung.
Annahmen und Grenzen
- Ein angelegter Auftrag lässt sich per API nicht löschen - Rückgängig nur per Storno.
- JTL berechnet Versandkosten bei per API angelegten Aufträgen nicht selbst; ohne versandkostenNetto entsteht keine Versandposition.
- Gutscheine, Stücklisten-, Konfigurations- und Variationspositionen sowie Auftrags-Freifelder legt das Tool nicht an (Freifelder: jtl_auftrag_freifeld_aendern).
- Zahlungen, Rechnungen und Lieferscheine entstehen nicht; ob JTL-Workflows laufen, steuert workflowsAuslassen.
- In der Einführungsphase gelten 3 Schreibvorgänge je Entität und Tag; das Limit entfällt, sobald der Admin alle drei Entitäten freigegeben hat. Vorschauen zählen nicht.
- Das Änderungsprotokoll wird 12 Monate aufbewahrt und danach automatisch gelöscht.
So sieht eine Antwort aus
Vorschau für einen neuen Auftrag – noch nichts angelegt: Kunde 4005, Firma 4smarts GmbH. Rückhaltegrund „B2B Auftrag. Manuell freigeben“, Versandart UPS, Versandkosten 10,00 € netto. • Position 1: 10 × SKU 541908, Preis des Kunden laut JTL • Position 2: 20 × SKU 464448 zu 4,99 € netto Adressen, Zahlungsart und Zahlungsziel kommen vom Kunden. Ein angelegter Auftrag lässt sich nicht löschen, nur stornieren. Soll ich den Auftrag anlegen?
In wenigen Minuten die erste Antwort aus deinen JTL-Daten.
Sieben Tage kostenlos testen, ohne Kreditkarte und ohne Kündigungsfrist.