Auftrag anlegen

jtl_auftrag_anlegen

ArtikelAufträgeKundenschreibend, mit Vorschau und Backup

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

kundennummerPflichtKundennummer (exakt)
positionenPflichtPositionen in der gewünschten Reihenfolge
rueckhaltegrundoptionalRückhaltegrund (Name wie in JTL) - der Auftrag wird damit zurückgehalten angelegt
versandartoptionalVersandart - Name wie in JTL (kein Id); weglassen = unverändert
versandkostenNettooptionalVersandkosten netto - legt eine Versandposition an - weglassen = unverändert; Komma oder Punkt als Dezimaltrenner
versandkostenBezeichnungoptionalBezeichnung der Versandposition - Default: Name der Versandart
zahlungsartoptionalZahlungsart - Name wie in JTL (kein Id); weglassen = unverändert
zahlungszielTageoptionalZahlungsziel in Tagen - weglassen = unverändert
skontoProzentoptionalSkonto in Prozent - weglassen = unverändert; Komma oder Punkt als Dezimaltrenner
skontoTageoptionalSkontofrist in Tagen - weglassen = unverändert
externeNummeroptionalExterne Auftragsnummer, z.B. Bestellnummer des Kunden
kommentaroptionalInterner Kommentar
kundenkommentaroptionalKundenkommentar
lieferterminoptionalGeplanter Liefertermin als Datum JJJJ-MM-TT - weglassen = unverändert, null = leeren
versandprioritaetoptionalVersandpriorität - weglassen = unverändert
rechnungsadresseoptionalOhne Beschreibung
lieferadresseoptionalOhne Beschreibung
spracheIsooptionalSprache des Auftrags als ISO-Code - Default: Sprache des Kunden
firmaoptionalJTL-Firma (Mandant), falls mehrere - sonst die erste - Name wie in JTL (kein Id); weglassen = unverändert
workflowsAuslassenoptionaltrue = automatische JTL-Workflows für diese Änderung nicht auslösen (Default false).
dryRunoptionaltrue (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.
bestaetigungoptionalBestä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.

  1. 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.
  2. 2Findet den Kunden exakt per Kundennummer und liest ihn vollständig; die JTL-Firma ist die genannte oder die erste.
  3. 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.
  4. 4Jede Artikelposition wird exakt per SKU gefunden; inaktive Artikel und doppelte SKUs erzeugen Warnungen. Freie Positionen (ohne SKU) brauchen Bezeichnung, Nettopreis und Steuersatz.
  5. 5Gibt es zur externen Nummer bereits einen nicht stornierten Auftrag, warnt die Vorschau vor einer Dublette.
  6. 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.
  7. 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.
  8. 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.
  9. 9Scheitert Schritt 2, wird der leere Auftrag automatisch storniert und der Aufruf endet mit der Fehlermeldung von JTL.
  10. 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.
  11. 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

Claude · Auftrag anlegen

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?

Erfundene Musterdaten. Im Betrieb dieselbe Struktur mit deinen JTL-Daten.

In wenigen Minuten die erste Antwort aus deinen JTL-Daten.

Sieben Tage kostenlos testen, ohne Kreditkarte und ohne Kündigungsfrist.