DHL for WooCommerce


DHL’s official extension for WooCommerce on WordPress. Manage your national and international shipments easily.
The “DHL for WooCommerce” – plugin is compatible with (whether the plugin is available in your country see here.):
* DHL Paket (Germany and Austria)
* DHL Parcel Europe
* DHL eCommerce


  1. Fast and easy label creation of your national and international orders.
  2. Automatically receive a tracking code for each label.
  3. Create Handover Notes conveniently for a smooth and reliable manifesting process in-line with your specific regional requirements for DHL eCommerce.
  4. Use additional delivery services as e.g. the visual check of age available via the API of DHL Paket or Cash on delivery by DHL eCommerce in selected countries.
  5. Offer Preferred Delivery Options to your customers via “Wunschpaket”. The customer has the opportunity to select a specific time and date for his delivery.
  6. Customization Enable/disable or edit the names of services and set up the handling cost for each DHL shipping service.
  7. Experience premium support, timely compatibility updates and bug fixes.
  8. The “print only if codeable” – option you can activate in the DHL settings will check whether the address is correct or not before generating the label.
  9. Bulk Label Creation allows you to create multiple DHL Labels at once.
  10. Return Parcel Handling allows you to print a return label with a “return address” so your customer can return the shipment easily.

Availability by countries and prerequisites

Based on your sender country and shipping preference, different access credentials for DHL Paket, DHL Parcel Europe and DHL eCommerce are required for the configuration:

DHL Paket for Germany and Austria log in with your business customer portal credentials. (not a customer yet? Click here for DHL Paket)

DHL Parcel Europe for BeNeLux, Iberia and Switzerland please self-generate your API credentials with your business customer portal account. (not a customer yet? Click here for DHL Parcel Netherlands, here for DHL Parcel Switzerland and here for DHL Parcel Belgium).

DHL eCommerce: send us your company name and customer account number via the form here and we will provide you the credentials for this plugin. (not a customer yet? Click here).

Installation & Configuration

  1. Upload the downloaded plugin files to your /wp-content/plugins/DHL-for-WooCommerce directory, OR install the plugin through the WordPress plugins screen directly.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress
  3. Go to WooCommerce–>Settings->Shipping and select the upper DHL unit (depending on your home country this is DHL Paket, DHL eCommerce) etc to configure the plugin

…for DHL Paket (Germany, Austria): you need your EKP number (10 digits) and add the participation numbers to the respective products available (you will find the participation numbers in the DHL business customer portal).
…for DHL Parcel Europe (BeNeLux, Iberia, Switzerland): you need your self-generated API credentials (UserID and Key). Push the “Test connection” and the fields below will be prefilled automatically.
…for DHL eCommerce: you need your customer account number, the distribution center you are using, your client-ID and client-secret.


More detailed instructions on how to set up your store and configure it are consolidated on on the page

Click here for our FAQs or check out our integration page with alternative integration options.

Additional Information

  • The plugin contains a tracking pixel due to reporting purposes of preferred services. Its output is the URL where the preferred services are integrated via plugin as well as the number of plugin calls. There is no personal data created or collected.
  • In case you like to offer direct shipment to DHL parcelshops or post offices, please note the following phrase of the DHL Paket Service Specifications (annex to the business customer contract): “The sender guarantees that he is entitled to transmit his customers’ e-mail addresses to DHL for the purpose of the parcel notification.”
  • A “Google Maps API Key” is required for a complete installation.


July 12, 2019
We spent days trying to figure out why we couldn't set the nexus for tax calculation properly. This plugin was interfering with setting store location properly. We were not able to select US states. Finally on deactivating it worked. Why should this plugin even bother with store location?
April 26, 2019
plugin not supported in wordpress & woocommerce latest when i activated plugin, not showing in woocommerce->>setting->>shipping section
Read all 15 reviews

Contributors & Developers

“DHL for WooCommerce” is open source software. The following people have contributed to this plugin.


Translate “DHL for WooCommerce” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • DHL Paket: Switch from “ob_get_clean” to “ob_clean” since latter does not close the buffer.


  • DHL Parcel: Added support for Direct Label Printing
  • DHL Parcel: Added setting for maximum number of days shown for delivery times
  • DHL Parcel: Updated bulk settings to also work with the open in new window setting
  • DHL Parcel: Updated setting for combined labels to display page options only (A4)
  • DHL Parcel: Updated translations to no longer use system codes
  • DHL Parcel: Updated country check in the plugin
  • DHL Parcel: Updated ServicePoint locator to support Packstation code input
  • DHL Parcel: Updated code for increased compatibility with WooCommerce 2.6 (or higher)
  • DHL Parcel: Removed placeholder Google Maps key


  • DHL Paket: Fix corrupted file when clicking “Download Label” in edit order, needed to flush output buffer.


  • DHL Parcel: Fixed delivery times not loading for newest WooCommerce release
  • DHL Parcel: Fixed an issue where postal code is case sensitive


  • DHL Parcel: Fixed pricing filters rounding prices


  • DHL Parcel: Added pricing filters for weight and cart totals
  • DHL Parcel: Added multiple labels per page option for bulk printing
  • DHL Parcel: Added an addition field for addresses for address additions after the street and number
  • DHL Parcel: Fixed an issue for addresses starting with numbers first
  • DHL Parcel: Fixed ServicePoint not always searching for the selected country
  • DHL Parcel: Fixed an issue where return labels had incorrect hide shipper information


  • DHL Paket: Add tracking setting, to enable/disable services tracking on the frontend


  • DHL Parcel: Updated the ServicePoint locator to load from DHL’s own servers instead of third party
  • DHL Parcel: Updated the ServicePoint locator to select the closest ServicePoint automatically
  • DHL Parcel: Added developer filters for price manipulation
  • DHL Parcel: Fixed delivery times API call to not send data when no postal code is set
  • DHL Parcel: Fixed tax adjustment calculation


  • DHL Parcel: Added missing files


  • DHL Parcel: Fixed automatic order id reference not being added for bulk
  • DHL Parcel: Fixed ServicePoint locator not loading
  • DHL Parcel: Added developer hooks to customise templates


  • DHL Paket: Ensure “address 2” is never empty


  • DHL Parcel: Updated feedback information to be multilingual
  • DHL Parcel: Shipping methods can be sorted by default, price or custom order
  • DHL Parcel: Added a setting to automatically create return labels
  • DHL Parcel: Added a setting to automatically add order numbers as reference
  • DHL Parcel: Updated the API endpoint for label creation
  • DHL Parcel: Updated translations
  • DHL Parcel: Fixed close button not showing on certain websites


  • DHL Paket: Add CN23/CP71 forms to returned shipping label
  • DHL Paket: Ensure receiver “streetNumber” is a numeric value
  • DHL eCommerce: Fix “declaredValue” to include product discounts


  • DHL eCommerce: Fix sub string to use ‘UTF-8’ for Asian chars
  • DHL Paket: Fix delete meta data before API call


  • DHL eCommerce: Fix sub string to use ‘UTF-8’ for Asian chars
  • DHL Paket: Fix delete meta data before API call


  • DHL Parcel: Fixed an issue with delivery times not always loading in the right order
  • DHL Parcel: Fixed an issue that causes Customizer not to load on specific themes


  • DHL Parcel: Updated bulk label creation from 1 type to each type enable-able separately
  • DHL Parcel: Added mailbox option for bulk label creation
  • DHL Parcel: Added optional fields to replace shipping text in the checkout
  • DHL Parcel: Added Same Day, No Neighbour shipping for checkout
  • DHL Parcel: Added Evening, No Neighbour shipping for checkout
  • DHL Parcel: Added delivery times for No Neighbour shipping methods
  • DHL Parcel: Fixed a compatibility issue with third party plugins


  • DHL Paket: Validation fixes
  • Readme text changes


  • DHL Parcel: Added selectable delivery times based on location
  • DHL Parcel: Added an automatic switch between Same Day / Home and Evening delivery for delivery times
  • DHL Parcel: Added a filter to sort orders based on estimated shipping days in the admin
  • DHL Parcel: Added cutoff times for delivery times
  • DHL Parcel: Added days needed for shipping for delivery times
  • DHL Parcel: Added colored indicators for estimated shipping days in the admin
  • DHL Parcel: Added configurable shipping days for delivery times


  • DHL Parcel: Enabled Switzerland


  • DHL Parcel: Additional return labels can be created alongside regular labels
  • DHL Parcel: Added settings to set a default address for return labels
  • DHL Parcel: Added bulk label creation and bulk label printing
  • DHL Parcel: Added a setting to set the default size preference for bulk label creation
  • DHL Parcel: Added the service option to hide shipping address
  • DHL Parcel: Added settings to set a default address when hiding sender address


  • Bug Fix – DHL Paket: Fix JS errors on checkout page, by validating fields exist first


  • DHL Parcel: Added Usabilla feedback button to the plugin settings page
  • DHL Parcel: Added an option to calculate free shipping after applying discounts
  • DHL Parcel: Updated free shipping settings to be either free, or for discounts
  • DHL Parcel: Each delivery option can now be seperately set to be eligable for free or discounted shipping
  • DHL Parcel: Each delivery option has now it’s own free or discounted pricing
  • DHL Parcel: Enabled most shipping options available in My DHL Platform.
  • DHL Parcel: ServicePoint can now be selected and changed in the admin, whether a customer has selected a ServicePoint or not
  • DHL Parcel: Updated label creation interface to be in-line with My DHL Platform
  • DHL Parcel: Updated ServicePoint Locator to use the unified React Component version
  • DHL eCommerce: Bulk generate labels for all formats
  • DHL eCommerce: Force DHL product in bulk label generation
  • DHL eCommerce: Add fixed weight to package in settings
  • DHL eCommerce: Set label format settings
  • DHL eCommerce: Set “Incoterms” in order
  • DHL eCommerce: Add COD in order
  • DHL eCommerce: Add Vietnam states to WooCommerce


  • Bug fix: Always place shipper, receiver and return “company name” first in address
  • Bug fix: Only validate locations if “ship to different address” checkbox is checked


  • Bug fix: Use ‘jQuery’ instead of ‘$’ on frontend script


  • Bug fix: Default to ‘customer’ order note instead of ‘private’


  • Bug fix: Shipper street number can include characters


  • DHL Paket: New feature – Added Parcel Shop Finder for “Packstation” and “Branch”, with Google map.
  • DHL Paket: New feature – Preferred day and time set dynamically based on postcode
  • DHL Paket: New feature – Bulk create labels in order view
  • DHL Paket: New feature – Create return label option
  • DHL Paket: New feature – Added “Print Only If Codeable” service
  • DHL Paket: New feature – Added “Ident-Check” service
  • DHL Paket: New feature – Making tracking note private setting so it does not send email to customer
  • DHL Paket: Save all labels in their own folder i.e. “/wp-content/uploads/woocommerce_dhl_label”


  • Bug fix – DHL eCommerce: Deleted products cause exception error on edit order


  • DHL Parcel: Version number increased to load updated CSS and JS files


  • DHL Parcel: Shipping zones added
  • DHL Parcel: Checkout will now only show available shipping methods based on shopper address
  • DHL Parcel: Added missing customer fields that prevented customers from receiving certain automated notifications
  • DHL Parcel: Signature can be enabled to be checked by default (if available)
  • DHL Parcel: Track & trace link updated to include postcode, to show full data


  • Validation fix – Validate product exists before adding weight
  • Validation fix – Validate shipping address state exists before modifying it


  • Bug fix – DHL Parcel: Removed empty ServicePoint API calls
  • Bug fix – DHL Parcel: Now properly returns a visible error when street + number cannot be parsed
  • Enhancement – DHL Parcel: Added optional track & trace information to WooCommerce order completion mail


  • Enhancement: Send order currency and price instead of shop currency and product price to support multi-currency plugins


  • Sending “email” field via DHL Paket API to support DHL AT
  • Bug fix – Exception handling for payment gateway check


  • Bug fix – DHL Paket: Tooltip conflict with bootstrap tooltip
  • Bug fix – DHL Paket: Remove * text if preferred day and time not displayed in the frontend
  • Bug fix – DHL eCommerce: Fix conflict between ‘PayPal Express’ and plugin for DHL eCommerce merchants only
  • Bug fix – DHL eCommerce: Fix settings links
  • Warning fix: ‘payment_method’ array key warning
  • Enhancement: Add weight filter ‘pr_shipping_dhl_order_weight’
  • Enhancement – DHL Paket: Remove ‘Test Connection’ button, since not accurate


  • Bug fix – DHL Parcel: Fixed Dutch translation loading bug
  • Enhancement – DHL Parcel: Added track & trace component to account page, can be enabled in settings
  • Enhancement – DHL Parcel: Added postcode sensitivity fix due to change in the API validation
  • Enhancement – DHL Parcel: Added the ability to debug by mail, can be enabled in settings
  • Enhancement – DHL Parcel: Added WordPress application tag to labels


  • Enhancement – Modify log messages


  • Enhancement – DHL eCommerce: increase POST timeout to 30 seconds instead of 5


  • Bug fix – DHL Paket: Fix special field e.g. &amp in ship address


  • Bug fix – DHL Paket: Subscription renewal action, parameters incorrect
  • Bug fix – DHL eCommerce: Delete token transient on saved settings to avoid conflict if connection type changed


  • Enhancement – DHL Paket: Remove “preferred_none” on thank you page
  • Enhancement – DHL Paket: Do not display DHL table in checkout page, if ALL preferred services are disabled
  • Enhancement – DHL eCommerce: Rename interational products


  • DHL Paket – Do not require export information for shipping within the European Union


  • Create label metabox not displaying bug fix


  • Bug fix – DHL Parcel: Excess resource loading caused errors and incompatibilities. Moved the loading logic to an earlier state.


  • Bug fix – DHL Paket: Fix “streetNumber” SOAP error, by assuming that the last part of “Address 1” is the street number and sending separately
  • Bug fix – DHL Paket: Allow characters in “Street Address Number” in DHL Paket settings panel


  • Bug fix – DHL Paket: Fix duplicate payment details in thank you page and email
  • Bug fix – DHL Paket : Max items limit of 6 should only be for international shipments
  • Warning fix – DHL Paket: Order details does not exist for DHL Paket
  • Warning fix: If weight not numeric will throw a warning


  • First public release