X-Sitter kann direkt mit der Datenbank einer JTL-Wawi (Microsoft SQL Server) arbeiten. Die Verbindung wird in zwei Richtungen genutzt:

- **JTL als Ziel:** Aufträge aus deinen Verkaufskanälen und Marktplätzen werden an den JTL-Auftragsimport übergeben. Trackingnummern werden aus den JTL-Lieferscheinen und -Versänden zurückgelesen und an den Verkaufskanal gemeldet.
- **JTL als Quelle:** Aufträge, Artikel, Kategorien, Bilder, Preise und Bestände werden aus einer JTL-Wawi nach X-Sitter übernommen. Bestand aus dem X-Sitter-Lager kann nach JTL zurückgeschrieben werden.

Diese Seite zeigt, was du selbst einrichtest. Die ausführlichen JTL-Einstellungen (Plattformen, Auftragsimport, Preisgruppen) stehen unter [JTL-Einstellungen](/jtl/jtl-settings.md).

![Screenshot: Administration › Jobs & Verbindungen, Reiter „Verbindungen“ mit einer Verbindung vom Typ JTL in der Liste](/jtl/images/jtl-connection-overview.png)

## Bevor du startest

- Das JTL-Modul muss für deine Firma aktiv sein. Wende dich an den X-Sitter-Support, um es freizuschalten.
- Der SQL-Server deiner JTL-Wawi muss aus dem Internet erreichbar sein. Du brauchst: Host, Port, Instanz, Datenbankbenutzer, Passwort, Datenbankname und die JTL-Version. Diese Angaben bekommst du von deinem JTL-Administrator oder IT-Dienstleister.
- Um Jobs und Verbindungen zu verwalten, brauchst du Zugriff auf **Administration › Jobs & Verbindungen**. Siehe [Jobs & Verbindungen](/administration/jobs-and-connections.md). Mandanten können diese Maske erst nutzen, wenn ihr Logistiker sie freigegeben hat.
- Notiere dir die genauen Namen der Versandarten und Zahlarten in deiner JTL-Wawi. Sie müssen Zeichen für Zeichen übereinstimmen.

## Schritt für Schritt

### 1. SQL-Verbindung anlegen

1. Öffne **Administration › Jobs & Verbindungen** und wechsle zu **Verbindungen**.
2. Klicke auf **Neue Verbindung**.
3. Wähle die **Firma**, zu der die Verbindung gehört – deine eigene Firma oder einen deiner Mandanten.
4. Wähle als **Typ** **JTL**. Das Formular für die SQL-Zugangsdaten erscheint.
5. Fülle die Zugangsdaten aus (siehe Tabelle unten) und optional eine **Bemerkung**.
6. Optional: Wähle unter **Teilen mit** eine andere Firma. Diese Firma kann die Verbindung dann in ihren eigenen Jobs auswählen, ohne die Zugangsdaten zu sehen.
7. Klicke auf **Speichern**.

![Screenshot: Formular „Neue Verbindung“ mit gewähltem Typ JTL und den SQL-Zugangsfeldern Host, Port, Instanz, Benutzer, Passwort, Datenbank Name und JTL Version](/jtl/images/jtl-connection-new-connection.png)

Sobald für eine Firma eine JTL-Verbindung besteht, können ihre Benutzer die Zugangsdaten auch selbst unter **Firmen Einstellungen › JTL › SQL - Verbindung** pflegen, siehe [JTL-Einstellungen](/jtl/jtl-settings.md).

### 2. Plattformen und Auftragsimport einrichten

Ordne deine Verkaufskanäle JTL-Plattformen zu und wähle, welche JTL-Plattformen importiert werden. Siehe [JTL-Einstellungen](/jtl/jtl-settings.md).

### 3. Jobs anlegen und aktivieren

1. Öffne unter **Administration › Jobs & Verbindungen** die Liste **Jobs** und wähle die Firma.
2. Lege den JTL-Job an, den du brauchst (zum Beispiel „Bestellungen an JTL senden“, „Tracking-Id aus einer JTL holen“, „Bestellungen holen“, „Produkte aus JTL holen“, „Bestände setzen“).
3. Öffne den Job, wähle die JTL-Verbindung und fülle die Job-Felder aus.
4. Schalte den **Status** ein und speichere.

Wird ein Job, den du brauchst, in der Liste nicht angeboten, wende dich an den X-Sitter-Support.

![Screenshot: Job-Maske eines Jobs „Bestellungen an JTL senden“ mit der Verbindungsauswahl und dem Block „JTL-Daten“](/jtl/images/jtl-connection-job-mask.png)

### 4. Tracking-Rückmeldung aktivieren

Aktiviere für jeden Verkaufskanal, der Aufträge an JTL übergibt, auch den passenden Job „Tracking-Id aus einer JTL holen“ und wähle dort die JTL-Verbindung. Erst dann werden Trackingnummern an den Verkaufskanal zurückgemeldet.

## Felder und Optionen

### SQL-Zugangsdaten

| Feld | Bedeutung |
|---|---|
| **Host** / **Port** / **Instanz** | Adresse des SQL-Servers, sein Port und die SQL-Server-Instanz der JTL-Wawi |
| **Benutzer** | SQL-Datenbankbenutzer |
| **Passwort** | Passwort des Datenbankbenutzers |
| **Datenbank Name** | Name der JTL-Datenbank, meist `eazybusiness` |
| **JTL Version** | Version deiner JTL-Wawi |
| **kBenutzer** | JTL-Benutzer, der als Bearbeiter importierter Aufträge eingetragen wird. Einfacher unter **Auftragsimport** einzustellen, siehe [JTL-Einstellungen](/jtl/jtl-settings.md) |
| **kWarenlager** | Interne Nummer des JTL-Lagers. Den Wert nennt dir dein JTL-Administrator |
| **nPlattform** | JTL-Plattformen, deren Aufträge importiert werden. Einfacher unter **Auftragsimport** einzustellen |

### Block „JTL-Daten“ in den Jobs, die Aufträge an JTL senden

Alle Jobs, die Aufträge aus einem Verkaufskanal an JTL übergeben, haben diesen Block gemeinsam:

| Feld | Bedeutung |
|---|---|
| Verbindung | Welche JTL-Verbindung die Aufträge empfängt |
| **Adress-Daten für die JTL** | Nur ausfüllen, wenn alle Aufträge dieser Firma unter einem JTL-Kunden zusammengefasst werden sollen: Adress-ID und Firmen-ID in der Wawi, Firmenname, Anrede, Name, Adresse, Land |
| **JTL - Versandart** | Versandart in JTL. Muss genau mit dem Namen in JTL übereinstimmen |
| **JTL - Zahlart** | Zahlart in JTL, muss in JTL vorhanden sein |
| **Versandkostenfrei möglich?** | Ob Aufträge ohne Versandkosten übertragen werden dürfen |
| **Produktpreise übermitteln** | Ob Positionspreise an JTL übertragen werden |
| **Kommentar** | Text, der mit jedem Auftrag übertragen wird |
| **Plattform Id** | JTL-Plattform, der die Aufträge zugeordnet werden |
| **Nummern Prefix** | Präfix vor der Auftragsnummer in JTL |

![Screenshot: Der Block „JTL-Daten“ eines Jobs mit Versandart, Zahlart und den Adress-Daten für einen JTL-Kunden](/jtl/images/jtl-connection-jtl-data-block.png)

### Wichtige Felder in den anderen JTL-Jobs

| Job (Zweck) | Wichtige Felder |
|---|---|
| Aufträge aus JTL importieren | **Ab welchem Zeitpunkt importieren**, Status nach dem Import, Produkttyp, **Nummer für Lieferant überschreiben**, **Import Weg** (nach Plattformen im JTL-Menü oder nach Lieferant) |
| Lieferscheine in JTL erstellen | JTL des Logistikers, **Verarbeitungsebene** (Bestellung oder Produkt), Status nach dem Lieferschein, **Versanddienstleister überschreiben** |
| Tracking für JTL-Aufträge | JTL-Verbindung des Logistikers, **Tracking Carrier überschreiben**, Verarbeitungsebene |
| Bestand in einer anderen JTL prüfen | Welches JTL-Feld geprüft wird (Lieferantennummer oder Artikelnummer), Status mit und ohne Bestand |
| JTL-Workflow starten | Name des JTL-Workflows, Typ (Bestellung oder Lieferung), Status, der ihn auslöst |
| Artikel aus JTL importieren | JTL-Kategorien (eine je Zeile), Kategoriebaum, Filter nach Attribut, inaktive Produkte importieren, deaktivierte Produkte löschen, Bestand übernehmen |
| Bestand aus der JTL des Logistikers | Kategoriename in der Wawi, Kategoriebaum, Artikel mappen auf |
| Bestand in die eigene JTL schreiben | **Initial Abgleich** (wird nach dem ersten Lauf wieder ausgeschaltet), **In Lieferantenlager buchen**, JTL-Wawi-Lager (leer lassen für das Standardlager „1“) |

## Was synchronisiert wird

| Daten | Richtung | Wie oft |
|---|---|---|
| Aufträge aus deinen Verkaufskanälen in den JTL-Auftragsimport | X-Sitter → JTL | alle paar Minuten |
| Trackingnummer, Versandart, Gewicht, Versanddatum, Stornierung | JTL → X-Sitter → Verkaufskanal | tagsüber alle paar Minuten |
| Aufträge von JTL-Plattformen | JTL → X-Sitter | alle paar Minuten |
| Aufträge an eine andere JTL (z. B. die des Logistikers) und Bestandsprüfung dort | JTL → JTL | alle paar Minuten |
| Lieferscheine anlegen und Aufträge in JTL abschließen | X-Sitter → JTL | während der Arbeitszeit alle paar Minuten |
| JTL-Workflows starten | X-Sitter → JTL | während der Arbeitszeit alle paar Minuten |
| Bestand aus der JTL des Logistikers | JTL → X-Sitter-Lager | jede Minute |
| Lagerbestand in die eigene JTL | X-Sitter → JTL | alle paar Minuten |
| Artikel, Kategorien, Merkmale, Preise, Bilder, Lagerplätze, Hersteller | JTL → X-Sitter | meist jede Minute |

## Status

Ein Auftrag aus einem Verkaufskanal, der über JTL läuft, durchläuft typischerweise diese Status (siehe [Auftragsstatus](/orders/order-statuses.md)):

1. **Offen** – der Auftrag wurde importiert.
2. **im Versand** – der Auftrag wurde an JTL übergeben.
3. Die Trackingnummer wird aus JTL gelesen.
4. **Versendet** – die Trackingnummer wurde an den Verkaufskanal gemeldet.

Weitere Status: **Lager Prüfung** und **Lager geprüft**, wenn der Bestand in einer anderen JTL geprüft wird, und **Fehler**.

JTL-Aufträge erscheinen in der normalen [Auftragsübersicht](/orders/order-overview.md).

![Screenshot: Auftragsübersicht, gefiltert auf an JTL übergebene Aufträge, mit dem Status „im Versand“ und einer Trackingnummer](/jtl/images/jtl-connection-order-overview.png)

## Gut zu wissen / Fehlerbehebung

| Meldung / Symptom | Ursache | Lösung |
|---|---|---|
| Aufträge kommen nicht in JTL an, nichts passiert | Im Job ist keine Verbindung gewählt | Öffne den Job und wähle die JTL-Verbindung |
| **Es wurde keine passende JTL-Datenbank Verbindung gefunden!** | Die Firma hat keine JTL-Verbindung | Lege die SQL-Verbindung an (Schritt 1) |
| Aufträge werden nicht übertragen | Keine Aufträge in dem Status, den der Job überträgt | Prüfe den im Job eingestellten Status |
| Der Auftrag hängt im JTL-XML-Import | Die Versandart oder Zahlart existiert in JTL nicht | Trage beide genau so ein, wie sie in JTL heißen |
| Kein Tracking in X-Sitter | Die externe Auftragsnummer in JTL passt nicht zu der Nummer, die X-Sitter erwartet, oder in JTL wurde kein Versand gebucht | Sorge dafür, dass die übertragene und die abgefragte Auftragsnummer in beiden Jobs dieselbe Einstellung verwenden; buche den Versand in JTL |
| **Keine Daten hinterlegt...** auf einer JTL-WaWi-Seite | Die Firma hat keine JTL-Verbindung | Lege die SQL-Verbindung an |
| Der SQL-Server ist nicht erreichbar | Host, Port, Instanz oder Zugangsdaten sind falsch, oder der Server ist von außen nicht erreichbar | Prüfe die Zugangsdaten mit deinem JTL-Administrator |
