Verbinden Sie JTL-Wawi mit BISpicy POS und synchronisieren Sie Produkte, Bestand, Kunden und Bestellungen bidirektional. Zwei Anbindungsarten zur Wahl — SQL-Direkt (empfohlen) oder REST API. Kostenlos verfügbar für alle BISpicy-Nutzer.
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.9+ | OnPremise (lokal installiert) | Unterstützt |
| JTL-Wawi 1.9+ | Cloud | Unterstützt |
| JTL-Wawi < 1.9 | 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.
| 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 |
| 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.9+ | 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.
Wählen Sie das gewünschte Intervall für den automatischen Abgleich:
| Intervall | Beschreibung | Empfohlen für |
|---|---|---|
| 15 Minuten | Sehr häufiger Abgleich, nahezu Echtzeit | Hohe Transaktionsvolumen, Omnichannel |
| 30 Minuten | Guter Kompromiss aus Aktualität und Last | Die meisten Betriebe |
| 1 Stunde | Stündlicher Abgleich | Mittleres Transaktionsvolumen |
| 6 Stunden | Mehrmals täglich | Wenige tägliche Änderungen |
| 24 Stunden | Einmal täglich (nachts) | Reine Stammdaten-Synchronisation |
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 JTL-Wawi Integration → 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.
updated_at Timestamps). Ein vollständiger Abgleich aller Daten ist nicht nötig und spart Bandbreite.Die JTL-Wawi REST API (v1) befindet sich noch im Beta-Stadium. Einige Funktionen sind derzeit eingeschränkt:
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.
Diese Einschränkungen werden automatisch behoben, sobald JTL-Software die REST API erweitert. BISpicy passt die Integration laufend an neue JTL-API-Versionen an.
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 JTL-Integration 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 und das Häkchen „Rechnungskauf" setzen. Das Häkchen ist das Flag, anhand dessen BIS ERP einen Verkauf als Rechnungskauf erkennt.
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 [email protected] mit einer Beschreibung des Problems.