Einrichtung mit ähnlich benannten Eigenen FeldernSetup with similarly named custom fields
✓Der Einrichtungs-Assistent bricht jetzt auch dann nicht mehr ab, wenn sich zwei Eigene Felder nur in der Groß-/Kleinschreibung unterscheiden (z.B. von zwei verschiedenen Plugins angelegt). Für SQL Server sind das dieselben Spaltennamen, weshalb die Views bisher nicht erstellt werden konnten. Beide Felder bleiben erhalten und bekommen eindeutige Namen.The setup wizard no longer aborts when two custom fields (Eigene Felder) differ only in upper/lower case (e.g. created by two different plugins). SQL Server treats those as the same column name, which previously prevented the views from being created. Both fields are kept and get unique names.
v1.3.32
August 2026August 2026
Zuverlässigere UpdatesMore reliable updates
✓Updates werden jetzt vollständig und zuverlässig eingespielt. Der Updater prüft nach dem Kopieren, dass alle Dateien aktualisiert wurden, und meldet klar, falls einmal eine Datei blockiert ist, anstatt einfach weiterzumachen.Updates now install completely and reliably. After copying, the updater verifies that every file was updated and reports clearly if a file is ever blocked, instead of simply continuing.
•Während eines Updates zeigt das Dashboard jetzt den Fortschritt an, während der Dienst neu startet.During an update, the dashboard now shows progress while the service restarts.
+Neu: Mit update.bat --repair lässt sich die aktuelle Version bei Bedarf jederzeit sauber neu einspielen.New: update.bat --repair cleanly re-installs the current version whenever you need it.
v1.3.31
August 2026August 2026
Stabilere Einrichtung bei doppelten Eigenen FeldernMore stable setup with duplicate custom fields
✓Der Einrichtungs-Assistent bricht nicht mehr ab, wenn in JTL-Wawi zwei gleichnamige Eigene Felder existieren (z.B. von einem Plugin angelegt). Solche Felder werden jetzt sauber zusammengeführt, sodass die Views zuverlässig erstellt werden.The setup wizard no longer aborts when two identically named custom fields (Eigene Felder) exist in JTL-Wawi (e.g. created by a plugin). Such fields are now merged cleanly so the views are created reliably.
v1.3.30
August 2026August 2026
Zuverlässigerer Dienst-Neustart aus den EinstellungenMore reliable service restart from Settings
✓Nach einer Konfigurationsänderung im Einstellungen-Reiter (z.B. Remote-MCP ein- oder ausschalten) startet der Dienst jetzt zuverlässig automatisch neu, statt in seltenen Fällen gestoppt zu bleiben.After a configuration change in the Settings tab (e.g. toggling Remote-MCP on or off), the service now reliably restarts on its own instead of, in rare cases, staying stopped.
•Die Anleitung zur Claude-Desktop-Einrichtung ist im Remote-Zugriff jetzt als eigener Button klar sichtbar.The Claude Desktop setup guide is now a clearly visible button in Remote Access.
v1.3.29
August 2026August 2026
SQL2REST Tunnel (HTTPS): sicherer Zugriff von überallSQL2REST Tunnel (HTTPS): secure access from anywhere
+Neu: SQL2REST Tunnel mit HTTPS. Mach deine SQL2REST-API mit einem Klick sicher über HTTPS von überall erreichbar, ohne am Server Ports nach außen freizugeben und ohne selbst einen Reverse Proxy einzurichten. Der Datenverkehr läuft direkt von deinem Rechner, unsere Server sehen ihn nicht. Im Team-Tarif enthalten, im Einzeltarif als Add-on (19 €/Monat).New: SQL2REST Tunnel with HTTPS. Make your SQL2REST API securely reachable over HTTPS from anywhere with a single click, without opening inbound ports on the server and without setting up a reverse proxy yourself. Traffic runs directly from your machine, and our servers never see it. Included in the Team plan, available as an add-on (19 €/month) on the single plan.
✓Remote-MCP wird mit dem Tunnel zum Kinderspiel: KI-Clients wie Claude Desktop, Claude Code, Cursor oder Windsurf auf anderen Arbeitsplätzen erreichen deine zentrale SQL2REST-Installation jetzt ohne eigene HTTPS-Einrichtung. Die passende MCP-Adresse und eine fertige Systemanweisung für Claude kannst du direkt kopieren, ein Link führt zur Anleitung für die claude_desktop_config.json. (Team-Tarif.)Remote-MCP becomes effortless with the tunnel: AI clients like Claude Desktop, Claude Code, Cursor or Windsurf on other workstations now reach your central SQL2REST installation without setting up HTTPS yourself. You can copy the matching MCP address and a ready-made system prompt for Claude directly, and a link leads to the guide for the claude_desktop_config.json. (Team plan.)
•Alternativ bleibt der Zugriff über deine eigene Domain hinter einem Reverse Proxy kostenlos möglich.Alternatively, access through your own domain behind a reverse proxy remains available for free.
Konfiguration im neuen Einstellungen-ReiterConfiguration in the new Settings tab
+Schnelleres Fine-Tuning: Konfiguriere SQL2REST (Port, Firewall, Remote-Zugriff usw.) jetzt direkt über den neuen Einstellungen-Reiter, statt den Einrichtungs-Assistenten noch einmal durchlaufen zu müssen. Die Einstellungen selbst gab es schon, sie sind nur bequemer erreichbar.Faster fine-tuning: Configure SQL2REST (port, firewall, remote access, and more) directly from the new Settings tab instead of running through the setup assistant again. These settings already existed; they are simply easier to reach now.
Neue Artikelfelder: Zolltarifnummer und HerkunftslandNew product fields: customs tariff number and country of origin
+Zolltarifnummer (TARIC) und Herkunftsland jetzt verfügbar. Diese beiden zusätzlichen Artikelfelder müssen bei der Einrichtung in der Feldauswahl aktiviert werden, damit sie über API und MCP ausgegeben werden. Standardmäßig sind sie aus. Praktisch für Zoll, Export und Marktplatz-Listings.Customs tariff number (TARIC) and country of origin are now available. Enable these two additional product fields in the field selection during setup so they are returned by the API and MCP. They are off by default. Handy for customs, export and marketplace listings.
Saubere DeinstallationClean uninstall
✓Sauber deinstallieren aus den Einstellungen: Die Deinstallation entfernt jetzt auf Wunsch die Datenbank-Ansichten, den Nur-Lese-Benutzer, die lokale Konfiguration und den Windows-Dienst in einem Schritt. Deine JTL-Wawi Daten bleiben unberührt.Clean uninstall from Settings: Uninstalling now removes the database views, the read-only user, the local configuration and the Windows service in one step. Your JTL-Wawi data stays untouched.
Weitere VerbesserungenFurther improvements
•Ein übersichtlicherer Einrichtungs-Assistent (Lizenz und Verbindung in einem Schritt) und viele kleinere Verbesserungen an Oberfläche und Texten.A clearer setup assistant (license and connection in one step) and many smaller improvements to the interface and wording.
v1.3.28
August 2026August 2026
Übersicht zeigt nur erreichbare AdressenOverview shows only reachable addresses
✓Übersicht im API-Dashboard zeigt nur erreichbare Adressen: Die Netzwerk-Adresse erscheint in der Übersicht nur noch, wenn die API tatsächlich im Netzwerk freigegeben ist. Bei der Einstellung "nur lokal" wird sie ausgeblendet, damit keine Adresse angezeigt wird, die andere Rechner ohnehin nicht erreichen.The overview in the API Dashboard shows only reachable addresses: The network address now appears in the overview only when the API is actually exposed on the network. With the "local only" setting it is hidden, so no address is shown that other machines could not reach anyway.
v1.3.27
August 2026August 2026
Zuverlässigere KI-Abfragen bei großen ListenMore reliable AI queries on large lists
✓Große KI-Abfragen laufen nicht mehr in eine Größengrenze: Umfangreiche Abfragen von Bestellungen, Rechnungen oder Lieferscheinen über die KI-Anbindung (z.B. Claude Desktop) stoßen bei sehr großen Datenmengen nicht mehr an die Größengrenze der Antwort. Statt einer Fehlermeldung kommt eine kompakte Antwort mit dem Hinweis, die Abfrage einzugrenzen (z.B. per Zeitraum oder Filter).Large AI queries no longer hit a response-size limit: Extensive queries of orders, invoices or delivery notes via the AI connection (e.g. Claude Desktop) no longer run into the response size limit on very large data sets. Instead of an error message, you get a compact answer with a hint to narrow the query (e.g. by date range or filter).
v1.3.26
August 2026August 2026
Schnellere, zuverlässigere UpdatesFaster, more reliable updates
✓Updates und Downloads über unser eigenes CDN: Neue Versionen und der Erst-Download werden jetzt über ein globales Content-Delivery-Netzwerk ausgeliefert. Das macht Downloads schneller und zuverlässiger. Das Update startest du wie gewohnt selbst: per Klick im API-Dashboard oder über update.bat.Updates and downloads via our own CDN: New versions and the initial download are now delivered over a global content delivery network, making downloads faster and more reliable. You start the update yourself as usual: with one click in the API Dashboard or via update.bat.
v1.3.25
August 2026August 2026
Öffentliche API-Adresse und klar beschriftete URLsPublic API address and clearly labeled URLs
+Hinterlege eine öffentliche Adresse für deine API: Für den Zugriff von anderen Arbeitsplätzen oder aus der Cloud trägst du deine externe Adresse (z.B. über einen Reverse Proxy) einmal ein. Verfügbar in allen Tarifen.Set a public address for your API: For access from other workstations or the cloud, enter your external address (e.g. via a reverse proxy) once. Available on all plans.
✓Die Übersicht zeigt deine REST-API-Adressen jetzt klar beschriftet: Lokal, Netzwerk und Öffentlich. Die passenden MCP-Endpunkte werden direkt daraus abgeleitet.The overview now shows your REST API addresses clearly labeled: Local, Network and Public. The matching MCP endpoints are derived directly from them.
✓Retouren-Felder im Setup-Wizard behoben: Status, Retourengrund, Artikelzustand und Positionsstatus werden bei einer Neuinstallation jetzt automatisch zugeordnet.Returns fields fixed in the setup wizard: Status, return reason, article condition and line-item status now map automatically on a fresh install.
KI-Abfragen und Claude DesktopAI queries and Claude Desktop
✓Neueste zuerst: Abfragen wie „die letzten Bestellungen" oder „die letzten Retouren" liefern jetzt zuverlässig die aktuellsten Datensätze zuerst.Newest first: Queries like "the latest orders" or "the latest returns" now reliably return the most recent records first.
+Verbesserte Claude-Desktop-Anleitung: aktualisierte Einrichtung inklusive macOS und Linux, plus Retouren im mitgelieferten Projekt-Template.Improved Claude Desktop guide: updated setup including macOS and Linux, plus returns in the bundled project template.
v1.3.24
August 2026August 2026
Neu: Retouren über die APINew: returns over the API
+Drei neue Endpunkte für Retouren (RMA):GET /returns listet die Kopfdaten mit Filtern nach Kunde, Status, RMA-Nummer und Zeitraum, GET /returns/{rma_number} liefert eine einzelne Retoure und GET /returns/{rma_number}/items die zugehörigen Positionen.Three new endpoints for returns (RMA):GET /returns lists the header data with filters by customer, status, RMA number and date range, GET /returns/{rma_number} returns a single return, and GET /returns/{rma_number}/items its line items.
✓Jede Retoure bringt Auftragsbezug, Status, Warenwert (netto und brutto) sowie erstattete Versandkosten mit. Auch als MCP-Tool für KI-Clients verfügbar.Each return includes the order reference, status, goods value (net and gross) and refunded shipping. Also available as an MCP tool for AI clients.
v1.3.23
Juli 2026July 2026
Grundlage für Tags und Metafelder im Shopify-SyncFoundation for tags and metafields in Shopify-Sync
✓Die API stellt jetzt die Attributgruppe des JTL-Shopify-Connectors bereit, damit der Shopify-Sync Tags und eigene Metafelder aus deiner JTL-Wawi lesen und zu Shopify übertragen kann.The API now exposes the JTL Shopify-Connector attribute group, so Shopify-Sync can read tags and custom metafields from your JTL-Wawi and push them to Shopify.
v1.3.22
Juli 2026July 2026
Bestandssuche über den ganzen KatalogStock search across the whole catalog
✓Die Bestandsabfrage kann jetzt serverseitig nach SKU suchen: Ein SKU-Filter durchsucht den kompletten Katalog und findet auch bei zehntausenden Artikeln alle Treffer.The stock endpoint can now filter by SKU server-side: a SKU filter searches the whole catalog and finds every match even across tens of thousands of articles.
v1.3.21
Juli 2026July 2026
Produktlisten bei großen KatalogenProduct listings on large catalogs
✓Die Produktlisten-Abfrage bleibt auch bei sehr großen Katalogen schnell: Die Liste blättert jetzt effizient durch zehntausende Artikel, ohne mit wachsender Katalogtiefe langsamer zu werden.The product-listing query stays fast even on very large catalogs: the list now pages efficiently through tens of thousands of articles without slowing down as the catalog grows.
v1.3.20
Juli 2026July 2026
Bestand bei großen KatalogenStock on large catalogs
✓Bestandsabfragen bleiben auch bei sehr großen Katalogen schnell: Die Bestandsdaten laden jetzt zuverlässig, auch bei zehntausenden Artikeln über mehrere Lager. Die Übersicht läuft nicht mehr in eine Zeitüberschreitung und bleibt nicht mehr leer.Stock queries stay fast even on very large catalogs: Stock data now loads reliably, even with tens of thousands of articles across multiple warehouses. The overview no longer times out or shows up empty.
+Aufbewahrung der Protokolle frei wählbar: Die Aufbewahrungsdauer der API-Protokolle lässt sich jetzt auf eine beliebige Anzahl Tage einstellen, inklusive einer kurzen 7-Tage-Option.Custom log retention: The retention period for the API logs can now be set to any number of days, including a short 7-day option.
v1.3.18
Juli 2026July 2026
SEO-Texte je VerkaufskanalSEO text per sales channel
+SEO-Daten aus dem JTL-Shop lesbar: Die API kann Meta-Titel, Meta-Beschreibung und Meta-Keywords jetzt aus dem Ausgabeweg eines JTL-Shops liefern statt nur aus JTL-Wawi. Felder, die im Shop leer sind, fallen feldweise auf die JTL-Wawi-Daten zurück.Read SEO data from JTL-Shop: The API can now serve meta title, meta description and meta keywords from a JTL-Shop output channel instead of only from JTL-Wawi. Fields left empty in the shop fall back to the JTL-Wawi values field by field.
•Die Datenbank-Ansichten werden einmalig aktualisiert: Dieses Update erweitert die Ansichten. Mit selbst-aktualisierenden Ansichten passiert das automatisch, sonst erscheint der gewohnte Hinweis zum Neu-Erzeugen. Der Zugriff bleibt reiner Lesezugriff auf deine Daten.Database views are updated once: This update extends the views. With self-updating views this happens automatically, otherwise you get the familiar regenerate prompt. Access to your data stays read-only throughout.
v1.3.17
Juli 2026July 2026
Datenbank-Ansichten werden aktualisiertDatabase views get refreshed
•Dieses Update frischt die API-Ansichten auf: Bei der Aktualisierung erneuert SQL2REST seine eigenen Datenbank-Ansichten. Auf Systemen mit selbst-aktualisierenden Ansichten passiert das automatisch. Sonst erscheint der gewohnte Ein-Klick-Hinweis zum Neu-Erzeugen. Der Zugriff bleibt reiner Lesezugriff auf deine Daten.This update refreshes the API views: On update, SQL2REST regenerates its own database views. On systems with self-updating views this happens automatically. Otherwise the familiar one-click regenerate prompt appears. Access to your data stays read-only throughout.
v1.3.16
Juli 2026July 2026
Updates, die sich selbst einspielenUpdates that apply themselves
+Selbst-aktualisierende Datenbank-Ansichten: Nach einem Update bringt SQL2REST seine eigenen API-Ansichten automatisch auf den neuesten Stand. Du musst nicht mehr nach jedem Update dein SQL-Admin-Passwort eingeben oder die Ansichten von Hand neu erzeugen.Self-updating database views: After an update, SQL2REST brings its own API views up to date on its own. You no longer need to re-enter your SQL admin password or regenerate the views by hand after every update.
•Einmalig aktivieren, danach sicher und automatisch: Du schaltest die Option einmal bei der Einrichtung frei, dein Admin-Zugang wird nur dieses eine Mal gebraucht. Danach laufen Updates ohne weiteres Zutun. Bleibt die Option aus, ist alles wie bisher mit dem gewohnten Hinweis zum Neu-Erzeugen. Der Zugriff bleibt reiner Lesezugriff auf deine Daten.Enable once, then safe and automatic: You enable the option once during setup, and your admin login is only needed that one time. After that, updates just work. Leave the option off and everything stays as before with the familiar regenerate prompt. Access to your data stays read-only throughout.
v1.3.8
Juli 2026July 2026
Bestand pro JTL-Shop abrufenQuery stock per JTL shop
+Shop-genauer Bestandsabruf: Der Bestandsabruf lässt sich jetzt auf einen einzelnen JTL-Shop eingrenzen, sodass du nur die Artikel dieses Shops bekommst statt deines gesamten Katalogs. Bei großen Katalogen wird die Abfrage dadurch deutlich schlanker und schneller.Shop-specific stock: Stock queries can now be scoped to a single JTL shop, so you get only that shop's articles instead of your whole catalog. For large catalogs this makes the query noticeably leaner and faster.
•Optional und abwärtskompatibel: Ohne Angabe eines Shops verhält sich der Abruf wie bisher. Bestehende Integrationen bleiben unverändert. So funktioniert der shop_id-Parameter.Optional and backward-compatible: Without a shop specified, the query behaves exactly as before. Existing integrations stay unchanged. How the shop_id parameter works.
v1.3.4
Juli 2026July 2026
Analytics für die JTL-Wawi (Beta)Analytics for JTL-Wawi (Beta)
+Neu: eingebaute Dashboards für deine JTL-Wawi. Direkt im API-Dashboard siehst du deine wichtigsten Kennzahlen auf einen Blick, ohne Export und ohne zweites Tool. Sieben Ansichten: Übersicht, Kanäle, Bestand & Reichweite, Bestseller, Retouren, Nachbestellung und Netto-Marge. Deine Daten bleiben auf deinem Server.New: built-in dashboards for your JTL-Wawi. Right inside the API dashboard you see your key figures at a glance, no export and no second tool. Seven views: Overview, Channels, Stock & reach, Bestsellers, Returns, Reorder, and Net margin. Your data stays on your server.
+Echte Netto-Marge, nicht nur Umsatz: Die Marge-Ansicht rechnet Umsatz minus Einkaufspreis minus Versandkosten, damit du siehst, was pro Artikel wirklich übrig bleibt.Real net margin, not just revenue: The margin view computes revenue minus cost of goods minus shipping, so you see what each article actually leaves behind.
•Während der Beta im Personal-Tarif enthalten. Aktivieren im API-Dashboard unter Add-ons. Die Ansichten sind mit einem Beta-Hinweis markiert und werden laufend erweitert; wir freuen uns über dein Feedback.Included in the Personal plan during the beta. Enable it in the API dashboard under Add-ons. The views carry a Beta badge and are being expanded continuously; we welcome your feedback.
Fertige Vorlagen für n8n, Make und ZapierReady-made templates for n8n, Make, and Zapier
+SQL2REST in deinen Automatisierungen: Rufe jeden SQL2REST-Endpunkt aus n8n, Make oder Zapier auf, mit deinem bestehenden API-Schlüssel. Fertige Vorlagen zum Importieren decken die typischen Fälle ab: neue Aufträge melden, täglicher Produkt-Export in eine Tabelle und Warnung bei niedrigem Bestand.SQL2REST in your automations: Call any SQL2REST endpoint from n8n, Make, or Zapier using your existing API key. Ready-to-import templates cover the common cases: notify on new orders, daily product export to a sheet, and a low-stock alert.
•Anleitungen und Downloads: Schritt-für-Schritt für n8n, Make und Zapier. Für Cloud-Dienste ist SQL2REST über einen Reverse-Proxy erreichbar zu machen; die Anleitung ist verlinkt.Guides and downloads: Step-by-step for n8n, Make, and Zapier. For cloud services, make SQL2REST reachable via a reverse proxy; the guide is linked.
Protokoll-Einstellungen an einem OrtLog settings in one place
+Ein gemeinsamer Einstellungs-Dialog für alle Protokolle: Über das Zahnrad in Nutzung & Protokoll öffnest du jetzt einen einzigen Dialog für die Einstellungen von API-Abrufen, Shopify-Sync und Workflow-Log, statt an drei verschiedenen Stellen. Die bisherigen verstreuten Einstellungen sind hier zusammengefasst.One shared settings dialog for every log: Via the gear in Usage & Log you now open a single dialog for the settings of API calls, Shopify Sync, and the Workflow Log, instead of three separate places. The previously scattered settings are consolidated here.
+Neu: Aufbewahrung des Shopify-Sync-Protokolls wählbar: Du legst jetzt selbst fest, wie lange die Protokollzeilen des Shopify-Sync aufbewahrt werden: 30, 90 oder 365 Tage oder unbegrenzt. Vorher waren es fest 90 Tage.New: choose Shopify Sync log retention: You now decide how long the Shopify Sync log rows are kept: 30, 90, or 365 days, or unlimited. Previously this was fixed at 90 days.
Nach dem UpdateAfter the update
•Views einmal neu generieren: Damit alle Änderungen dieses Updates greifen (u.a. die Datenbasis für Analytics und den Shopify-Produktdaten-Sync), im Setup-Wizard einmal die Views neu generieren. Das API-Dashboard zeigt dazu einen Hinweis.Regenerate the views once: So all changes in this update take effect (including the data basis for Analytics and the Shopify product-data sync), regenerate the views once in the setup wizard. The API dashboard shows a prompt for this.
v1.2.21
Juli 2026July 2026
Protokoll: Grund-Spalte und CSV-Export für das Shopify-Sync-Add-onLog: reason column and CSV export for the Shopify Sync add-on
+Sieh auf einen Blick, warum eine Zeile markiert ist: Im Sync-Protokoll zeigt jede solche Zeile jetzt eine Grund-Spalte. Du siehst sofort den Grund für "Ohne Treffer" oder "Fehler", statt raten zu müssen.See at a glance why a row is flagged: In the sync log, every flagged row now shows a reason column. You see the reason behind "No match" or "Error" right away, instead of having to guess.
+Kompletten Lauf als CSV exportieren: Ein Klick lädt das gesamte Protokoll eines Sync-Laufs als CSV herunter, ideal zum Abgleichen in Excel.Export a full run as CSV: One click downloads a sync run's complete log as CSV, ideal for reconciling in Excel.
✓Protokoll auch nach der Aktivierung sichtbar: Die Sync-Läufe erscheinen jetzt zuverlässig im Protokoll, auch wenn der Abgleich im Hintergrund als Dienst läuft.Log visible after activation too: Sync runs now appear reliably in the log, even while the sync runs in the background as a service.
Stabilere Installation und UpdatesSteadier installation and updates
✓Updates laufen zuverlässiger durch: Auf Systemen, auf denen der Windows-Dienst bereits lief, konnte ein Update mit "Dienst-Installation fehlgeschlagen" abbrechen. Das ist behoben, auch auf deutschsprachigen Servern.Updates run more reliably: On systems where the Windows service was already running, an update could fail with a service-installation error. That is fixed, including on German-language servers.
✓Der Dienst läuft beim Neugenerieren weiter: Views neu generieren stoppt den laufenden Dienst nicht mehr, und die wiederholte Aufforderung zum Neugenerieren erscheint nicht mehr ohne Grund.The service keeps running during regeneration: Regenerating views no longer stops the running service, and the repeated prompt to regenerate no longer appears without reason.
✓Add-on-Updates robuster: Beim Aktualisieren eines Add-ons wird der laufende Prozess sauber beendet und der geplante Task pausiert, bevor Dateien überschrieben werden.Sturdier add-on updates: When an add-on updates, its running process is stopped cleanly and its scheduled task is paused before any files are overwritten.
•Hinweis bei ungünstigem Installationsort: Liegt SQL2REST an einem Ort wie dem Desktop oder in OneDrive, an dem der Windows-Dienst seine Konfiguration nicht dauerhaft speichern kann, weist das Setup jetzt darauf hin und empfiehlt einen lokalen Ordner wie C:\SQL2REST.Warning for an unsuitable install location: If SQL2REST sits somewhere like the Desktop or in OneDrive, where the Windows service cannot persist its configuration, setup now points this out and recommends a plain local folder such as C:\SQL2REST.
Nach dem UpdateAfter the update
•Views einmal neu generieren: Damit alle Änderungen dieses Updates greifen, im Setup-Wizard einmal die Views neu generieren. Das API-Dashboard zeigt dazu einen Hinweis.Regenerate the views once: So all changes in this update take effect, regenerate the views once in the setup wizard. The API dashboard shows a prompt for this.
v1.2.13
Juli 2026July 2026
Shopify-Bestand-Sync: Lagerbestände automatisch zu ShopifyShopify inventory sync: stock levels to Shopify, automatically
+Neues Add-on: SQL2REST synchronisiert die Lagerbestände aus deiner JTL-Wawi jetzt automatisch zu deinen Shopify-Standorten. Lokal über deine eigene Shopify-App, geschrieben wird ausschließlich nach Shopify, deine Wawi bleibt rein lesend. Artikel werden automatisch über die SKU abgeglichen. Zur Einrichtung.New add-on: SQL2REST now syncs the stock levels from your JTL-Wawi to your Shopify locations automatically. Locally, through your own Shopify app, writing only ever to Shopify, your Wawi stays read-only. Products are matched automatically by SKU. Setup guide.
+Pro Lager steuerbar: Du schaltest je JTL-Lager ein, ob es synchronisiert wird, und ordnest jedem einen Shopify-Standort zu. Ein Standort gehört dabei genau einem aktiven Lager. Enthalten ab Personal (2 Standorte), Team (10 Standorte) und Agency (unbegrenzt).Per warehouse: You switch on, per JTL warehouse, whether it syncs, and assign each one a Shopify location. A location belongs to exactly one active warehouse. Included from Personal (2 locations), Team (10 locations), and Agency (unlimited).
Workflow-Log: das JTL-Workflow-Protokoll endlich durchsuchbarWorkflow log: your JTL workflow protocol, finally searchable
+Integriertes Add-on, bereits vorinstalliert: Im API-Dashboard unter Nutzung & Protokoll findest du jetzt das Workflow-Log, einen rein lesenden Viewer über das JTL-eigene Workflow-Protokoll. Volltextsuche, Filter, Workflow-Picker und Statistiken auf einen Blick, statt dich in JTL von Objekt zu Objekt zu klicken. In allen Tarifen enthalten. Mehr erfahren.Integrated add-on, already pre-installed: In the API dashboard under Usage & Log you now find the Workflow Log, a read-only viewer over JTL's own workflow protocol. Full-text search, filters, a workflow picker, and statistics at a glance, instead of clicking object by object in JTL. Included in every plan. Learn more.
Nach dem UpdateAfter the update
•Views einmal neu generieren: Damit die Änderungen dieses Updates vollständig greifen (Shopify-Bestand-Sync und Workflow-Log), im Setup-Wizard einmal die Views neu generieren.Regenerate the views once: So the changes in this update take full effect (Shopify inventory sync and Workflow Log), regenerate the views once in the setup wizard.
v1.2.12
Juni 2026June 2026
Schnelleres Protokoll, das sich selbst sauber hältA faster access log that keeps itself tidy
+Auch bei sehr vielen Abrufen schnell: Der Zugriffslog (Nutzung & Protokoll) ist jetzt indiziert und lädt zügig, selbst bei Hunderttausenden Abrufen pro Tag. Alte Detailzeilen werden automatisch nach 90 Tagen aufgeräumt, damit der Speicher auf deinem Server nicht unbegrenzt wächst.Fast even at high volume: The access log (Usage & Log) is now indexed and loads quickly, even at hundreds of thousands of calls per day. Old detail rows are cleaned up automatically after 90 days, so storage on your server does not grow without bound.
+Deine Gesamtzahl der Abrufe pro Schlüssel bleibt dabei dauerhaft erhalten, auch wenn alte Detailzeilen aufgeräumt werden.Your total request count per key is preserved permanently, even after old detail rows are cleaned up.
Aufbewahrung der Detailprotokolle selbst festlegenSet your own detail-log retention
+Über das Zahnrad im Nutzung & Protokoll-Tab legst du fest, wie lange detaillierte Protokollzeilen aufbewahrt werden: 30, 90 oder 365 Tage, oder unbegrenzt. Standard bleibt 90 Tage. Die Einstellung wirkt sofort, ohne Neustart des Dienstes.Using the gear in the Usage & Log tab you choose how long detailed log rows are kept: 30, 90, or 365 days, or unlimited. The default stays 90 days. The setting takes effect immediately, with no service restart.
•Dein Nutzungsdiagramm behält die volle Historie, egal wie kurz du die Detailaufbewahrung stellst, weil die Tageswerte separat zusammengefasst gespeichert werden.Your usage chart keeps its full history no matter how short you set the detail retention, because daily totals are stored separately as a compact rollup.
+Echte Verkaufszahlen pro Tag: Bestellungen tragen jetzt die Felder Storno und OrderType. Mit ?storno=0&type=B filterst du auf echte, nicht stornierte Verkaufsaufträge. Das ist genau die Logik, die JTL selbst für die "verkauft pro Tag"-Zahl nutzt (tBestellung.nStorno = 0 und cType = B), ideal für tägliche Absatz- und Verbrauchs-Auswertungen. Felder und Filter gelten für /orders, /sync/orders und die Positionen unter /orders/{nr}/items.Real sold-per-day figures: Orders now carry the Storno and OrderType fields. With ?storno=0&type=B you filter to real, non-cancelled sales orders. That is exactly the logic JTL itself uses for its "sold per day" figure (tBestellung.nStorno = 0 and cType = B), ideal for daily sales and consumption reports. The fields and filters apply to /orders, /sync/orders, and the line items under /orders/{nr}/items.
+Auch über MCP verfügbar: Die Orders-Tools für Claude Desktop, Cursor und Windsurf akzeptieren jetzt storno und order_type, sodass Claude dieselbe nicht-stornierte Verkaufszahl abfragen kann.Available over MCP too: the orders tools for Claude Desktop, Cursor, and Windsurf now accept storno and order_type, so Claude can query the same non-cancelled sales figure.
Hinweis zum Neugenerieren der ViewsPrompt to regenerate views
+Wenn ein Update neue Datenfelder hinzufügt, zeigt das API-Dashboard jetzt einen Hinweis. Ein Klick auf "Setup-Wizard starten" führt dich durch das Neugenerieren der Views, damit die neuen Spalten aktiv werden.When an update adds new data fields, the API dashboard now shows a prompt. Clicking "Start Setup Wizard" walks you through regenerating the views so the new columns become active.
v1.2.3
Juni 2026June 2026
Zeitraum-Filter im ZugriffsprotokollTime-range filter in the access log
+Das Zugriffsprotokoll (Nutzung & Protokoll) lässt sich jetzt nach Zeitraum filtern: 24 Stunden, 7, 30 oder 90 Tage oder ein eigener Von-bis-Bereich. Der Filter durchsucht das vollständige Protokoll lokal in deiner SQL2REST-Installation, nicht nur die bereits geladenen Zeilen.The access log (Usage & Log) can now be filtered by time range: 24 hours, 7, 30, or 90 days, or a custom from/to range. The filter scans the complete log locally in your own SQL2REST install, not just the rows already loaded.
v1.2.2
Juni 2026June 2026
Updates bleiben im API-DashboardUpdates stay on the API dashboard
✓Nach einem Auto-Update läuft der Dienst direkt im API-Dashboard weiter. Der Setup-Wizard wird nur noch bei Erst-Installation gestartet.After an auto-update, the service comes back on the API dashboard directly. The setup wizard now only starts on first install.
v1.2.0
Juni 2026June 2026
Neu gestaltetes API-DashboardRedesigned API dashboard
+Eine Oberfläche für Schlüssel, Nutzung und Status: Das API-Dashboard wurde von Grund auf neu gestaltet. Die Tabs Übersicht, Schlüssel sowie Nutzung & Protokoll fassen alles an einem Ort zusammen. Du siehst auf einen Blick, ob der Dienst läuft, kopierst die API-URL und verwaltest deine Zugänge, ohne den Dienst zu stoppen.One surface for keys, usage, and status: The API dashboard was redesigned from the ground up. The Overview, Keys, and Usage & Log tabs bring everything into one place. See at a glance whether the service is running, copy the API URL, and manage your access without stopping the service.
Team-Tarif: Mehrere API-SchlüsselTeam plan: multiple API keys
+Ein eigener Schlüssel pro Teammitglied oder Integration: Im Team-Tarif sind 5 API-Schlüssel enthalten. Jeden Schlüssel kannst du einzeln anzeigen, rotieren oder deaktivieren, ohne die anderen zu beeinflussen.A dedicated key per team member or integration: The Team plan includes 5 API keys. Reveal, rotate, or deactivate each one on its own without affecting the others.
•Diese Funktionen sind Teil des neuen Team-Tarifs. Use-Cases, Audit und Offboarding-Story auf der Team-Seite.These features are part of the new Team plan. Use cases, audit, and offboarding story on the Team page.
Berechtigungen pro SchlüsselPer-key permissions
+Zugriff gezielt einschränken: Lege je Schlüssel fest, auf welche Endpunkte er zugreifen darf (z.B. nur /customers und /orders). Optional mit IP-Freigabe und Ablaufdatum (30 Tage, 90 Tage, 1 Jahr oder eigenes Datum).Scope access precisely: For each key, choose which endpoints it may reach (e.g. only /customers and /orders). Optionally with an IP allowlist and an expiry date (30 days, 90 days, 1 year, or a custom date).
Nutzung & ProtokollUsage & audit log
+Sehen, was wirklich abgefragt wurde: Das neue Zugriffsprotokoll zeigt pro Schlüssel Zeitpunkt, Methode, den abgefragten Endpunkt inklusive Parameter, den Status und die IP. Das Protokoll bleibt auf deinem Server.See what was actually queried: The new access log shows, per key, the time, method, the endpoint that was queried including its parameters, the status, and the IP. The log stays on your server.
Remote-MCPRemote-MCP
•Netzwerk-Zugang ab Team-Tarif: Remote-MCP (Claude Desktop, Cursor, Windsurf über mehrere Rechner) ist jetzt Teil des Team-Tarifs. Lokales MCP am selben Rechner bleibt in allen Tarifen verfügbar. Personal-Nutzer sehen im Wizard einen Upgrade-Hinweis.Network access on the Team plan: Remote-MCP (Claude Desktop, Cursor, Windsurf across machines) is now part of the Team plan. Local MCP on the same machine stays available on all plans. Personal users see an upgrade prompt in the wizard.
v1.1.99
Juni 2026June 2026
Setup-WizardSetup wizard
+Suchfeld im Spaltenwähler: Im Schritt "Felder konfigurieren" hat der Spaltenwähler jetzt ein Suchfeld. Wird ein Feld nicht automatisch erkannt, lässt sich die passende Spalte per Tippen filtern, statt durch die lange, nach Tabellen gruppierte Liste zu scrollen.Search in the column picker: In the "Configure fields" step, the column picker now has a search box. If a field is not auto-detected, you can filter to the right column by typing instead of scrolling the long, table-grouped list.
API-DashboardAPI dashboard
+API-Dashboard direkt öffnen: Die neue ApiDashboard.bat öffnet das API-Dashboard im Browser, ohne den Dienst zu stoppen. StartWizard.bat bleibt für die Ersteinrichtung erhalten.Open the API-Dashboard directly: The new ApiDashboard.bat opens the API Dashboard in your browser without stopping the service. StartWizard.bat remains for first-time setup.
v1.1.98
Juni 2026June 2026
ProduktdatenProduct data
+Neu: Warengruppe: Die JTL-Warengruppe eines Artikels ist jetzt als ProductGroup über /products, den MCP-Server und den Setup-Wizard verfügbar.New: product group: An article's JTL Warengruppe is now available as ProductGroup via /products, the MCP server and the setup wizard.
✓Hersteller und Kategorie werden befüllt: In manchen Installationen kamen ManufacturerName und Category bei allen Artikeln leer zurück. Beide Felder werden jetzt korrekt erkannt und in /products ausgegeben.Manufacturer and category now populated: In some installations ManufacturerName and Category came back empty for every article. Both fields are now detected correctly and returned in /products.
•Nach dem Update einmal neu einrichten: Damit die neuen Felder gezogen werden, den Setup-Wizard einmal erneut durchlaufen. Ein reines Update genügt nicht, da die Datenbank-Views dabei neu erzeugt werden müssen.Re-run setup once after updating: To pick up the new fields, run through the schema setup in the wizard once more. A plain update is not enough, because the database views need to be regenerated.
v1.1.97
Juni 2026June 2026
1-Klick-Auto-Update1-Click Auto-Update
✓Updates auch in Firmennetzwerken: In Umgebungen mit SSL-Inspection oder strengen Proxys konnte der Update-Download mit einem 401-Fehler abbrechen. Das ist jetzt behoben. Betrifft sowohl das Update über das API-Dashboard als auch update.bat.Updates work behind corporate proxies: In environments with SSL inspection or strict proxies, the update download could fail with a 401 error. This is now fixed. Affects both the updater in the API dashboard and update.bat.
Windows-Dienst-InstallationWindows service installation
✓Setup fordert Administrator-Rechte an:StartWizard.bat startet sich jetzt automatisch mit erhöhten Rechten. Auf Systemen, auf denen das Setup ohne Administrator-Rechte lief, konnte die Registrierung des Windows-Dienstes fehlschlagen, während die API trotzdem lief und damit einen Server-Neustart nicht überstand. Mit der automatischen Rechteanforderung wird der Dienst zuverlässig eingerichtet.Setup requests Administrator rights:StartWizard.bat now self-elevates. On systems where setup ran without Administrator rights, the Windows service registration could fail while the API still ran, meaning it would not survive a server reboot. With the automatic elevation prompt the service is set up reliably.
✓Installation wird überprüft: Der Setup-Wizard meldet nur dann Erfolg, wenn der Dienst wirklich registriert und gestartet wurde. Andernfalls erscheint eine klare Handlungsanweisung statt einer falschen Erfolgsmeldung.Install is verified: The wizard only reports success once the service is actually registered and running. Otherwise you get a clear next step instead of a false success message.
✓Ehrliche Statusanzeige: Das API-Dashboard zeigt jetzt Läuft – nicht als Dienst installiert an, wenn SQL2REST nur als laufendes Programm und nicht als Windows-Dienst aktiv ist, inklusive Reparatur-Hinweis.Honest status indicator: The API dashboard now shows Running – not installed as a service when SQL2REST is only running as a bare program rather than a Windows service, including a repair hint.
API-DashboardAPI dashboard
✓Stabilere Anmeldung im API-Dashboard: Einzelne Aktionen konnten mit "Invalid setup token" abbrechen, etwa wenn ein Browser-Tab über einen Server-Neustart hinweg offen blieb. Das API-Dashboard erneuert das Token jetzt automatisch und wiederholt die Aktion, statt abzubrechen.Steadier authentication in the API dashboard: Individual actions could fail with "Invalid setup token", for example when a browser tab stayed open across a server restart. The API dashboard now refreshes the token automatically and retries the action instead of failing.
✓Health-Check direkt im API-Dashboard: Der /health-Schnellzugriff zeigt den Verbindungsstatus aller Mandanten-Datenbanken jetzt direkt an.Health check right in the API dashboard: The /health quick action now shows the connection status of all mandant databases inline.
+Mitgeliefertes Projekt-Template: Die Installation enthält jetzt den Ordner claude-desktop-template/ mit fertigen Projekt-Anweisungen (Deutsch und Englisch) plus Setup-README. In ein Claude-Desktop-Projekt einfügen, und Claude kennt Ihr JTL-Wawi-Datenmodell, die verfügbaren MCP-Tools und typische Workflows sofort.Bundled project template: The install now includes a claude-desktop-template/ folder with ready-to-paste project instructions (German and English) plus a setup README. Paste it into a Claude Desktop project and Claude knows your JTL-Wawi data model, the available MCP tools, and typical workflows out of the box.
+Remote-MCP-Endpunkt: Optionaler HTTP-Transport unter /mcp. Claude Desktop, Claude Code, Cursor und Windsurf auf anderen Arbeitsplätzen können jetzt mit einer einzigen SQL2REST-Installation reden. Stdio-MCP (sql2rest.exe --mcp) läuft unverändert weiter.Remote-MCP endpoint: Optional HTTP transport at /mcp. Claude Desktop, Claude Code, Cursor, and Windsurf on other workstations can now talk to a single shared SQL2REST install. Stdio MCP (sql2rest.exe --mcp) keeps working unchanged.
+Setup-Wizard: Neuer Bereich "Remote-MCP" in Schritt 5 (Bereitstellen) mit Toggle, Lokal-URL (Kopier-Button) und öffentlicher URL für den Reverse-Proxy. Hinweis-Zeile bei Internet-Exponierung ohne HTTPS.Setup wizard: New "Remote-MCP" section in Step 5 (Deploy) with toggle, Local URL (copy button), and Public URL for the reverse proxy. Warning row when internet-exposed without HTTPS.
+Konfiguration: Neuer Abschnitt [MCP] in config.ini mit den Schlüsseln HttpEnabled (Default false), Path (Default /mcp), HttpTimeoutSeconds (Default 60), PublicUrl.Configuration: New [MCP] section in config.ini with keys HttpEnabled (default false), Path (default /mcp), HttpTimeoutSeconds (default 60), PublicUrl.
•Authentifizierung: Verwendet den bestehenden [API] ApiKey über den Header X-API-Key. Kein neues Secret nötig. Für Internet-Exponierung Reverse-Proxy mit HTTPS empfohlen (Anleitung).Authentication: Reuses your existing [API] ApiKey via the X-API-Key header. No new secret. For internet exposure put SQL2REST behind a reverse proxy with HTTPS (guide).
✓Build-Härtung: Release-Pipeline führt jetzt einen Smoke-Test aus, der prüft, dass /mcp einen Auth-Fehler (403) und keinen Lifespan-Bug (500) liefert. Verhindert, dass der bekannte FastMCP "Task group not initialized"-Bug ausgeliefert wird.Build hardening: Release pipeline now runs a smoke test asserting /mcp returns auth-failure 403, not a lifespan 500. Prevents the known FastMCP "Task group not initialized" regression from shipping.
v1.1.94
Juni 2026June 2026
Bestellungen / OrdersOrders
•Datumsfilter korrigiert:GET /orders?from=2026-05-25 wirft keinen HTTP-500 mehr und ?from=2026-05-01 liefert tatsächlich Aufträge vom 1. Mai (vorher: 5. Januar, durch Locale-Misinterpretation auf deutschen SQL-Server-Installationen).Date filter fixed:GET /orders?from=2026-05-25 no longer throws HTTP 500, and ?from=2026-05-01 now returns May 1 orders as expected (previously returned January 5 due to locale-driven DMY misinterpretation on German SQL Server installs).
•Standard-Sortierung:GET /orders liefert jetzt standardmäßig nach OrderDate DESC sortiert (neueste zuerst). Vorher wurden Aufträge alphabetisch nach Auftragsnummer ausgegeben (Shopify-Aufträge vor Amazon-Aufträgen, unabhängig vom Datum). Mit ?sort= bleibt explizite Steuerung möglich.Default sort:GET /orders now defaults to OrderDate DESC (newest first). Previously, orders came back alphabetically by order number (Shopify orders before Amazon orders regardless of date). Explicit ?sort= still wins.
MCP-Tools (Einkauf)MCP Tools (Procurement)
+Wareneingang über Claude Desktop: Sechs neue MCP-Tools machen die v1.1.91-REST-Endpunkte für Claude und andere AI-Assistenten sichtbar: list_purchase_orders, get_purchase_order, list_suppliers, get_supplier, list_goods_receipts, get_goods_receipt. Voraussetzung: Einkauf-Toggle im Setup-Wizard aktiviert.Procurement via Claude Desktop: Six new MCP tools expose the v1.1.91 REST endpoints to Claude and other AI assistants: list_purchase_orders, get_purchase_order, list_suppliers, get_supplier, list_goods_receipts, get_goods_receipt. Requires the procurement toggle in the setup wizard.
v1.1.93
Juni 2026June 2026
Wizard & DashboardWizard & Dashboard
+Klarere Benennung: Der lokale Wizard-Landingscreen heißt jetzt "API-Dashboard" (vorher "Source Hub"). Der CTA der zum Web-Konto auf sql2rest.com führt heißt jetzt "Web-Dashboard öffnen". Macht die Unterscheidung lokal vs. online sichtbar.Clearer naming: The local wizard landing screen is now called "API Dashboard" (previously "Source Hub"). The CTA that opens the web account on sql2rest.com is now labeled "Open Web Dashboard". Makes the local vs online distinction visible.
SicherheitSecurity
✓Wizard-Schriftarten korrekt geladen: Die Content-Security-Policy blockierte zuvor die im Wizard inline eingebetteten Plus-Jakarta-Sans- und Geist-Mono-Schriftarten. Wizard rendert jetzt wieder in der vorgesehenen Typografie.Wizard fonts now load correctly: The Content Security Policy was blocking the inline-embedded Plus Jakarta Sans and Geist Mono fonts in the wizard. The wizard now renders in the intended typography again.
v1.1.92
Juni 2026June 2026
SicherheitSecurity
✓Sicherer Default-Bind: Frische Installationen starten den Setup-Wizard jetzt mit der Radio-Auswahl "Nur Localhost" vorausgewählt. Netzwerk-Zugriff ist eine bewusste Opt-in-Entscheidung statt stiller Default. Bestehende Installationen bleiben unverändert.Safer default bind: Fresh installs now land on the "Localhost only" radio in the setup wizard. Network exposure is an explicit opt-in instead of a silent default. Existing installs are unchanged.
+Source-Hub-Warnung bei öffentlicher Exponierung: Wenn die API auf allen Netzwerk-Schnittstellen lauscht, zeigt der Source Hub jetzt ein gelb hinterlegtes Warning-Badge mit Hinweis auf die Reverse-Proxy-Anforderung. Vorher war diese Auswahl im Badge nicht von "Spezifische IPs" unterscheidbar.Source Hub warning for public exposure: When the API is bound to all network interfaces, the Source Hub now renders a yellow warning badge pointing at the reverse-proxy requirement. Previously this case was indistinguishable from "Specific IPs" in the badge.
•Wizard-Hinweis: Bei Auswahl der "Alle IPs"-Option erscheint im Wizard eine Hinweis-Zeile zur Reverse-Proxy + HTTPS-Anforderung.Wizard hint: Selecting the "All IPs" radio in the wizard now surfaces a hint row explaining the reverse-proxy + HTTPS requirement.
v1.1.91
Mai 2026May 2026
Einkauf (Wareneingang)Procurement (Wareneingang)
+Drei neue Endpunkte für den Einkauf:GET /goods-receipts (Wareneingänge auf Lagerbewegungs-Ebene), GET /suppliers (Lieferanten mit Adresse und Geschäftskonditionen) und GET /purchase-orders (flache Header+Position-Sicht aus tLieferantenBestellung).Three new endpoints for purchasing workflows:GET /goods-receipts (Wareneingänge / stock-movement-level receipts), GET /suppliers (Lieferanten with address and commercial terms), and GET /purchase-orders (flat header+line view from tLieferantenBestellung).
+Soll-Ist-Reporting gegen Lieferantenverträge: /goods-receipts liefert die verknüpfte Bestellposition mit po_qty_ordered, po_qty_delivered_total und po_qty_still_open für Buchungsart-10-Zeilen. /purchase-orders?open_only=true gibt Positionen mit offener Menge > 0 zurück.Soll-Ist reporting against supplier contracts: /goods-receipts exposes the linked PO position with po_qty_ordered, po_qty_delivered_total, and po_qty_still_open for Buchungsart 10 rows. /purchase-orders?open_only=true returns positions with qty_open > 0.
+Opt-in über Wizard-Toggle. Einkauf ist standardmäßig deaktiviert. Aktivieren im Setup-Wizard in Schritt 3 unter "Einkauf / Wareneingang" (oder [ENTITIES] ProcurementEnabled = true in config.ini setzen). Im Aus-Zustand sind die Endpunkte nicht registriert und liefern 404; die API-Oberfläche bleibt sauber für Kunden ohne Einkaufs-Bedarf.Opt-in via wizard toggle. Procurement is off by default. Enable it in the setup wizard at Step 3 under "Einkauf / Wareneingang" (or set [ENTITIES] ProcurementEnabled = true in config.ini). When off, the endpoints are not registered and return 404, keeping the API surface clean for customers who do not need procurement data.
+Filter auf /goods-receipts:booking_type, booking_type_not_in (CSV), supplier_id, sku, has_po, since, until.Filters on /goods-receipts:booking_type, booking_type_not_in (CSV), supplier_id, sku, has_po, since, until.
+Verfügbar in allen Lizenz-Tiers (Trial, Personal, Agency), sobald der Wizard-Toggle aktiv ist. Kein Tier-Gating auf den Einkauf-Endpunkten.Available on all license tiers (trial, personal, agency) when the wizard toggle is on. No tier gating on procurement endpoints.
HinweiseNotes
•Wenn Sie von v1.1.90 oder älter updaten und die Einkauf-Endpunkte nutzen möchten, den Setup-Wizard einmal neu durchlaufen; der Toggle liegt in Schritt 3 ("Felder konfigurieren") unterhalb des "Rechnungs-PDFs"-Abschnitts.If you update from v1.1.90 or older and want the procurement endpoints, re-run the setup wizard once: the toggle is in Step 3 ("Felder konfigurieren") below the "Rechnungs-PDFs" section.
✓Setup funktioniert jetzt auch auf gehosteten JTL-Wawi-Installationen mit erzwungenen SQL-Server-Passwortrichtlinien. Der SQL2REST-Login wird jetzt mit deaktivierten CHECK_POLICY und CHECK_EXPIRATION angelegt, damit der Wizard auf Managed-Hosting-Providern durchläuft, bei denen globale Passwortrichtlinien die Verbindung direkt nach dem Setup blockiert haben (SQL-Fehler 18456). Bestehende kaputte Installationen werden beim nächsten Wizard-Lauf automatisch repariert.Setup now succeeds on hosted JTL-Wawi installations with enforced SQL Server password policies. The SQL2REST login is now created with CHECK_POLICY and CHECK_EXPIRATION disabled, so the wizard works on managed-hosting providers where global password policies previously blocked the connection immediately after setup (SQL error 18456). Existing broken installs are healed on the next wizard run.
v1.1.89
Mai 2026May 2026
BugfixesBug Fixes
✓Der Setup-Wizard scheitert nicht mehr auf JTL-Installationen mit mehreren Shop-Sprachen, wenn dasselbe Eigene Feld (z. B. "Tracking URL") in mehreren Sprachen oder Attributgruppen definiert ist. Vorher produzierte das doppelte CF_*-Spalten in view_API_Orders und brach die View-Erstellung ab.Setup wizard no longer fails on JTL installations with multiple shop languages when the same custom field ("Eigenes Feld", e.g. "Tracking URL") is defined across several languages or attribute groups. Previously this produced duplicate CF_* columns in view_API_Orders and aborted the view creation.
✓Mehrsprachige Eigene Felder vervielfachen keine Auftrags- oder Artikel-Zeilen mehr in der API-Antwort. Die View joint jetzt einen Sprachwert pro Attribut.Multi-language custom fields no longer multiply order or article rows in the API response. The view now joins one language value per attribute.
✓Der nur-lesende SQL2REST-Benutzer wird auf diesen Installationen jetzt zuverlässig angelegt (vorher wurde durch die fehlgeschlagene View-Erstellung auch die Benutzer-Anlage zurückgerollt, was nach dem Wizard zu SQL-Server-Login-Fehler 18456 führte).The SQL2REST read-only user is now created reliably during setup on these installations (previously the failed view creation rolled back the user creation, causing SQL Server login error 18456 after the wizard).
HinweiseNotes
•Bei mehrsprachigen Setups liefert die API jetzt den primärsprachigen Wert jedes Eigenen Felds (niedrigste kSprache, üblicherweise Deutsch). Wer im selben Eigenen Feld unterschiedliche Sprachwerte pflegt und beide über die API braucht, legt vorerst ein separates Eigenes Feld pro Sprache an. Sprach-spezifische API-Spalten stehen auf der Roadmap.On multi-language setups, the API now returns the primary-language value of each custom field (lowest kSprache, typically German). If you maintain different per-language values in the same Eigenes Feld and need both via API, define a separate Eigenes Feld per language for now. Per-language API columns are on the roadmap.
v1.1.88
Mai 2026May 2026
AI Listing OptimizerAI Listing Optimizer
+JTL-Artikelnamen und -Beschreibungen mit dem eigenen KI-Key optimieren. Lokal, DSGVO-konform, BYOK für OpenAI, Anthropic und Gemini. Kein Token-Aufschlag.Optimize JTL product titles and descriptions with your own AI key. Local, GDPR-compliant, BYOK for OpenAI, Anthropic, and Gemini. No token markup.
+Source-Hub-Launcher: Optimizer aus der Local-DB-Kachel als Vollbild-Overlay öffnen. Die aktive Quelle wird durch jeden Schritt durchgereicht.Source Hub launcher: open the Optimizer from the Local DB tile as a fullscreen overlay. Active source threaded through every step.
+Editierbarer Vorschau-Schritt: gerenderten Prompt pro Artikel vor dem Lauf prüfen und anpassen. Harte Obergrenze in EUR oder Tokens pausiert den Lauf bei Überschreitung.Editable Vorschau step: review and tweak the rendered prompt per product before launching the run. Hard cap in EUR or tokens pauses the run if it overshoots.
+Approval-Grid pro Artikel: annehmen, ablehnen, inline editieren oder eine einzelne Zeile mit angepasstem Prompt neu generieren. Klick irgendwo auf die Vorschlag-Karte aktiviert den Edit-Modus. Eingebettete Amazon-SERP-Vorschau zeigt, wie der neue Titel wirkt.Per-product approval grid: approve, reject, edit inline, or regenerate a single row with a tweaked prompt. Click anywhere on the generated card to enter edit mode. Embedded Amazon SERP preview shows how the new title looks.
+Ameise-CSV-Export an einem festen Pfad mit "Im Explorer öffnen"-Button. Standardmäßig UTF-8 mit BOM, CP1252 als Fallback.Ameise CSV export at a fixed path with "Open in Explorer" button. UTF-8 with BOM by default, CP1252 fallback.
+Verlaufs-Tab mit DPAPI-verschlüsseltem Audit-Drill-down pro Lauf. Jede Zeile speichert den genauen Prompt, der an das LLM gesendet wurde. Crash-Resume beim nächsten Start.History tab with DPAPI-encrypted per-run audit drill-down. Each row stores the exact prompt that was sent to the LLM. Crash-resume on next launch.
Source HubSource Hub
+Klickbarer Status-Chip: Klick auf "Aktiv" stoppt den SQL2REST-Windows-Dienst, Klick auf "Offline" startet ihn. Kein Umweg mehr über services.msc.Clickable status chip: click "Aktiv" to stop the SQL2REST Windows service, click "Offline" to start it. No more dropping into services.msc.
+Post-Install-Auto-Redirect: Wenn der Wizard die Dienst-Installation abschließt, leitet er auf den laufenden Production-Port weiter, mit sichtbarem "Source Hub öffnen"-CTA.Post-install auto-redirect: when the wizard finishes installing the service, it forwards you to the running production port with a visible "Open Source Hub" CTA.
BugfixesBug Fixes
✓API-Key wird jetzt über localStorage über Browser-Tabs und Neuinstallationen hinweg gespeichert. Vorher bei Tab-Schließung verloren, was den Post-Install-Handshake erzwang.API key now persists across browser tabs and reinstalls via localStorage. Previously cleared on tab close, forcing you to redo the post-install handshake.
✓Setup-Token-Refresh überflutet den Server im Normalmodus nicht mehr: In-flight-Dedupe, 5s-Failure-Backoff und ein früher Skip, wenn bereits ein API-Key geladen ist.Setup-token refresh no longer storms the server in normal mode: in-flight dedupe, 5s failure backoff, and an early skip when an API key is already loaded.
✓Token-Summen im Run-Schritt enthalten jetzt auch fehlgeschlagene Zeilen. Vorher zeigte das Live-KPI 0 Output-Tokens, obwohl die einzelnen Karten welche auswiesen.Token totals on the Run step now include failed rows. Previously the live KPI showed 0 output tokens even though per-row cards displayed them.
•Wer auf v1.1.86 oder älter war: nach dem Update den Setup-Wizard einmal neu durchlaufen, damit die neue Spalte ProductDescription für die Optimizer-Variable {beschreibung} verfügbar ist.If you were on v1.1.86 or older, re-run the setup wizard once after updating so the new ProductDescription column is available to the Optimizer's {beschreibung} variable.
v1.1.86
Mai 2026May 2026
BugfixesBug Fixes
✓Attribut-Filter-Ergebnisse enthalten jetzt immer das attributes-Objekt. Bei einem Filter wie ?attribute[farbe]=rot bringt jeder Artikel in der Antwort seine Merkmale schon mit.Attribute filter results now always include the attributes object. When you filter by ?attribute[farbe]=rot, each product in the response already carries its attributes.
✓Behoben: Setup-Wizard scheiterte bei der Erstellung der Merkmal-Views (vw_merkmale_catalog, vw_article_merkmale) wegen einer ORDER BY-Klausel, die in SQL-Server-Views nicht erlaubt ist.Fixed setup wizard failing to create Merkmale views (vw_merkmale_catalog, vw_article_merkmale) due to an ORDER BY clause not allowed in SQL Server views.
v1.1.85
Mai 2026May 2026
Merkmale (Attribute)Attributes (Merkmale)
+Neuer Endpunkt: GET /attributes liefert den vollen Merkmal-Katalog gruppiert nach NameNew endpoint: GET /attributes returns the full Merkmale catalog grouped by name
+Artikel betten ein attributes-Objekt ein: GET /products/{sku} liefert {"Farbe": ["Rot"], "Größe": ["M"]}Products embed an attributes object: GET /products/{sku} returns {"Farbe": ["Rot"], "Größe": ["M"]}
+List-Opt-in: GET /products?include=attributes vermeidet N+1 bei BedarfList opt-in: GET /products?include=attributes avoids N+1 when needed
+Artikel nach Merkmal filtern: GET /products?attribute[farbe]=rot, mehrere Filter werden UND-verknüpftFilter products by attribute: GET /products?attribute[farbe]=rot, multiple filters AND-combined
+Advanced-Modus: ?advanced=true macht JTL_AttributeId und JTL_ValueId sichtbar, für Write-Back über die offizielle JTL-APIAdvanced mode: ?advanced=true exposes JTL_AttributeId and JTL_ValueId for write-back via the official JTL API
+Einzelne Merkmale über den Eintrag [MERKMALE] Disabled= in config.ini ausblendenHide individual attributes via the [MERKMALE] Disabled= entry in config.ini
MCP-ServerMCP Server
+Zwei neue MCP-Tools für KI-Assistenten: list_attributes und filter_products_by_attributeTwo new MCP tools for AI assistants: list_attributes and filter_products_by_attribute
•Insgesamt jetzt 15 Tools und 2 RessourcenTotal now 15 tools and 2 resources
HinweiseNotes
•Erfordert ein erneutes Durchlaufen des Setup-Wizards, damit die neuen Views vw_merkmale_catalog und vw_article_merkmale angelegt werdenRequires re-running the setup wizard to create the new vw_merkmale_catalog and vw_article_merkmale views
•Übersetzungen werden beim Anlegen der View fixiert (standardmäßig Deutsch). Laufzeit-Umschaltung per Accept-Language ist noch nicht aktivTranslations are baked at view-creation time (German by default). Runtime Accept-Language switching is not active yet
v1.1.81
April 2026April 2026
Lagerbestand & IDsStock & IDs
+Neuer Endpunkt: GET /products/{sku}/stock: Lagerbestand pro LagerNew endpoint: GET /products/{sku}/stock - per-warehouse stock breakdown
+Interne JTL-IDs jetzt entitätenübergreifend für Write-Back über die offizielle JTL-API verfügbar: JTL_CustomerId, JTL_SalesOrderId, JTL_ItemId, JTL_DeliveryNoteId, JTL_ShipmentId, JTL_ProductIdInternal JTL IDs exposed across entities for write-back via JTL's official API: JTL_CustomerId, JTL_SalesOrderId, JTL_ItemId, JTL_DeliveryNoteId, JTL_ShipmentId, JTL_ProductId
+Interne-ID-Felder sitzen im Wizard unter "Erweitert", standardmäßig deaktiviert. Der JTL_-Präfix macht ihren Zweck sofort sichtbarInternal-ID fields sit under an "Advanced" collapsible in the wizard, default disabled. The JTL_ prefix makes their purpose explicit at a glance
FilterFiltering
+Exact-Match-Filter ?customer_number= auf /customers und /ordersExact-match filter ?customer_number= on /customers and /orders
+Exact-Match-Filter ?sku= auf /productsExact-match filter ?sku= on /products
✓/stock?sku=-Filter funktioniert jetzt; schlug vorher mit "Filter column not available" fehl/stock?sku= filter now works - previously failed with "Filter column not available"
ZuverlässigkeitReliability
+Auto-Restart bei Crash über NSSM-Service-ConfigAuto-restart on crash via NSSM service config
✓/health liefert jetzt HTTP 503 mit Pro-Mandant-Detail, wenn eine DB-Verbindung scheitert; war vorher immer 200/health now returns HTTP 503 with per-mandant detail when any DB connection fails - was always 200
•Getrieben von Production-Feedback unserer Early Adopters, danke für die Hinweise zu diesen Edge CasesDriven by production feedback from early adopters - thank you for reporting these edge cases
v1.1.79
April 2026April 2026
AdressenAddresses
+Aufträge enthalten jetzt verschachtelte BillingAddress- und ShippingAddress-ObjekteOrders now include nested BillingAddress and ShippingAddress objects
+Kunden enthalten jetzt ein verschachteltes Address-ObjektCustomers now include a nested Address object
+Sync-Endpunkte enthalten ebenfalls verschachtelte AdressenSync endpoints also include nested addresses
•Felder: Street, PostalCode, City, Country, CompanyName, FirstName, LastNameFields: Street, PostalCode, City, Country, CompanyName, FirstName, LastName
LieferscheineDelivery Notes (Lieferscheine)
+Neuer Endpunkt: GET /delivery-notesNew endpoint: GET /delivery-notes
+Suche: GET /delivery-notes?search=TEXTSearch: GET /delivery-notes?search=TEXT
+Detail mit Positionen: GET /delivery-notes/{number}Detail with line items: GET /delivery-notes/{number}