DHL Shipping & Magento - Shipping Is Hard
Shipping Is Hard
Adding carrier features around rates display in the checkout and label retrieval for shipments has always been a challenge. The Magento platform's shipping and fulfillment process has been paid little attention to. Magento 1 kicked off with some rudimentary carrier integrations (DHL US, FedEx, UPS, USPS) and stuck with that up to the present day. The framework is extensible and allows to add further carriers ("shipping methods") in the same way, but important carrier features have always been missing. Typically, carriers offer value-added services around their shipping products, such as evening delivery, signature confirmation, age verification, and so on. This concept was never added to Magento; every carrier integration has to implement its own custom way of offering additional services to customers and merchants. Another shortcoming is that parcels can only be delivered to a street address. The concept of picking up a parcel at some other postal facility such as post office, parcel shop, or parcel locker was never added. Again, this leads to every carrier implementing their own (incompatible) data model and UI flow for the same common use-case. Shipments hold only one (multi-page) PDF/PNG document for all packages; ZPL and other document formats are not supported. There is no bulk operation, courier dispatch is not in scope, not even in enterprise/commerce edition. Separation of shipping cost (which the merchant pays to the parcel service) and shipping price (i.e. what the customer pays to the merchant) is not made. Shipment status (packing slip created, picked, packed, booked, picked up, delivered, …) – only a dead stub in the Magento code.
The result of such core framework inadequacies is that carrier integrations take shortcuts, bypass the official way of adding shipping capabilities to the platform, accept compatibility issues with other extensions. DHL Intraship made no exception. In hindsight, this was for a good reason: With its successor, DHL Versenden for Magento 1, we decided to stick closer to how shipping is supposed to be done in Magento. Merchant feedback through the Netresearch extension support channel was devastating though. They were loathing the Magento core packaging popup (the form for adding items to packages), mainly because it takes a crazy amount of clicks to get through and again, misses important inputs for additional services and cross-border/customs declarations. Adding these to the tiny popup made it even less usable.
The deficient state of shipping in Magento becomes only more apparent when looking at the Return Merchandise Authorization (RMA) feature. The process of authorizing returns and obtaining return shipment labels is extremely complicated, buggy, poorly made, and utilizes the same unpopular packaging popup like regular shipping does.
Magento 2 – A new era
The development of new DHL shipping extensions was not only driven by API changes. A major impact was the dawn of Magento 2. We were familiar with the DHL web services and the Magento shipping process (which did not change between versions) and we were extremely happy that DHL had trust in our capabilities to keep up with the new technology. This was how we started our very first Magento 2 extension project. We made our way through DI configuration, auto-generated classes, test frameworks, UI components, checkout modifications (ew…) and even the – soon to be deprecated – entity manager. Somehow an ETA was leaked but the release got delayed for various reasons within and beyond our control while merchants were eagerly awaiting the extension to get their fulfillment done on the new platform. Eventually, the first public version DHL Shipping 0.1.0 was released in March 2017.
Read in the next episodes about conceptual backgrounds, the challenges within the system, concrete use cases and features as well as our thoughts and approaches to tackle them. The next part - coming soon - introduces the latest iteration of DHL Shipping, built on an all new foundation that was designed to flexibly handle current and future requirements.
It'll be worth it. Stay tuned.
Read more about "DHL Shipping & Magento"
- Part 1 - 10 years and counting
- Part 2 - Shipping is hard
- Part 3 - Expanding Markets (coming soon)
- Part 4 - Composition of packages (coming soon)
- ... to be continued - stay tuned!