Kleines Update von meiner Seite:
Da die Probleme mit Cloud-Tunnel / Wawi-API / Shipping 2.0 offenbar nicht nur uns betreffen, habe ich für DHL inzwischen einen alternativen Versandweg umgesetzt, der komplett ohne die CloudConnected-Wawi-API und ohne Shipping 2.0 funktioniert.
Grundprinzip
JTL-Wawi → Versanddatenexport CSV → lokaler DHL-Worker → DHL Parcel DE Shipping API → PDF-Label + Trackingnummer → Tracking-CSV zurück zu JTL
Optional läuft auf dem Versand-PC noch ein kleiner Print-Agent, der neue DHL-PDF-Labels automatisch auf dem eingerichteten Etikettendrucker ausgibt.
Damit bleibt JTL weiterhin führend für Lieferschein, Paket-ID, Versandart und Trackingnummer. Lediglich die eigentliche DHL-Labelerstellung läuft außerhalb von Shipping 2.0 direkt über die offizielle DHL-API.
Aktuell umgesetzt sind:
- DHL Paket DE
- DHL Kleinpaket
- DHL Paket International innerhalb der EU
- automatischer PDF-Labelabruf
- automatische Erzeugung der Tracking-CSV für JTL
- optionaler automatischer Labeldruck auf einem Client-PC
- Doppelbuchungsschutz über die JTL-Paket-ID
- Fehlerordner und Logging
- Production-Dry-Run vor dem ersten Echtversand
- Production standardmäßig gesperrt und erst nach erfolgreichem Test freischaltbar
- Autostart für Server-Worker und Client-Print-Agent
Nicht-EU-Sendungen habe ich bewusst nicht automatisiert, weil dort zusätzliche Zoll- und Exportdaten berücksichtigt werden müssen.
Das Ganze basiert auf dem klassischen
Versanddatenexport/-import von JTL-Wawi. Es wird also keine JTL REST API benötigt und damit auch kein funktionierender Cloud-Tunnel.
Der Worker kommuniziert für die Labelerstellung
direkt mit der offiziellen DHL Parcel DE Shipping / Paket DE Versenden API V2. Damit besteht für diesen DHL-Versandweg technisch keine Abhängigkeit mehr von JTL Shipping 2.0 oder dessen Cloud-Anbindung.
Vermutlich verwendet auch JTL im Hintergrund entsprechende aktuelle DHL-Schnittstellen. Welche konkrete DHL-API bzw. API-Version JTL innerhalb von Shipping 2.0 verwendet, ist öffentlich allerdings nicht eindeutig dokumentiert. Deshalb möchte ich das nicht als gesicherte Aussage darstellen.
Der entscheidende Punkt ist:
JTL liefert in dieser Lösung die Versanddaten, die eigentliche DHL-Buchung erfolgt direkt zwischen dem lokalen Worker und DHL. Anschließend erzeugt der Worker eine JTL-kompatible Trackingdatei.
Hinweis zum Tracking-Rückimport in JTL-Wawi
Hier gibt es bei meinem Aufbau noch eine Besonderheit:
In
Versand → Versanddatenaustausch sind sowohl Export als auch Import mit
„Automatischer Abgleich aktiv“ eingerichtet.
Der Export funktioniert bei mir damit wie vorgesehen automatisch.
Beim Tracking-Rückimport verhält sich meine reine JTL-Wawi-Installation allerdings anders:
Der DHL-Worker erzeugt die Trackingdatei automatisch und legt sie korrekt im konfigurierten Importordner ab. Trotz aktiviertem
„Automatischer Abgleich“ wird diese Datei bei mir jedoch nicht selbstständig in JTL-Wawi eingelesen.
Der letzte Schritt erfolgt deshalb aktuell über:
Versand → Lieferscheine → Versanddaten importieren
Dort wird die Importvorlage verwendet bzw. die vom Worker erzeugte Tracking-CSV eingelesen und mit
OK bestätigt.
Anschließend wird die DHL-Sendungsnummer korrekt dem Paket bzw. Lieferschein zugeordnet.
Das ist kein Problem des DHL-Workers: Die erzeugten Trackingdateien liegen korrekt im Importordner und lassen sich manuell zuverlässig in JTL importieren.
JTL beschreibt einen im Hintergrund laufenden automatischen Sendungsdaten-Importservice insbesondere im Zusammenhang mit
JTL-WMS. Wer WMS bzw. eine entsprechende Lagerlösung einsetzt, kann daher möglicherweise auch diesen letzten Schritt vollständig automatisieren.
Ich selbst nutze aktuell weder JTL-WMS noch JTL-Packtisch+. Deshalb möchte ich nicht behaupten, dass der automatische Trackingimport in jeder reinen Wawi-Installation funktioniert.
Der tatsächliche Ablauf bei mir ist momentan:
JTL ausliefern → Export-CSV wird erzeugt → DHL-Worker erstellt automatisch das DHL-Label → Label wird automatisch am Versand-PC gedruckt → Tracking-CSV wird automatisch erzeugt → einmal in JTL „Versanddaten importieren“ → Trackingnummer steht am Paket/Lieferschein.
Bis auf diesen letzten JTL-Import läuft der Versandprozess vollständig automatisch.
Für die eigentliche DHL-Buchung ist man damit technisch nicht mehr darauf angewiesen, dass Shipping 2.0, der JTL-Cloud-Tunnel oder die CloudConnected-Wawi-API verfügbar sind. Eventuelle lizenz- oder vertragsseitige Vorgaben von JTL bleiben davon natürlich unberührt.
Ich habe das Ganze neutralisiert und dokumentiert, damit andere es ebenfalls testen können. Im ZIP sind
keine DHL-Zugangsdaten, keine Abrechnungsnummern und keine firmenspezifischen Daten enthalten.
Angehängt
1. JTL-DHL-Komplettpaket-neutral-v1.0.zip
Enthält Server-Worker, Client-Print-Agent, Beispielkonfigurationen und Einrichtungsdateien.
2. JTL-DHL-Versandautomatisierung_Anleitung_neutral.pdf
Komplette Schritt-für-Schritt-Anleitung für JTL, DHL Developer Portal, Worker, Tracking-Rückimport und automatischen Labeldruck.
Wichtig:
Das ist keine offizielle JTL-Lösung, sondern ein von mir eingerichteter Community-Workaround. Wer ihn nutzt, sollte unbedingt zuerst Sandbox bzw. Production-Validierung verwenden und erst danach einen einzelnen kontrollierten Echtversand durchführen.
Kleines Update / Patch v1.1
Für bestehende Installationen gibt es zusätzlich einen kleinen Patch für den DHL-Worker.
Bisher wurden die Trackingdateien beispielsweise so benannt:
tracking_P3164_20260929_125426595.csv
Da man anhand der internen PaketRef nicht immer sofort erkennt, zu welchem Lieferschein die Datei gehört, enthält der Dateiname jetzt zusätzlich die Lieferscheinnummer:
tracking_4931-001_P3164_20260929_125426595.csv
Damit ist direkt sichtbar:
Lieferschein 4931-001 → PaketRef P3164
Am JTL-Import selbst ändert sich nichts. Der Inhalt der CSV bleibt unverändert und die bestehende Tracking-Importvorlage muss nicht angepasst werden.
Für bestehende Installationen reicht es aus, den Worker zu beenden, die Datei JTL-DHL-Worker.ps1 durch die Version aus dem Patch zu ersetzen und den Worker anschließend wieder zu starten.
Zusätzlicher Anhang:
JTL-DHL-Worker-Patch-v1.1-ReadableTrackingName.zip