Wenn du EasyBill mit einen Onlineshop mit vielen Bestellungen pro Tag betreibst, kennst du das Problem: Die Rechnungen liegen in EasyBill, die Etiketten entstehen aber in der Software von DHL oder DPD. Dazwischen liegt Handarbeit. Adressen kopieren, Gewichte ausrechnen, Entscheiden welcher Carrier da Paket bekommt etc. Genau diese Lücke schließt ebVersand, ein Werkzeug, das ich für Versandhändler entwickelt habe. Mit ebVersand 2 habe ich die Anwendung jetzt komplett neu geschrieben: moderner, einfacher testbar und erweiterbar.
In diesem Beitrag zeige ich dir, was die Software leistet, welche Regeln im Hintergrund arbeiten und warum sich die Migration gelohnt hat.
EasyBill und das Problem der Versanddaten zwischen Buchhaltung und Paketdienst
Easybill ist ein beliebtes Rechnungsprogramm für Händler. Es kennt Kunden, Artikel, Rechnungsbeträge und Zahlungsarten. Was Easybill nicht kennt, sind Gewichte und das Importformat der Etikettensoftware von DHL und DPD. Diese Programme erwarten Textdateien mit festen Spalten, in einer bestimmten Zeichenkodierung und mit Windows-Zeilenenden.
Hinzu kommen Fragen, die dir jede Bestellung neu stellt:
- Wie schwer ist das Paket?
- Wird per Nachnahme bezahlt?
- Möchte der Kunde mit DHL oder mit DPD beliefert werden?
- Gibt es eine abweichende Lieferadresse?
- Gehört der Kunde zu einer Gruppe, die gar nicht verschickt wird, zum Beispiel weil sie über einen anderen Kanal abgewickelt wird?
Bei einigen Dutzend Paketen am Tag kostet dich das schnell eine Stunde, und Tippfehler fallen oft erst beim Zusteller auf.
Die Lösung: ebVersand v2, automatisierter Labeldruck für EasyBill
ebVersand 2 ist eine Desktop-Anwendung für Windows und macOS. Sie holt die Rechnungen eines Zeitraums direkt über die Easybill REST API, berechnet für jede Bestellung Gewicht und Paketdienst und schreibt daraus Spool-Dateien, die DHL und DPD ohne weitere Nacharbeit importieren.
So sieht der Ablauf im Alltag aus:
- Du wählst einen Zeitraum und lädst die Rechnungen aus easybill.
- Du prüfst die Liste. Auffällige Adressen, etwa eine Straße ohne Hausnummer, sind farbig markiert, und du kannst sie direkt in der Anwendung korrigieren.
- Du wählst die Bestellungen aus und exportierst sie für DHL oder DPD.
- In der Etikettensoftware importierst du die erzeugte Datei und druckst die Etiketten.
Neben easybill habe ich auch den Amazon Versand-CSV-Export angebunden. Bestellungen aus dem Amazon-Marktplatz landen so im selben Workflow und in denselben Dateien wie die Shop-Bestellungen.

Die Geschäftsregeln: Gewicht, Carrier und Adresse
Das Herz der Anwendung sind die Versandregeln:
Gewicht automatisch ermitteln
Zuerst sucht ebVersand im Rechnungstext nach einer Angabe wie Gewicht: 2,5 kg. Bestellungen aus dem Shop bringen diese Information bereits mit. Fehlt sie, rechnet die Software selbst: Für jede Rechnungsposition wird die Menge mit dem Artikelgewicht multipliziert, das in Easybill in der Artikelnotiz hinterlegt ist. Hat ein Artikel kein Gewicht oder ist die Summe null, wird die Rechnung als fehlerhaft markiert, statt ein falsches Etikett zu erzeugen.
Den richtigen Paketdienst wählen
Die kundenspezifische Carrier-Auswahl folgt einer klaren Reihenfolge. Die erste zutreffende Regel entscheidet:
| Priorität | Bedingung | Ergebnis |
|---|---|---|
| 1 | Lieferland Frankreich | DPD |
| 2 | Zahlungsart Nachnahme oder Nachnahme-Artikel auf der Rechnung | DHL Nachnahme |
| 3 | Versandwunsch im Kundendatensatz, z. B. DPD oder GLS | DPD |
| 4 | Alle übrigen Bestellungen | DHL Paket |
Lieferadresse und Kundengruppen
Ist in easybill eine separate Lieferadresse hinterlegt, verwendet ebVersand diese für das Etikett. Kundengruppen, die über einen anderen Weg versendet werden, etwa Marktplatz-Kunden, filtert die Anwendung schon beim Laden heraus. So siehst du in der Liste nur Bestellungen, die wirklich ein Paket bekommen.
ebVersand: Adresskorrekur vor Labeldruck
Adressen lassen sich mir 1 Klick vor dem Labeldruck korrigieren. Zeitraubende Navigation im Portal des Carriers entfällt:

Von Xojo und Python 2.7 zu Python 3.12 und NiceGUI
Die erste Version von ebVersand bestand aus zwei Teilen: einer Oberfläche in Xojo und einer Geschäftslogik in Python 2.7. Beide kommunizierten über Standardeingabe und UDP-Nachrichten. Python 2.7 wird seit 2020 nicht mehr gepflegt, das Installationsprogramm musste einen veralteten Interpreter samt Compiler-Paketen mitliefern, und die Xojo-Projektdatei ließ sich nur in der Xojo-IDE bearbeiten.
Für ebVersand 2 habe ich mich deshalb für einen durchgängigen Python-Stack entschieden:
| Bereich | ebVersand 1 | ebVersand 2 |
|---|---|---|
| Oberfläche | Xojo | NiceGUI mit pywebview |
| Geschäftslogik | Python 2.7 | Python 3.12 |
| Kommunikation | stdin und UDP | direkter Funktionsaufruf |
| Einstellungen | SQLite-Datei im Programmordner | JSON im Benutzerordner |
| Tests | keine | pytest mit Byte-Vergleich |
| Paketverwaltung | pip im Installer | uv |
NiceGUI ist ein Python-Framework, mit dem sich Weboberflächen schreiben lassen, ohne HTML oder JavaScript anzufassen. Zusammen mit pywebview läuft die Anwendung als natives Fenster auf dem Desktop. Für die Entwicklung startet sie alternativ im Browser.
Die Oberfläche bleibt dabei reaktiv:
Jede Anfrage an Easybill läuft im Hintergrund, und bei der Verarbeitung erscheint jede einzelne Rechnung sofort in der Konsole. Du siehst also live, was gerade passiert.
Häufige Fragen
Funktioniert ebVersand nur mit Easybill?
Ja. Rechnungen werden über die Easybill REST API geladen. Zusätzlich kann ebVersand den Versand-CSV-Export von Amazon einlesen. Andere Quellen kann ich auf Basis derselben Regeln ergänzen.
Welche Paketdienste werden unterstützt?
ebVersand erzeugt aktuell Importdateien für die Etikettensoftware von DHL (Paket, Nachnahme, Ausland) und DPD. Es wäre aber auch möglich anstatt mit Importdateien direkt die DHL- und DPD-API zu verwenden. So würde der Etikettendruck automatisch erfolgen.
Woher kennt die Software das Paketgewicht?
Aus dem Rechnungstext, wenn dort ein Gewicht steht. Andernfalls aus der Summe der Artikelgewichte, die in easybill in der Artikelnotiz gepflegt sind.
Läuft ebVersand 2 auch auf dem Mac?
Ja. Die Anwendung läuft unter Windows und macOS als natives Fenster. Die erzeugten Dateien haben auf beiden Systemen das gleiche Format.
Was passiert bei fehlerhaften Daten?
Fehlt ein Artikelgewicht oder hat eine Straße keine Hausnummer, markiert ebVersand die Bestellung. Du kannst Adressen direkt in der Anwendung korrigieren, bevor du die Datei exportierst.
Fazit: Weniger Klicks, weniger Fehler, zukunftssicherer Code
Mit ebVersand 2 hat sich gezeigt, wie sich eine gewachsene Branchenlösung modernisieren lässt, ohne den Arbeitsablauf der Anwender zu stören. Die Geschäftsregeln sind dieselben, die Dateien für DHL und DPD sind identisch, aber der Code ist jetzt in einer moderneren Sprache geschrieben und ebVersand damit einfacher erweiterbar.
