DHL Shipping & Magento - Packaging Popup Revisited | PART 5
Packaging Popup Revisited
When development of the new extension kicked off, we did not only focus on technical improvements under the hood. DHL Shipping 1.0.0 comes with a huge list of new and improved features as well as a more thorough integration with native Magento functionalities.
A central UX improvement was achieved by replacing the original packaging popup by a custom implementation. The packaging popup is used to manually pack items of a shipment into packages and to define all relevant properties (dimensions, weight, customs information, etc.) for retrieving a shipping label from a carrier web service. This procedure is incredibly cumbersome because the merchant has to start editing the form fields from scratch for every single shipment – an impracticable task for higher order volumes.
Our idea was to rework the packaging popup to serve as a simple confirmation step with all the shipment items pre-packed and properties set to sane defaults. The merchant should only have to make edits if something is out of line with a particular order (e.g. needs to be packed into multiple packages, requires a non-standard service to be booked, or similar).
The all new packaging popup draws its data from module configuration, product catalog, or selections made by the customer during checkout. The hardest part was (and still is) to establish rules between shipping options and update the form accordingly: If option 1 is set to value A, then option 2 becomes unavailable. If option 3 is selected, then option 4 must only be set to X or Y, not Z. All these rule types and dependencies must be expressed in a carrier-agnostic way to not sacrifice extensibility for future carriers.
A major benefit of having all relevant data at hand with no further interaction is that all of a sudden automation becomes possible. If you can create a shipping label by just confirming the packaging popup, then you can do the same via orders grid mass action or even cron. While the former requires the merchant to select the desired orders from the list, the fully automated approach needs a little extra logic to collect applicable orders. The label status feature provided by the DHL Shipping module plays an important role here. Whenever a label gets requested from a carrier web service, the order’s label status gets (re-)calculated. It transitions from pending (no labels requested) to partial (some shipments have labels) or failed (label request was rejected) or processed (all shipments have labels). The label status is displayed in an orders grid column, so the merchant immediately recognizes which orders require action.
The Magento order status is not an indicator because it displays as Complete as soon as invoice and shipment are created – no matter if the shipment has a shipping label attached or not. During cron execution, the process picks up all orders with label status other than processed and attempts to fetch shipping labels from the respective DHL web service.
Puzzling all this together, automated label creation is now available for cross-border orders as well while this feature was limited to domestic orders in the old DHL Shipping version.
Shipping fulfillment does not end when the shipping label is created. The next part highlights further features that were improved in DHL Shipping 1.0.0: parcel tracking and cash on delivery payments.
Read more about "DHL Shipping & Magento"
Extensions for Magento built by Netresearch