MyDHL Express Comprehensive Shipping for Magento® 2.x

The MyDHL Express Comprehensive Shipping Extension for Magento 2 helps you easily create and print MyDHL Express Thermal and PDF shipping labels, checkout the latest shipping prices based on product weight and size, in addition to creating pickups and tracking packages. You can manage the entire MyDHL Express delivery cycle through your Magento admin panel. The module offers a wide range of settings, including the ability to customize the module individually for each country.
Supported Magento editions
Magento Open Source (CE) Adobe Commerce (EE) Adobe Commerce Cloud (ECE)
$269.00
Add to Cart

MyDHL Express Comprehensive Shipping is a Magento 2 extension that allows you to manage the entire MyDHL Express shipping cycle using the MyDHL Express courier API.

The extension gives you a wide variety of settings. Get up-to-date shipping prices and create thermal (ZPL, EPL) and PDF MyDHL Express shipping labels. Create pickups and track your parcels.

Here are the main benefits of the MyDHL Express Comprehensive Shipping extension:

Thermal and PDF Shipping Labels

The creation of shipping labels is possible both manually and automatically, and even on a schedule. The MyDHL Express Comprehensive Shipping extension allows you to associate a shipping label with an order, shipment, or credit memo. All labels are stored on your server and you can access them at any time from the admin interface of your Magento site.
Before creating each shipping label manually, you have the opportunity to select the required shipping method from those provided by MyDHL Express and immediately see the shipping cost. In automatic mode, labels are created either according to the method chosen by the buyer when ordering or at the minimum / maximum price of all MyDHL Express methods.

Paperless Commercial Invoice

MyDHL Express Comprehensive Shipping supports worldwide shipping. Therefore, for delivery abroad, it is proposed to use the paperless (or paper) registration of the customs invoice (International Invoice). To do this, the MyDHL Express Comprehensive Shipping extension supports the following settings: Harmonized and ScheduleB codes, Dangerous Goods and Hazardous Materials, Terms of Shipment, Reason for Export, Sold To Address, and others.

Shipping Rates & Shipping Methods

Get shipping prices on checkout just like on dhl.com. Shipping prices usually depend on the insurance, the declared price of the parcel, weight, dimensions, etc. All of these items are taken into account by our MyDHL Express Comprehensive Shipping extension. The cost of the method can be both static and dynamic. Both prices and display method can be adjusted by setting limits. Optionally, you can display the method only in the admin panel You can create as many methods as you like. Read more here.

Payment, COD, Insured

Customize the payer considering your business processes. Shipping can be paid by the Shipper or Third Party, while Duty and Taxes can be paid by both the Recipient and the Shipper. You can also regulate insurance (Insured) and use Invoice Line Total. It is possible to indicate, if necessary, a tax number (Tins number (Taxpayer Identification)). If the buyer wants to pay for the goods upon receipt, you can use the COD (Cash on Delivery) option.

Return Shipping Labels and RMA

Creating return shipping labels is as easy as creating regular shipping labels. A big plus will be the option to create return labels at the same time as a regular label.
The administrator can give the buyer the ability to create and print return labels himself.

Landed Cost — Estimated Import Duties & Taxes

Display estimated import duties, taxes, and fees at checkout for international shipments. The extension uses the DHL Landed Cost API to calculate customs charges based on commodity codes, product origin, and destination country tariffs. Duties can be shown as an informational line at checkout (paid by recipient) or included in the shipping price (DDP — shipper pays). Supports per-product commodity codes (HS codes) and manufacturer country settings for accurate tariff calculation.

Pickup and Tracking

Order a parcel delivery service directly from the admin panel of your online store. Everything is done easily and simply. You choose for which created labels you want to order a pickup and the extension will send a request to the delivery service. You can always see what has been shipped in each pickup. You can see a sample Pickup Slips document for multiple shipments here.

Once your packages have been shipped, you can track them using our MyDHL Express Comprehensive Shipping extension. You can see all the points that the package has passed and where it is at the moment.

Printing

Printing is one of the most important steps when working with shipping labels. Use our app to print thermal and PDF labels on your local printers. You can get it here.

Configuration

The possibilities of our extension are truly unlimited thanks to flexible settings. At the same time, the settings are intuitive and many are set by default. You can configure the extension for a specific store or a specific country. You can apply some settings to domestic shipments, and apply other settings to foreign shipments. Completely separate settings are also possible for regular and return labels. Perhaps for each continent, you would like to have individual settings. And this is also possible with our extension.

Demo

You can try this extension for 30 days. Ask for the demo on this page with Request demo; how it works is explained on Try an extension for 30 days.

Hyva Theme and Hyva Checkout

Compatible with Hyva Theme and Hyva Checkout

CMS Magento 2
Compatibility 2.4, 2.3
Features
  • Automatically, Mass and Manual creating shipping labels
  • Insured, Duty and Taxes, Tins number (Taxpayer Identification)
  • Cash on Delivery
  • Notification and Delivery Confirmation
  • RMA and Return Labels
  • Paperless Commercial Invoice with Signature image
  • Discount rates
  • Third-Party Payer and VAT/Tax/EORI ID
  • Support UK Brexit
  • Support International Invoice between Great Britain and Northern Ireland
  • Saturday Delivery
  • Harmonized codes
  • Dangerous Goods and Hazardous Materials
  • Calculating dimension and weight for packages
  • Labels can be in PDF or thermal formats
  • Shipper or Ship From address can be different
  • Getting shipping rates
  • Time in Transit
  • Pickups can create automatic or manual for each label or all labels at the end of the day
  • Pickup Schedule
  • Packing Slips
  • Saturday Pickup
  • Tracking for each direct shipping label
  • Showing all steps and statuses of your packages
  • Print shipping labels on inkjet, laser, or thermal printers. For printing need to download and install our software
  • Setup printer for each document type
  • PDF, ZPL, EPL formats
  • Local and Network printer and print with proxy
  • Compatible with Hyva Theme and Hyva Checkout
  • Landed Cost (Estimated Import Duties & Taxes at Checkout)

The extension is installed with Composer. Which repository you add depends on where you bought it — the install itself is the same either way.

1. Connect the repository

Bought on extmag.com. Your account page shows the repository address and your personal credentials, together with the two composer config commands to paste. Run them once per project; every extension you own is then available from the same repository.

Bought on the Adobe Commerce Marketplace. The package is served from repo.magento.com, which most stores already have configured. If not, add the access keys from your Adobe account under My Profile -> Access Keys.

2. Install the extension

Run in the project root:

composer require extmag/mydhlshipping
php bin/magento setup:upgrade
php bin/magento cache:flush

Composer resolves the shared Extmag packages the extension depends on, so there is nothing else to require by hand.

Log out and log back into the admin, and the extension is ready.

Label printing

To print labels on a local or network printer, install our printing software from here, then follow Installing and configuring el-Print.

Hyva Theme and Hyva Checkout

Storefronts on Hyva need one more package:

composer require extmag/shiplab-hyva
composer require magewirephp/magewire

The integration replaces one Hyva template, view/frontend/templates/checkout/shipping/method-list.phtml. If your theme already overrides that file, merge the changes rather than replacing it.

Trying it before you buy

You can ask for a 30-day demo of this extension and install it exactly as above — same package, same repository, same commands. How demos work.

Installing without Composer

The archive can be unpacked into app/code/Extmag/ instead, but that leaves the extension outside dependency management: its shared packages have to be installed by hand and updates never reach it. Use Composer for any store you run, demo included.

For any question about the installation, please contact our technical support.

MyDHL Express is set up from the Extmag menu in the Adobe Commerce (Magento) admin. Add the carrier account, the addresses you ship from, the boxes you pack into and the shipping methods customers see, then tune the carrier configuration.

MyDHL Express Account

  1. If you do not have MyDHL Express credentials yet, get them from MyDHL Express. You will need API credentials and an account number from MyDHL.
  2. Go to Admin Main Menu -> Extmag -> Settings -> Shipper Accounts.
    MyDHL Express shipper account
  3. Click the “Add New Shipper Account” button.
  4. Enter your credentials and click “Save”. Leave Live Account set to No while you test against the carrier sandbox.

Addresses

  1. Go to Admin Main Menu -> Extmag -> Settings -> Addresses.
    Addresses grid
  2. Click the “Add New Address” button.
  3. Fill in the company name, contact, phone and full address, then click “Save”. Add one address per location you ship from — they are selected separately as the billing address and the ship-from address.

Package Boxes

  1. Go to Admin Main Menu -> Extmag -> Settings -> Package Boxes.
  2. Click the “Add New Box” button.
  3. Enter the inner and outer dimensions, the empty weight and the maximum load, then click “Save”. The packer uses these boxes to work out how an order is split across packages, so the more of your real boxes are listed the closer the quoted rate is to what you are charged.

Shipping Methods

  1. Go to Admin Main Menu -> Extmag -> Shipping Methods.
  2. Click the “Add New Shipping Method” button.
  3. Choose MyDHL Express as the carrier, decide which of its services to show — all of them, a specific list, or only the cheapest or the most expensive — and restrict the method by website and customer group if you need to. Click “Save”.

Configuration

  1. Go to Admin Main Menu -> Extmag -> Settings -> MyDHL Express Configuration.
    MyDHL Express general configuration
  2. Open the General tab first and select the shipper account, the billing address and the ship-from address you created above.
  3. Work through the remaining tabs, filling in what applies to your account.

The tabs cover:

  • General — account, addresses, destination type, the default shipping method and shipping instructions.
  • Packaging — packaging type, dimensions and how an order is split across packages.
  • Returns — return labels and RMA handling.
  • References — the reference numbers printed on the label and their bar codes.
  • Payments — who is billed for the shipment and duties, and the payer account details.
  • Notification — the events the carrier notifies about and the recipients.
  • Printing — document formats and the printer used for each document type.
  • Pickups — whether pickups are booked automatically after a label is created or scheduled manually.
  • Tracking — how often parcels are polled and how statuses are written back to the order.
  • International Invoice — the paperless commercial invoice, its signature image and customs content.
  • Automatic — when labels are created without an operator.
  • Mass Actions — creating labels in bulk from the order grid.
  • Manual Actions — creating a single label from an order.
  • Other Options — logging and the remaining carrier-level switches.

Every setting can be applied per website and per destination country, so a rule that only makes sense for one market does not have to affect the rest.

The full field-by-field reference, including the exact configuration paths, is in the Reference Manual supplied with the extension.

2.0.8

Persisted the locator API request/response via DataSave for debugging. Renamed 'Access Point' to 'Service Point' (DHL official term) across the UI and documentation.

2.0.7

Added a landed-cost shipment-price mode and fixed freight/insurance charges. Suppressed landed cost on the phase-1 rate pass and surfaced the duty estimate in the admin rate dropdown. Added Access Point selection UI for the admin label form and frontend checkout. Replaced the ShippingMethods Save plugin with an access-point-depends UI mixin.

2.0.6

Move EstimatedDutiesStorage and checkout total wiring to Extmag_Shiplab base. Render estimated duties as informational row (value=0) for both DDP and DAP. Derive duty payer from Terms of Shipment; relabel field to third-party billing override. Convert estimated duties from base to quote currency for checkout totals display. Sum only TOTAL_* aggregates from Landed Cost breakdown to avoid double-counting. Add default values for Access Point and map config sections. Add DHL Service Point Locator with iframe-based access point selection at checkout. Show estimated-duties checkout segment when value is zero (DDP informational row). Improve Landed Cost: HS code normalization, DDP breakdown, response warnings. Always send cityName in DHL address payload (required by schema, fallback to postal code or 'N/A'). Apply typeCode/dimensions fallback to base getPackages() for LandedCost path. Skip empty optional fields in rate/landed-cost payloads via setIfNotEmpty helper. Omit manufacturerCountry from invoice line items when product has no country of origin. Use placeholder dimensions instead of synthetic 'YP' typeCode for shipper's own packaging. Shiplab: Replace raw filesystem calls in settings import with Magento file driver.

2.0.5

Shiplab: Added support for multiple label files per tracking number with -N suffix.

2.0.4

Added 'YP' typeCode fallback when package has no dimensions. Improved REST API error reporting by parsing the 'reasons' array. Shiplab: Hardened product info access in PackageHandler to handle missing cart entries safely.

2.0.3

Shiplab: Added zero-weight guard and weight diagnostics for shipping rate calculation. Shiplab: Removed legacy Additional Price fields and migrated data to price rules.

2.0.2

Use CategoryChooser frontend model for dangerous goods product categories field. Shiplab: Replaced multiselect categories with AJAX tree chooser in dimension config. Added support Magento 2.4.9 and Adobe Commerce 2.4.9

2.0.1

Simplify GoGreen options and add invoice instructions support. Shiplab: Fixed attribute ID retrieval order in category EAV setup patch.

2.0.0

Migrate from SOAP to REST API and add Landed Cost support. Add cache persistence for estimated duties storage and Carrier plugin. Shiplab: Added response post-processing hook and fixed logo data handling.

1.8.11

Migrate from SOAP to REST API and add Landed Cost support. Add cache persistence for estimated duties storage and Carrier plugin. Shiplab: Added response post-processing hook and fixed logo data handling.

1.8.10

Shiplab: Added BlackoutRules feature with full CRUD, date picker mixin, and schedule migration.

1.8.9

Added duty, tax, and fee breakdown parsing in rate response.

1.8.8

Fixed Charges parsing in rate response. Initialized service array at each loop iteration in rate response parsing. Shiplab: Fixed null safety issues and added numeric attribute validation. Added support Magento 2.4.8-p4 and Adobe Commerce 2.4.8-p4

1.8.7

Fixed service code resolution to preserve value set during step three.

1.8.6

Optimized the algorithms for packing items into boxes to ensure better efficiency.

1.8.5

Fixed bundle product handling for Ship Separately/Together and price/weight types.

Added config option to include zero-price bundle children in international invoices.

Fixed property type declarations for PHP 8.x compatibility.

1.8.4

Fixed loadedData check in DataProvider classes for PHP 8.x compatibility.

Fixed place order callback to pass data for proper Braintree payment handling.

1.8.3

Refactored code.

1.8.2

Added support for PHP 8.4

1.8.1

Added support Magento 2.4.8-p3 and Adobe Commerce 2.4.8-p3

1.8.0

Added support Magento 2.4.8-p2 and Adobe Commerce 2.4.8-p2

1.7.9

Fixed a bug with the Schedule New Update form on the category page

1.7.8

Added support Magento 2.4.8-p1 and Adobe Commerce 2.4.8-p1

1.7.7

Added support Magento 2.4.8 and Adobe Commerce 2.4.8

1.7.6

Fixed a bug when the order has only virtual products

1.7.5

Added support Magento 2.4.7-p5 and Adobe Commerce 2.4.7-p5

1.7.4

Added support Magento 2.4.7-p4 and Adobe Commerce 2.4.7-p4

1.7.3

Fixed a bug with SplitButton for the order view page in the admin panel

1.7.2

Fixed logs for shipping rates

Added support Magento 2.4.7-p3 and Adobe Commerce 2.4.7-p3

1.7.1

Fixed the price format on the label creation page in the admin panel.

Improved the integration with the Hyva Theme.

1.7.0

Fixed a bug with division by zero

1.6.9

Fixed a bug with a recursive function for shipping rates

1.6.8

Fixed a bug with shipping rates debugging.

Fixed CSP for printing by websocket.

1.6.7

Fixed a bug with the deactivating module

1.6.6

Fixed the z-index issue on the label details page.

Added support Magento 2.4.7-p2 and Adobe Commerce 2.4.7-p2

1.6.5

Added support Magento 2.4.7-p1 and Adobe Commerce 2.4.7-p1

1.6.4

Fixed cache for shipping rates

1.6.3

The issue with printing return labels on the customer side has been fixed.

1.6.2

Fixed the packaging box selector

1.6.1

Fixed calculation of the estimated value of a parcel including a discount, which caused the error "Missing or Invalid Monetary Value of Commodity 1's Commodity Value"

1.6.0

The issue related to the customer group and guest order creation in the admin panel has been fixed

1.5.9

Fixed CURL multi-handles

1.5.8

Added support Magento 2.4.7 and Adobe Commerce 2.4.7

1.5.7

Integration with Hyva Theme and Hyva Checkout has been added

1.5.6

Fixed the JS bug with placing the order

Fixed bug with Signature Image Uploader

1.5.5

Updated linked modules

1.5.4

Added the ability to rename original courier shipping methods

1.5.3

Added support Magento 2.4.6-p3 and Adobe Commerce 2.4.6-p3

1.5.2

Fixed the packer for packages of the shipment

1.5.1

Fixed a bug with downloading shipping logs

1.5.0

Added two options "Show Method if Not Applicable" and "Displayed Error Message" in the Extmag Shipping method configuration

1.4.9

Fixed a bug when it was impossible to save the Shiplab configuration in Magento 2.4.6-p1

1.4.8

Fixed Shiplab version

1.4.7

Fixed PDP printing with the QZ Tray program

1.4.6

Support the QZ Tray program for printing labels.

1.4.5

Fixed a bug with Sales Rules.

Removed deprecated code.

1.4.4

Fixed sources for orders after saving the tracking number

Added support Magento 2.4.6-p2 and Adobe Commerce 2.4.6-p2

1.4.3

Fixed calculating prices for shipping methods.

Fixed shipping price rules.

1.4.2

Fixed bug with shipping price rules

1.4.1

Fixed bug with session and manual label creation

1.4.0

Improved selection of Websites and Customer Groups for Shipping Methods

1.3.9

Fixed bugs on the checkout page of the admin panel

1.3.8

Added support Adobe Commerce 2.4.6-p1

1.3.7

Fix bug with musltiselect fields and values as type integer

1.3.6

Fixed bug with the Volume Weight switcher

1.3.5

Support Adobe Commerce (Magento) 2.4.6

Support PHP 8.1

1.3.4

Fixed some bugs to support PHP 8.1

1.3.3

Added max volumetric weight for a package.

Added type of volumetric weight value.

Fixed some bugs with volumetric weight.

1.3.2

Fixed a bug with the volumetric weight

1.3.1

Updated dependencies.

Fixed some minor bugs.

1.3.0

Added support for Product Volumetric Weight

1.2.2

Support Adobe Commerce (Magento) 2.4.5-p1

1.2.1

Fixed the country_id condition type for the shipping method rules

1.2.0

Fixed a few bugs linked with PHP 8.1

Added "Additional Price Actions" for applying multiple rules for the shipping method.

1.1.1

Added support for PHP 8.1 and Magento 2.4.4

1.1.0

Improve PHP code.

Removed the json_request_data field from the form of creating labels.

1.0.0

release 1.0.0