DHL Shipping & Magento: Ein Einblick in unsere Extension
Bei Netresearch blicken wir auf eine lange Geschichte als Hersteller von Magento-Extensions zurück. Dieser Artikel gibt einen Einblick in die Geschichte und hebt Funktionen hervor, die unsere zahlreichen DHL-Versandintegrationen für Magento auszeichnen.
10 Jahre und kein Ende in Sicht
Die Arbeiten am DHL Intraship-Modul für Magento 1, unserem allerersten DHL-Projekt, begannen im Juni 2010. Im April 2020 wurde die neue DHL Shipping-Extension für Magento 2 veröffentlicht, gefolgt von einem Feature-Update im Juni desselben Jahres.
Im Laufe der Zeit hat sich viel geändert, aber eines ist immer gleich geblieben: Mit unseren DHL-Extensions können Händler Versandetiketten von den DHL-Webservices abrufen, drucken und an den Paketen anbringen - alles ohne Anschaffungskosten.
Versand ist schwierig
Das Hinzufügen von Carrier-Funktionen in Magento war schon immer eine Herausforderung, da dem Versandprozess wenig Aufmerksamkeit geschenkt wurde. Magento 1 startete mit einigen rudimentären Carrier-Integrationen und ist bis heute dabei stehen geblieben. Das Framework ermöglicht zwar das Hinzufügen weiterer Carrier ("Versandmethoden"), aber wichtige Funktionen wie Mehrwertdienste (Abendlieferung, Unterschriftenbestätigung, Altersüberprüfung usw.) fehlten immer. Jede Carrier-Integration muss selbst Methoden implementieren, um Kunden und Händlern zusätzliche Services anzubieten.
Das Ergebnis derartiger Unzulänglichkeiten des Kern-Frameworks ist, dass Carrier-Integrationen die offiziellen Methoden der Plattform zum Hinzufügen von Versandfunktionen umgehen und Kompatibilitätsprobleme mit anderen Erweiterungen in Kauf nehmen. Unser erstes DHL Intraship Modul war da keine Ausnahme.
Mit seinem Nachfolger, DHL Versenden, haben wir uns entschlossen, uns stärker daran zu orientieren, wie der Versand in Magento eigentlich erfolgen sollte. Das Feedback der Händler war jedoch verheerend, vor allem, weil das Erstellen einer Sendung extrem viele Klicks erforderte - und noch immer gab es keine Eingabemöglichkeiten für Mehrwertdienste oder Zollangaben. Die RMA-Funktion (Return Merchandise Authorization, sprich Retouren) war nicht viel besser: extrem kompliziert, fehlerhaft, schlecht konzipiert und mit demselben unbeliebten Popup wie beim regulären Versand.
Mit Magento 2 änderten sich die Dinge. Da wir mit den DHL-Webdiensten und dem Magento-Versandprozess (der sich zwischen Version 1 und 2 nicht geändert hat) sehr vertraut waren, starteten wir unser erstes Magento 2-Extensionprojekt, umschifften zahlreiche Hindernisse und veröffentlichten schließlich die ersten offizielle Version von DHL Shipping 0.1.0 für Magento 2 im März 2017.
Wachsende Märkte
Im April 2020 wurde die DHL Shipping Version 1.0.0 veröffentlicht, welche die vorherige Version 0.11.1 für Magento 2 ersetze. Der Grund für dieses große Versionsupdate war nicht DHL - es waren viele DHLs.
DHL ist ein globales Unternehmen mit mehreren Geschäftsbereichen, die jeweils in bestimmten oder sich überschneidenden Regionen tätig sind. Dies führte zu Verwirrung, weil den Händlern nicht immer bewusst war, dass die DHL-Extension nicht mit der lokal operierenden DHL-Niederlassung in ihrem jeweiligen Land kommunizieren kann.
DHL kam daher auf die Idee, die DHL E-Commerce-Webdienste zur DHL Shipping-Extension hinzuzufügen, damit Händler in den AMER/APAC-Regionen Versandetiketten für ihre Pakete abrufen können. Aus technischer Sicht hat dies recht gut geklappt, jedoch zeigten sich Probleme mit der Usability. Die meisten Benutzer von DHL Shipping versandten aus Deutschland, sahen jedoch in ihrem Konfigurationsbereich zahlreiche Einstellungen, die sie niemals ausfüllen mussten.
Später zeigte dann eine andere DHL-Abteilung Interesse am Projekt. Die von diesem Carrier unterstützten Routen überschnitten sich mit dem, was DHL Shipping zu diesem schon Zeitpunkt anbot, sodass die routenbasierte Trennung von Webservice-Requests nicht mehr funktionierte. Wir beschlossen daher, die architektonischen Grundlagen für das zu schaffen, was schließlich im April 2020 als DHL Shipping Version 1.0.0 veröffentlicht wurde.
Paket-Zusammensetzung
Im Gegensatz zu vielen DHL-Erweiterungen, die wir in der Vergangenheit für Magento 1 & 2 erstellt haben, besteht DHL Shipping 1.0.0+ aus mehreren Modulen und Bibliotheken. Dank Composer und mithilfe des Metapaket-Pakettyps konnten wir ein einziges Paket in kleinere Module aufteilen. Die Magento 2-Plattformarchitektur legt großen Wert auf eine klar definierte Modul-API.
Basierend darauf bestand die architektonische Vision darin, ein zentrales, abstraktes DHL-Versandframework zu erstellen, das mit dem Versandmodul des Magento-Kerns verbunden ist und die Möglichkeit bietet, Carrier-Module (welche die DHL-Geschäftsbereiche darstellen) individuell anzubinden.
Dieser modulare Ansatz zahlte sich bald aus, als DHL Express eine Magento 2-Erweiterung anfrage, um ihre Versandmethoden im Shop-Checkout anzubieten, gepaart mit der Möglichkeit, den Versand in externer Software abzuwickeln.
Neues Packaging-Popup
DHL Shipping 1.0.0 bietet zahlreiche neue und verbesserte Funktionen sowie eine sauberere Integration in native Magento-Funktionen. Eine zentrale UX-Verbesserung war der Austausch des ursprünglichen Packaging-Popups durch eine eigene Implementierung. Die Verwendung des ursprünglichen Popups war äußerst umständlich, da der Händler die Formularfelder für jede einzelne Sendung ausfüllen musste - völlig unpraktikabel bei höheren Auftragsvolumina. Unsere Idee bestand darin, das Packaging-Popup so zu überarbeiten, dass es als einfacher Bestätigungsschritt mit allen vorausgewählten Artikeln und sinnvollen Standardeinstellungen fungiert. Das überarbeitete Packaging-Popup bezieht seine Daten aus der Modulkonfiguration, dem Produktkatalog und der Auswahl, die der Kunde während des Checkouts getroffen hat.
Ein großer Vorteil der Verfügbarkeit aller relevanten Daten ohne weitere Interaktion besteht darin, dass Automatisierungs- und Massenaktionen möglich werden. Wenn ein Versandetikett erstellt werden kann, indem nur das Popup-Fenster bestätigt wird, kann das auch über die Massenaktion für Bestellungen oder sogar über Cron erledigt werden.
Erweiterte Funktionen
In einigen Setups erfolgt die Versandabwicklung nicht innerhalb der Magento-Instanz. Stattdessen werden Bestellungen in eine externe Versandsoftware exportiert. Die Herausforderung besteht darin, alle relevanten Daten zur Verfügung zu haben. DHL Shipping zieht die Daten aus dem Checkout, dem Produktkatalog und der Modulkonfiguration. Alle Angaben sind jetzt auch über den Magento Order-API-Endpunkt verfügbar und damit jederzeit bei Bedarf abrufbar.
Außerdem haben wir mit DHL Shipping 1.0.0 die DHL Unified Tracking-API integriert, mit der wir den Tracking-Verlauf für Pakete abrufen und den Zustellungsverlauf direkt im Kundenkonto oder im Admin-Bereich anzeigen können.
Für Nachnahmeversand benötigt die neue Extension-Version keine Bankkontodaten in der Modulkonfiguration. Alle Einnahmen gehen auf das im Geschäftskundenportal von DHL Paket Deutschland konfigurierte Bankkonto.
Technische Feinheiten und Details
Die Magento-Plattform bietet einige Funktionen, die nicht weit verbreitet sind, aber für einige Händler dennoch eine wichtige Rolle spielen. Mit DHL Shipping Version 1.0.0 haben wir uns um eine sauberere Unterstützung solcher Kernfunktionen bemüht.
Eine dieser Funktionen ist die Lastskalierung mithilfe der Split-Database-Performance-Lösung. Diese ermöglicht die Aufteilung des Magento-Schemas in drei Stammdatenbanken, von denen jede für einen anderen Funktionsbereich verantwortlich ist. Die neue Extension unterstützt Multi-Master-Setups vollständig, indem das Schema und die Daten erweitert werden.
Ein weiterer Aspekt, der sich auf die Leistung auswirkt, ist die asynchrone Aktualisierung von Bestelllisten (Order Grid). Magento ermöglicht das Entkoppeln von Schreibvorgängen mithilfe geplanter Grid-Aktualisierungen, d. h. es fragt regelmäßig Grid-Datenanbieter nach Aktualisierunge, die dann auf die jeweilige Datenbanktabelle angewendet werden. Die neue Extension-Version interagiert korrekt mit diesem Prozess und kündigt Aktualisierungen des Label-Status an, wenn sie tatsächlich auftreten.
Magento Commerce (ehemals Enterprise Edition) verfügt über eine RMA-Funktion (Return Merchandise Authorization), mit der Kunden bei Bedarf Rücksendeetiketten für ihre Bestellungen anfordern können. Die neue Extension-Version kann mit dem Magento RMA-Modul interagieren und gibt dem Händler die volle Kontrolle über die Autorisierung von Rücksendungen. Wenn die RMA-Kernfunktion deaktiviert oder nicht verfügbar ist (wie in Magento Open Source/Community Edition), wird der Prozess unseres Moduls aktiviert: Überprüfen Sie die Lieferadresse, wählen Sie die Artikel aus, die retourniert werden sollen, bestätigen Sie, und laden Sie das Retourenlabel herunter.
DHL-Abholorte, Servicegebühren und mehr
Die DHL Versenden-Extension für Magento 1 konnte mit einem optionalen Begleitmodul namens DHL Location Finder kombiniert werden. Kunden konnten eine Postfiliale, einen Paketshop oder ein Packstation für Lieferungen anstelle ihrer Wohnadresse angeben. Mit der neuen DHL Shipping-Extension für Magento 2 wollten wir die Integration der Location Finder-Karte in den Versandbereich im Checkout verbessern. Das Location Finder-Menü ist jetzt per Schaltfläche im Checkout erreichbar und wird standardmäßig zusammen mit DHL Shipping installiert.
Zum Thema Mehrwertdienste während der Kaufabwicklung: Diese sind manchmal mit zusätzlichen Kosten verbunden. Während die vorherigen DHL-Erweiterungen diese Anforderung bis zu einem gewissen Grad unterstützten, funktionierten die Steuerberechnung und die transparente Anzeige der Servicegebühren im Checkout, im Kundenkonto und im Admin-Bereich nie vollständig. Mit DHL Shipping Version 1.0.0 haben wir den Entities für Angebote (Quotes), Bestellungen, Rechnungen, Shipments und Gutschriften benutzerdefinierte Summen hinzugefügt.
Fazit
Es war ein langer Weg von DHL Intraship, das vor mehr als zehn Jahren ursprünglich für die Magento Community Edition Version 1.4 entwickelt wurde, bis zur modular aufgebauten Erweiterung DHL Shipping für Magento 2, wie sie heute den Händlern dient.
Ohne das Engagement aller ehemaligen und gegenwärtigen Mitarbeiter sowie das Vertrauen des DHL-Partnermanagements in unser Fachwissen und die jahrelange Offenheit für Beratung und Diskussionen wäre das nicht möglich gewesen.
War’s das nun? Keineswegs! Im April 2021, ein Jahr nach seiner ersten Veröffentlichung, wurde DHL Shipping Version 2.0.0 veröffentlicht. Der Schwerpunkt dieser Hauptversion lag nicht auf neuen Funktionen, sondern auf einer weiteren Bereinigung und Verallgemeinerung des Versand-Frameworks, auf dem unsere Carrier-Module aufbauen. Dies ermöglicht es uns, notwendige Updates noch schneller zu implementieren. Welche Updates sind in Zukunft zu erwarten? Grundsätzlich gibt es drei Auslöser für Änderungen während der laufenden Modulentwicklung:
- Features: DHL aktualisiert oder erweitert die Webservice-Funktionen und erachtet diese als vorteilhaft für Magento-Händler.
- Maintenance: Magento veröffentlicht neue Plattformversionen und wir stellen sicher, dass das Shipping-Modul weiterhin mit der neuen Version und den vom Hersteller bereitgestellten (im Core enthaltenen) Erweiterungen kompatibel ist.
- User-Feedback: Händler melden Probleme, die zu Korrekturen oder Verbesserungen führen.
Die öffentlichen GitHub-Repositorys spiegeln den Stand unserer internen GitLab-Projekte. Der Maintenance-Prozess basiert daher auf GitLab CI. Immer wenn Adobe eine neue Magento-Version veröffentlicht, aktualisieren wir unsere Build-Matrix und führen die automatisierten Modultests durch. Zum Zeitpunkt dieses Artikels wurde die Maintenance für die neuen Magentoversionen 2.3.7 und 2.4.2-p1 erfolgreich abgeschlossen und keine Kompatibilitätsprobleme festgestellt. Wenn eine Regression auf der Plattform oder eine Inkompatibilität mit Core-Modulen auftritt, entwickeln wir eine Lösung und veröffentlichen eine neue Version, die es den Händlern ermöglicht, ihre Bestellungen weiterhin zu verarbeiten. Weitere Änderungen am Magento-Core-Code, wie das in einem früheren Beitrag erwähnte Auslaufen der Performance-Lösung für geteilte Datenbanken, erfordern möglicherweise Änderungen in unseren Modulen.
Für User-Feedback haben wir zwei Supportkanäle eingerichtet. Über unsere öffentlichen GitHub-Repositories können Probleme gemeldet und Beiträge geleistet werden. Dieser Kanal wird hauptsächlich von den IT-Mitarbeitern der Händler für technische Anleitungen und Problemberichte verwendet. Der Vorteil hierbei ist, dass alle Diskussionen sofort öffentlich sind. Wenn ein Benutzer ein Problem meldet, wissen andere darüber Bescheid, sehen die Lösung und helfen sich manchmal sogar gegenseitig.
Der andere offizielle Kanal, der hauptsächlich von Händlern genutzt wird, die Hilfe bei der Installation und Nutzung brauchen, kann per E-Mail oder Online-Formular kontaktiert werden. Um eine ähnliche Transparenz wie bei GitHub-Issues zu erreichen, werden den DHL Shipping-FAQ laufend Fragen in englischer und deutscher Sprache hinzugefügt, die häufig auftreten.
Seit mehr als einem Jahrzehnt engagieren wir uns für die Entwicklung von Magento-Extensions und sind froh, damit einen Baustein zum Erfolg der Händler beitragen zu können. Und wir freuen uns darauf, gemeinsam mit DHL weiter daran zu arbeiten.