PHPackages                             dpdconnect/magento2-shipping - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. dpdconnect/magento2-shipping

ActiveMagento2-module[Utility &amp; Helpers](/categories/utility)

dpdconnect/magento2-shipping
============================

DPD Connect - Magento2 Shipping

1.5.0(3mo ago)9156.8k↓47.4%26[22 issues](https://github.com/dpdconnect/magento2-shipping/issues)[12 PRs](https://github.com/dpdconnect/magento2-shipping/pulls)1GPL-3.0-or-laterPHPPHP &gt;=8.1CI failing

Since Oct 11Pushed 3mo ago6 watchersCompare

[ Source](https://github.com/dpdconnect/magento2-shipping)[ Packagist](https://packagist.org/packages/dpdconnect/magento2-shipping)[ Docs](https://www.dpd.com/nl/business_customers/hulp_en_tools/e_commerce/magento)[ RSS](/packages/dpdconnect-magento2-shipping/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (10)Dependencies (8)Versions (42)Used By (1)

[![DPD Connect](view/adminhtml/web/images/dpd-logo-transparant.png)](view/adminhtml/web/images/dpd-logo-transparant.png)DPD Connect for Magento 2
=========================

[](#dpd-connect-for-magento-2)

[![PHP 7.2+](https://camo.githubusercontent.com/e0ed7e77a46e4e23ab67adb0b1a11ce01e3fcec3f366169d47694c1e1bab090c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d372e322532422d3737374242343f6c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/e0ed7e77a46e4e23ab67adb0b1a11ce01e3fcec3f366169d47694c1e1bab090c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d372e322532422d3737374242343f6c6f676f3d706870266c6f676f436f6c6f723d7768697465)[![Magento 2.3+](https://camo.githubusercontent.com/5e9a0eb447997e5dd0d6789057493b48aa0cdc57f54421b4ab2b16ae8f9d673d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6167656e746f2d322e332532422d4545363732463f6c6f676f3d6d6167656e746f266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/5e9a0eb447997e5dd0d6789057493b48aa0cdc57f54421b4ab2b16ae8f9d673d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6167656e746f2d322e332532422d4545363732463f6c6f676f3d6d6167656e746f266c6f676f436f6c6f723d7768697465)[![License GPL-3.0](https://camo.githubusercontent.com/cf08f9d9c81e88957c30b8b0752a5e08ac3cc3c4b764aada8c341eee34a27238/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d47504c2d2d332e302d626c7565)](https://camo.githubusercontent.com/cf08f9d9c81e88957c30b8b0752a5e08ac3cc3c4b764aada8c341eee34a27238/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d47504c2d2d332e302d626c7565)[![Version 1.0.8](https://camo.githubusercontent.com/565f897c667f9286db5f952ada7ee61d75979d2609a398dec9a8cf93283b65f2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f56657273696f6e2d312e302e382d627269676874677265656e)](https://camo.githubusercontent.com/565f897c667f9286db5f952ada7ee61d75979d2609a398dec9a8cf93283b65f2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f56657273696f6e2d312e302e382d627269676874677265656e)

**Integrate DPD parcel shipping directly into your Magento 2 store.**Generate labels, offer Parcelshop pickup at checkout, and monitor async batches — all from the Magento admin.

[Features](#-features) · [Requirements](#-requirements) · [Installation](#-installation) · [Configuration](#-configuration) · [Development](#-development)\]

---

📦 Features
----------

[](#-features)

### 🏷️ Label Generation

[](#️-label-generation)

FeatureDescription**Single label**Generate from any order page via the order actions menu**Bulk labels**Select multiple orders from the sales grid and process in one action**Return labels**Generated and stored separately from shipping labels**Fresh &amp; Freeze**Temperature-controlled shipments with per-parcel expiration dates**Multi-parcel**Split a single order across multiple parcels via the packaging popup### 🗺️ Delivery Options

[](#️-delivery-options)

FeatureDescription**DPD Classic**Standard delivery via the unified DPD carrier with customer product selection**DPD Parcelshop**Embedded Google Maps picker at checkout — customer chooses a pickup point**DPD Predict**Home delivery with email notification for B2C and B2B MSG products**Saturday delivery**Method automatically hidden outside a configurable day + time window**Express (E10 / E12)**Guaranteed delivery before 10:00 or 12:00**Guarantee 18**Guaranteed delivery before 18:00**Age check**Flag products to require recipient age verification at delivery### ⚡ Processing &amp; Downloads

[](#-processing--downloads)

FeatureDescription**Synchronous**Small batches generated and downloaded immediately as PDF**Asynchronous**Larger batches queued at DPD; labels delivered via webhook callback**A4 and A6**Choose the format that matches your printer**ZIP or merged PDF**Download bulk labels as a ZIP archive or a single merged PDF**Shipping list**Printable pick list for warehouse staff### 🔧 Admin &amp; Integration

[](#-admin--integration)

FeatureDescription**Batch monitor**Sales → DPD → Batches grid shows status of every async job**Label archive**Sales → DPD → Labels grid with download and mass-download actions**Table rates**Per-carrier custom rate tables (by weight, price, or qty)**Customs support**HS code, export description, and consignee data sent for international shipments**Multi-store**All credentials and settings configurable per website / store view**REST API**`dpd_parcelshop_id` exposed on Magento Order API via extension attributes---

✅ Requirements
--------------

[](#-requirements)

DependencyVersionPHP≥ 7.2Magento Framework≥ 103.0.6 (Magento 2.3+)`dpdconnect/php-sdk`^1.1Google Maps API keyRequired for Parcelshop pickup---

🚀 Installation
--------------

[](#-installation)

```
composer require dpdconnect/magento2-shipping
```

After installation run the standard Magento upgrade sequence:

```
php bin/magento module:enable DpdConnect_Shipping
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy -f
php bin/magento cache:flush
```

### Upgrade

[](#upgrade)

```
composer update dpdconnect/magento2-shipping
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy -f
php bin/magento cache:flush
```

---

⚙️ Configuration
----------------

[](#️-configuration)

Navigate to **Stores → Configuration → Sales → DPD Parcelservice**.

### Account Settings

[](#account-settings)

SettingDescription**Username**Your DPD Connect API username**Password**Your DPD Connect API password (stored encrypted)**Depot**Your DPD depot number**Print format**Label paper size — A4 or A6**Test Connection**Button to verify credentials against the DPD API### Carrier Settings

[](#carrier-settings)

Navigate to **Stores → Configuration → Sales → Shipping Methods**. Each DPD carrier (`DPD`, `DPD Pickup`, `DPD Predict`, `DPD Saturday`, etc.) has its own section with price, rate type, and allowed countries.

### Advanced

[](#advanced)

SettingDescription**Include return label**Generate a return label together with every shipping label**Email return label**Email the return label PDF to the customer**Picqer mode**Store parcelshop name in the company field instead of the customer name**Save labels as file**Write label PDFs to disk (default: stored in the database)**Age check**Enable per-product age verification at delivery**Async threshold**Number of orders above which label generation switches to async mode---

🛠️ Development
--------------

[](#️-development)

### Module structure

[](#module-structure)

```
DpdConnect_Shipping/
├── Api/                    # Interfaces (ApiCallbackInterface)
├── Block/                  # Admin and frontend blocks
├── Config/Source/          # Dropdown source models
├── Controller/             # Admin + frontend controllers
├── etc/                    # XML configuration (di, events, webapi, system)
├── Helper/                 # DPDClient, DpdSettings, Data, OrderConvertService
├── Model/                  # Carriers, ResourceModels, CheckoutConfigProvider
├── Observer/               # Order, shipment and config event observers
├── Plugin/                 # Order API extension attribute plugins
├── Services/               # AuthenticationService, BatchManager, ShipmentManager
├── Setup/                  # UpgradeSchema, UpgradeData
├── Ui/                     # UI component providers
├── ViewModel/              # CheckShipment view model
├── i18n/                   # Translations (EN, NL, DE, ES, FR, IT, PL)
└── view/                   # Layout XML, templates, JS, CSS

```

### Useful commands

[](#useful-commands)

```
# Flush cache during development
php bin/magento cache:flush

# Recompile dependency injection
php bin/magento setup:di:compile

# Reindex
php bin/magento indexer:reindex

# Run PHP linter
vendor/bin/phplint .
```

### Webhook endpoint

[](#webhook-endpoint)

DPD calls back on this endpoint after async label generation:

```
POST /rest/V1/dpd-shipping/callback

```

No Magento authentication is required (``). The callback payload contains the job ID, parcel numbers, label data (fetched separately), and error information.

---

❓ FAQ
-----

[](#-faq)

**I get a "Bad credentials" error when printing a label.**

> If you use `env.php` to specify credentials, use `bin/magento config:sensitive:set` to set the password — it must be stored encrypted.
>
> ```
> bin/magento config:sensitive:set dpdshipping/account_settings/password "yourpassword"
> ```

**DPD Fresh / Freeze orders fail when creating a shipment.**

> Fresh and Freeze products can only be shipped through the DPD order overview or the packages screen. Standard Magento shipment creation is blocked by design to ensure expiration dates and product descriptions are filled in correctly.

**Labels are not appearing after async batch processing.**

> Check **Sales → DPD → Batches** for the job status. If jobs show `failed`, verify the webhook URL is publicly accessible: `https://your-store.com/rest/default/V1/dpd-shipping/callback`

**Saturday delivery is not showing at checkout.**

> The Saturday carrier has a configurable display window. Go to **Stores → Configuration → Sales → Shipping Methods → DPD Saturday** and check the "Shown from" and "Shown till" day/time settings.

###  Health Score

55

—

FairBetter than 97% of packages

Maintenance62

Regular maintenance activity

Popularity43

Moderate usage in the ecosystem

Community20

Small or concentrated contributor base

Maturity79

Established project with proven stability

 Bus Factor1

Top contributor holds 97.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~63 days

Recently: every ~162 days

Total

38

Last Release

96d ago

PHP version history (3 changes)1.0.5-betaPHP &gt;=7.0.13

1.2.0.x-devPHP &gt;=7.2

1.5.0PHP &gt;=8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/d94da6db383f60a87fdbdbaabc5ac9a7048cfa5c99827c5b2a7c4fa03b146dae?d=identicon)[dpdplugin](/maintainers/dpdplugin)

---

Top Contributors

[![dpdplugin](https://avatars.githubusercontent.com/u/32730624?v=4)](https://github.com/dpdplugin "dpdplugin (68 commits)")[![Hexmage](https://avatars.githubusercontent.com/u/22170051?v=4)](https://github.com/Hexmage "Hexmage (1 commits)")[![RikvdHeijden](https://avatars.githubusercontent.com/u/8685567?v=4)](https://github.com/RikvdHeijden "RikvdHeijden (1 commits)")

---

Tags

magento2dpddpd parcelservice

### Embed Badge

![Health badge](/badges/dpdconnect-magento2-shipping/health.svg)

```
[![Health](https://phpackages.com/badges/dpdconnect-magento2-shipping/health.svg)](https://phpackages.com/packages/dpdconnect-magento2-shipping)
```

###  Alternatives

[magepal/magento2-googletagmanager

Google Tag Manager (GTM) for Magento 2 with Advance Data Layer

2691.6M5](/packages/magepal-magento2-googletagmanager)[run-as-root/magento2-prometheus-exporter

Magento2 Prometheus Exporter

68357.9k](/packages/run-as-root-magento2-prometheus-exporter)[magepal/magento2-reindex

Reindex your Magento2 store quickly and easily from backend/admin, instead of command line.

111705.0k1](/packages/magepal-magento2-reindex)[myparcelnl/magento

A Magento 2 module that creates MyParcel labels

1860.2k](/packages/myparcelnl-magento)[smile/module-store-locator

Smile Store Locator

50533.0k5](/packages/smile-module-store-locator)[magepal/magento2-preview-checkout-success-page

Quickly and easily preview and test your Magento2 checkout success page, without placing a new order each time

7893.9k](/packages/magepal-magento2-preview-checkout-success-page)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
