Lesedauer 4 Minuten

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:

  1. Du wählst einen Zeitraum und lädst die Rechnungen aus easybill.
  2. 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.
  3. Du wählst die Bestellungen aus und exportierst sie für DHL oder DPD.
  4. 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.

EasyBill Versand

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:

EasyBill Versand: Adresskorrektur

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.

Mehr zum Thema Tools für EasyBill lesen.