Verbinden Sie JTL-Wawi mit BISpicy POS und synchronisieren Sie Produkte, Bestand, Kunden und Bestellungen bidirektional. Die Anbindung läuft über SQL-Direkt mit BISConnect; der frühere Weg über die REST API ist stillgelegt. Kostenlos verfügbar für alle BISpicy-Nutzer.
Zuletzt aktualisiert: 14. November 2026 · Preisänderungen aus JTL stoßen die Kassen sofort an (seit BISpicy 0.17.3.4), Intervall-Auswahl und Vollabgleich wie im Kundencenter · 7. November 2026: REST API stillgelegt, nur noch SQL-Direkt · 2. November: REST API als eingeschränkt gekennzeichnet, Artikelbilder nur über SQL-Direkt · 31. Oktober: Kategorien nach Freigabe für den Kassen-Kanal
Die JTL-Wawi Integration verbindet Ihre JTL-Warenwirtschaft mit BISpicy POS. Artikelstammdaten, Lagerbestände, Kundendaten und Verkäufe werden automatisch synchronisiert, sodass beide Systeme stets auf dem aktuellen Stand sind.
| Datentyp | Beschreibung | Richtung |
|---|---|---|
| Produkte | Artikelstammdaten (Name, SKU, EAN, Preise, Steuersätze, Beschreibungen) | Bidirektional |
| Bestellungen | POS-Verkäufe werden als Aufträge (Sales Orders) in JTL angelegt | Zu JTL |
| Kunden | Kundenstammdaten (Name, Adresse, E-Mail, Telefon, USt-IdNr.) | Bidirektional |
| Bestand | Lagerbestände und Bestandsbewegungen | Bidirektional |
| Kategorien | Warengruppen und Kategoriebäume | Bidirektional |
| Version | Variante | Status |
|---|---|---|
| JTL-Wawi 1.8+ | OnPremise (lokal installiert), SQL-Direkt-Anbindung über BISConnect | Unterstützt |
| JTL-Wawi 1.9+ | OnPremise oder Cloud, REST-API-Anbindung | Unterstützt |
| JTL-Wawi < 1.8 | Alle | Nicht unterstützt |
Die Verbindung zu Ihrer lokal installierten JTL-Wawi läuft über BISConnect — den JTL-Wawi-Bridge-Desktop-Client. BISConnect bietet zwei Verbindungsmodi, die Sie über einen Umschalter im Tab „Einstellungen" wechseln können. Wählen Sie zuerst Ihren Modus — die detaillierte Schritt-für-Schritt-Anleitung steht dann jeweils auf einer eigenen Seite.
Der frühere Weg über die JTL REST API wird nicht mehr abgeglichen und lässt sich nicht mehr neu einrichten. Eine bestehende REST-Verbindung stellen Sie im Kundencenter unter JTL-Wawi mit „Auf BISConnect (SQL) umstellen“ auf SQL-Direkt um. Die Hinweise unter Bekannte Einschränkungen gelten für diesen alten Weg.
Zur REST-API-Anleitung| Kriterium | SQL-Direkt (empfohlen) | REST API |
|---|---|---|
| Verbindung | Direkt zur JTL-MSSQL-Datenbank | Über die JTL REST API |
| JTL REST API Server | Nicht erforderlich | Muss laufen |
| App-Registrierung in JTL | Nicht erforderlich | Erforderlich |
| Sync-Geschwindigkeit | Schnell | Abhängig von der REST API |
| Umfang | Empfohlener Weg | Nur ein Teil des Abgleichs, keine Artikelbilder (Bekannte Einschränkungen) |
| Einrichtung | MSSQL-Verbindungsdaten in BISConnect | 9 Schritte inkl. JTL-App-Registrierung |
| Anleitung | JTL-Anbindung über SQL-Direkt | JTL-Anbindung über die REST API |
Diese Voraussetzungen gelten für beide Anbindungsarten. Die modusspezifischen Voraussetzungen stehen jeweils im passenden Einrichtungs-Guide.
| # | Voraussetzung | Details |
|---|---|---|
| 1 | JTL-Wawi 1.8+ | Für die SQL-Direkt-Anbindung genügt Version 1.8. Die REST-API-Anbindung setzt JTL-Wawi 1.9 voraus, weil JTL die REST API erst ab dieser Version anbietet. Prüfen Sie Ihre Version unter Hilfe → Über JTL-Wawi. |
| 2 | BISpicy POS Account | Ein aktives BISpicy-Konto mit WaWi-Verbindung (BIS ERP oder Kundencenter). |
| 3 | BISConnect (bei On-Premise) | Bei einer lokal installierten JTL-Wawi wird BISConnect als Brücke benötigt. Bei JTL Cloud ist kein BISConnect erforderlich. |
Die Schritt-für-Schritt-Einrichtung hängt vom gewählten Verbindungsmodus ab (siehe Welche Anbindung?). Wählen Sie die zu Ihrem Modus passende Anleitung:
Für jeden Datentyp können Sie die Sync-Richtung individuell festlegen. So behalten Sie die volle Kontrolle darüber, welches System die Datenhoheit hat.
| Datentyp | Zu JTL | Von JTL | Bidirektional | Aus |
|---|---|---|---|---|
| Produkte | ||||
| Bestellungen | ||||
| Kunden | ||||
| Bestand | ||||
| Kategorien |
| Szenario | Produkte | Bestand | Kunden | Bestellungen |
|---|---|---|---|---|
| JTL ist Hauptsystem Stammdaten werden in JTL gepflegt |
Von JTL | Bidirektional | Bidirektional | Zu JTL |
| POS ist Hauptsystem Stammdaten werden in BISpicy gepflegt |
Zu JTL | Bidirektional | Zu JTL | Zu JTL |
| Beide Systeme gleichberechtigt Änderungen in beiden Systemen möglich |
Bidirektional | Bidirektional | Bidirektional | Zu JTL |
Die folgende Tabelle zeigt, wie BISpicy-Felder auf JTL-Wawi-Felder abgebildet werden.
| BISpicy-Feld | JTL-Wawi-Feld | Hinweis |
|---|---|---|
sku | SKU | Artikelnummer - dient als eindeutiger Schlüssel für den Abgleich |
name | Name | Produktname |
shortDescription | ShortDescription | Kurzbeschreibung |
ean | Identifiers.Gtin | EAN/GTIN Barcode |
sellingPrice | ItemPriceData.SalesPriceNet | Netto-Verkaufspreis |
purchasePrice | ItemPriceData.PurchasePriceNet | Netto-Einkaufspreis |
taxRate | TaxClassId | Steuersatz (wird über JTL Steuerklassen gemappt) |
stockQuantity | StorageOptions | Lagerbestand |
category | Categories[].CategoryId | Kategorie (wird per Name/ID aufgelöst) |
| BISpicy-Feld | JTL-Wawi-Feld | Hinweis |
|---|---|---|
saleId | ExternalNumber | Externe Belegnummer zur Referenz |
saleDateTime | SalesOrderDate | Verkaufsdatum und -uhrzeit |
cashierName | Comment | Kassierer-Name wird als Kommentar hinterlegt |
paymentMethod | PaymentMethodName | Zahlungsart (Bar, Karte, SumUp, Zettle, etc.) |
items[].name | LineItems[].Name | Positionsname |
items[].quantity | LineItems[].Quantity | Menge (inkl. Dezimalmengen bei teilbaren Produkten) |
items[].unitPrice | LineItems[].SalesPriceNet | Netto-Einzelpreis |
items[].taxRate | LineItems[].TaxRate | Steuersatz der Position (z.B. 19, 7) |
Nachdem die JTL-Verbindung im Kundencenter eingerichtet ist, müssen Sie die BISpicy POS App mit dem gleichen Konto verbinden, damit die synchronisierten Artikel auf der Kasse erscheinen.
Es gibt zwei Wege, sich mit Ihrem BISpicy-Konto in der Kassenapp anzumelden:
Beim ersten Start der App erscheint der Einrichtungs-Wizard. Im Schritt "Ihr persönliches Kundencenter" können Sie sich direkt anmelden oder registrieren:
Falls Sie den Wizard bereits abgeschlossen haben, finden Sie die Anmeldung unter:
Einstellungen → Steuern & Compliance → Kundenkonto & Lizenzen
Nach der Anmeldung sehen Sie im gleichen Screen Ihre Kassen-Module und den Verbindungsstatus. Oben links neben dem Hamburger-Menü erscheint ein Statusindikator:
Nach der Anmeldung synchronisiert die Kassenapp automatisch die Artikel aus Ihrem Konto. So prüfen Sie, ob die JTL-Artikel angekommen sind:
Standardmäßig synchronisiert die Kassenapp alle 15 Minuten mit dem Kundencenter. Sie können das Intervall anpassen unter:
Einstellungen → Daten & Sicherung → Sync-Intervall
| Intervall | Empfohlen für |
|---|---|
| 1 Minute | Häufige Preisänderungen, Echtzeit-Bestand |
| 5 Minuten | Aktiver Kassenbetrieb mit regelmäßigen Änderungen |
| 15 Minuten (Standard) | Die meisten Betriebe |
| 30 Minuten | Wenige Änderungen im Tagesverlauf |
| 60 Minuten | Reine Stammdaten, selten aktualisiert |
Der automatische Sync läuft serverseitig im Hintergrund und hält beide Systeme ohne manuellen Eingriff synchron.
Ist der Auto-Sync aktiviert, wählen Sie das Intervall für den automatischen Abgleich:
| Intervall | Beschreibung | Empfohlen für |
|---|---|---|
| Alle 5 Minuten | Häufigster Abgleich | Viele Änderungen am Tag |
| Alle 15 Minuten | Häufiger Abgleich | Hohe Transaktionsvolumen, Omnichannel |
| Alle 30 Minuten | Guter Kompromiss aus Aktualität und Last | Die meisten Betriebe |
| Jede Stunde | Stündlicher Abgleich | Mittleres Transaktionsvolumen |
| Alle 6 Stunden | Mehrmals täglich | Wenige tägliche Änderungen |
| Einmal täglich | Einmal am Tag | Reine Stammdaten-Synchronisation |
Daneben legen Sie den Vollabgleich fest: nur manuell, alle 6, alle 12 oder alle 24 Stunden. Darunter steht, wann der letzte Vollabgleich lief.
In der Integrationsübersicht sehen Sie jederzeit:
Über den Button "Jetzt synchronisieren" können Sie jederzeit einen manuellen Sync auslösen, unabhängig vom konfigurierten Intervall.
Im Kundencenter unter Anbindungen → JTL-Wawi → Sync-Protokoll können Sie detailliert nachvollziehen, welche Daten synchronisiert wurden. Das Protokoll zeigt:
Das Kundencenter ist die Zentrale zwischen JTL-Wawi und Kassenapp. Beide Intervalle sind unabhängig voneinander konfigurierbar.
Preise warten nicht auf das Intervall der Kassenapp. Seit BISpicy 0.17.3.4 (12. November 2026) gilt: Ändert ein Abgleich Sonderpreise, Staffelpreise oder Preise je Kundengruppe aus JTL-Wawi, stößt BISpicy danach sofort Ihre Kassen an. Eine eingeschaltete Kasse mit Internetverbindung holt die neuen Preise dann innerhalb von Sekunden. Eine Kasse, die gerade ausgeschaltet oder offline ist, holt sie nach, sobald sie wieder verbunden ist.
Sonderpreise, die Sie in JTL-Wawi abschalten oder löschen, entfernt BISpicy beim Abgleich ebenfalls; danach gilt an der Kasse wieder der Preis aus JTL. Vorher konnte ein neuer Sonderpreis an der Kasse fehlen, bis sich am Artikel etwas anderes änderte, und ein in JTL abgeschalteter Sonderpreis blieb an der Kasse stehen.
Kommt ein neuer Preis trotzdem nicht an? Prüfen Sie, ob die Kasse online ist, ob der Sonderpreis in JTL-Wawi aktiv ist und sein Zeitraum heute schon begonnen hat, und ob der letzte Abgleich im Sync-Protokoll ohne Fehler durchgelaufen ist.
updated_at Timestamps). Ein vollständiger Abgleich aller Daten ist nicht nötig und spart Bandbreite.Die folgenden Einschränkungen gelten für die REST-API-Anbindung. Die JTL-Wawi REST API (v1) ist noch im Beta-Stadium, und über sie läuft nur ein Teil des Abgleichs. Wo immer Ihre JTL-Datenbank erreichbar ist, richten Sie deshalb SQL-Direkt ein.
Die JTL REST API liefert nur Angaben zum Bild, nicht das Bild selbst. Der Abgleich meldet dann: „Bilder übernimmt der SQL-Abgleich über BISConnect; über die REST-API ist kein Bilder-Download möglich – bitte BISConnect nutzen oder Bilder manuell importieren.“ Bilder kommen deshalb nur über SQL-Direkt oder per Bilder-Import in BIS ERP.
Die JTL REST API v1 unterstützt weder PATCH (Update) noch Workflow-Events für Aufträge. POS-Kassenverkäufe werden daher als "Nicht bezahlt" und "Ausstehend" in JTL-Wawi angelegt.
Empfohlener Workaround: JTL-Workflow einrichtenErstellen Sie in JTL-Wawi unter Admin → JTL-Workflows einen automatischen Workflow:
BISpicy POSDie JTL REST API v1 unterstützt keine Stücklisten-Verknüpfung in Auftragspositionen. Wenn ein Stücklistenartikel (z.B. ein 30er-Pack) über die Kasse verkauft wird, erscheint in JTL der Hinweis "Stückliste wurde ohne Komponenten erstellt". Die Komponenten müssen in JTL manuell aufgelöst oder über einen Workflow ergänzt werden.
Ob und wann JTL-Software die REST API erweitert, liegt bei JTL. Für den Betrieb empfehlen wir SQL-Direkt.
Wenn ein Kunde an der Kasse auf Rechnung kauft (Ware sofort mitnehmen, später bezahlen), übernimmt JTL-Wawi anschließend die Rechnungserstellung, den Druck und die Verwaltung des Zahlungseingangs. BISpicy POS legt den Auftrag in JTL an — ein Workflow in JTL kümmert sich vollautomatisch um den Rest.
isInvoicePayment = true.
kZahlungsart = die in der Zahlungsarten-Zuordnung gewählte JTL-Rechnungs-Zahlart, nIstExterneRechnung = 0 (JTL verwaltet die Rechnung selbst) und offenen Positionen (fAnzahlOffen = qty, fAnzahlAufRechnung = 0).
dbo.tWorkflowQueue) für den im Kundencenter gewählten Workflow ab (Event „Auftrag erstellt").
Im Kundencenter unter Anbindungen → JTL-Wawi gibt es zwei Bereiche, die für Rechnungskauf eingerichtet werden müssen.
In der Sektion Zahlungsarten-Zuordnung (JTL ↔ POS) die JTL-Rechnungs-Zahlart (z. B. „Rechnung" mit kZahlungsart = 7 oder eine kundenspezifische wie „Rechnung by Asia-In") auf die POS-Zahlart „rechnung" mappen. Ob ein Verkauf ein Rechnungskauf ist, erkennt BIS ERP an einem Kennzeichen — nicht am Namen der Zahlart: Eine Zahlart, die nur „Rechnung" im Namen trägt, aber kein Kennzeichen hat, wird wie eine Sofortzahlung gebucht. Bei einer Zahlart, die Ihre Kasse selbst führt (wie „rechnung"), legen Sie das Kennzeichen an der Kassen-Zahlart fest: Kundencenter → Verkauf → Zahlungsarten, Häkchen „Rechnungskauf" (oder Zahlart-Typ „Rechnung"). Das Häkchen „Rechnungskauf" in der Zuordnungstabelle wirkt nur für JTL-Zahlarten, die an der Kasse direkt angeboten werden (Spalte „An Kasse").
tZahlung-Eintrag angelegt — der offene Posten bleibt erhalten, bis der Kunde tatsächlich bezahlt. Bei Sofortzahlung (Bar/Karte/SumUp) wird der tZahlung-Eintrag direkt mitgeschrieben.In der Sektion Workflow für Rechnungskauf an der Kasse aus dem Dropdown den JTL-Workflow auswählen, der nach jedem Rechnungskauf-Verkauf ausgeführt werden soll (z. B. „Rechnung Drucken"). Die Liste wird live aus der eigenen JTL-Datenbank geladen — es muss nichts manuell eingetragen werden.
Optional kann eine Verzögerung von 0 (sofort) oder 1 Minute nach Auftragsanlage gewählt werden. Mit 1 Minute hat JTL Zeit, alle Eckdaten zu indexieren, bevor der Workflow startet — in der Praxis funktioniert „sofort" zuverlässig.
Der ausgewählte Workflow muss in JTL-Wawi unter Admin → Workflows → Aufträge → Auftrag - Erstellt angelegt sein. Empfohlene Konfiguration:
| Eigenschaft | Wert | Hinweis |
|---|---|---|
| Anlegen unter | Aufträge → Auftrag - Erstellt | Im JTL-Workflow-Editor links auf „Aufträge" → „Auftrag - Erstellt" auswählen und „Neuer Workflow" klicken. |
| Name | z. B. „Rechnung Drucken" | Frei wählbar. Dieser Name erscheint anschließend im BIS-ERP-Dropdown. |
| Bedingung |
Modus: „Alle Bedingungen erfüllen" Pfad: Auftrag\Sonstiges\Plattform\NameOperator: EnthältWert: BIS
|
Stellt sicher, dass nur Aufträge mit Plattform „BISpicy POS" gedruckt werden — nicht z. B. Shop-Aufträge oder manuell angelegte Aufträge in JTL. |
| Aktion 1 | Rechnung erstellen → Rechnung erstellen | Erstellt das Dokument tRechnung aus den offenen Positionen des Auftrags. Voraussetzung: fAnzahlAufRechnung < fAnzahlGeliefert — BIS ERP sorgt dafür. |
| Aktion 2 | Ausgabe → Ausgabemodus: Drucken, Formular: Rechnung | Druckt die soeben erstellte Rechnung auf den hinterlegten Drucker. Alternativ E-Mail oder PDF speichern. |
| Ausführungsplan | Zeitverzögert oder Sofort ausführen | „Zeitverzögert" läuft über die Workflow-Queue (kompatibel mit dem BIS-ERP-Trigger und der konfigurierten 0/1-Minuten-Verzögerung). „Sofort ausführen" läuft im Application-Code — ebenfalls kompatibel, dort entfällt der Queue-Eintrag. |
| Aktiv | Ja | Häkchen „Workflow deaktivieren" muss leer sein. Nur aktive Workflows erscheinen im BIS-ERP-Dropdown. |
Sonstiges.Plattform.Name enthält BISPfad in der JTL-Dropdown: Auftrag → Sonstiges → Plattform → Name · Operator: Enthält · Wert: BIS
tAuftragEckdaten.fOffenerWert auf den Bruttobetrag gesetzt und kein tZahlung-Eintrag erzeugt — JTL erkennt den Auftrag korrekt als „noch zu fakturieren".tAuftragPositionEckdaten.fAnzahlAufRechnung = 0 bei Rechnungskauf. Damit findet der „Rechnung erstellen"-Workflow eine offene Menge zum Fakturieren.dbo.tWorkflowQueue mit nEvent = 1 (Auftrag erstellt), kBenutzer = 1, kWorkflow = der gewählten ID und dStartDate = jetzt oder +1 Min angelegt.1462092026A).Sobald der Kunde die Rechnung bezahlt, verbuchen Sie den Zahlungseingang ganz normal in JTL — entweder manuell über die OP-Liste oder automatisch über den Bank-Import / DATEV-Anbindung. BIS ERP greift hier nicht mehr ein, weil der Auftrag mit nIstExterneRechnung = 0 angelegt wurde („JTL verwaltet die Rechnung selbst").
Falls beim Workflow „Rechnung erstellen" die Meldung „Es existieren keine offenen Positionen mehr" erscheint, prüfen Sie:
isInvoicePayment = 1 stehen.fAnzahlAufRechnung = 0 bei Rechnungskauf korrekt — ältere Versionen hatten hier einen Bug. Falls Sie eine ältere Version einsetzen, bitte aktualisieren.Nachfolgend finden Sie Lösungen für die häufigsten modusunabhängigen Probleme bei der JTL-Integration. Verbindungsprobleme sind im jeweiligen Einrichtungs-Guide beschrieben.
Wenn Sie ein Problem nicht lösen können, kontaktieren Sie unseren Support:
Öffnen Sie ein Support-Ticket direkt in der BISpicy POS App unter Einstellungen → Support.
Schreiben Sie uns an support@bispicy.com mit einer Beschreibung des Problems.