WooCommerce and DPD is one of the most common shipping integrations for UK ecommerce businesses. DPD is the preferred courier for next-day delivery on thousands of UK online stores, and automating the connection between WooCommerce orders and DPD despatch removes the most time-consuming daily task in running an ecommerce business. This post covers how a WooCommerce DPD integration works, what it automates, and when a custom integration is the right choice over a plugin.
What a WooCommerce DPD integration automates
Shipment creation. When a WooCommerce order reaches the configured trigger status — typically “Processing” for paid orders — the integration creates the shipment in DPD automatically. Recipient address, package weight and service type are all read from the WooCommerce order. DPD validates the address and returns the consignment number and parcel number.
Label generation. Labels are generated immediately after shipment creation and routed to the configured output — a print queue for thermal printers, a PDF for desktop printing, or stored against the order for batch printing later. For businesses with thermal printers (Zebra, Dymo, BIXOLON), labels print automatically in ZPL format without anyone opening a PDF.
Tracking number write-back. The DPD consignment number is written back to the WooCommerce order automatically. It appears in the order detail in WooCommerce admin, is available to customer service, and can be included in the despatch confirmation email sent to the customer. Customers can track their order with a single click rather than having to contact you for the tracking number.
Order status update. When the label is generated and the shipment is created, the WooCommerce order status updates automatically to “Shipped” or a custom post-despatch status. WooCommerce sends the configured despatch notification email with the tracking number included.
Service selection in WooCommerce
One of the key advantages of a custom WooCommerce DPD integration over a plugin is automatic service selection. Plugins offer a dropdown or a single default service. A custom integration selects the right DPD service automatically based on rules you define.
Common service selection patterns for WooCommerce:
Checkout-driven. The most reliable approach. Customers choose standard or next-day delivery at checkout. Standard maps to DPD Two Day, next-day maps to DPD Classic. The service matches what the customer paid for without any manual decision.
Order value thresholds. Orders over £75 automatically use DPD Classic for next-day delivery. Orders under £75 use DPD Two Day. A simple rule that improves customer experience on higher-value orders without manual service selection.
Weight-based. Different weight bands route to different services or carrier accounts. Very heavy items flag for manual booking or route to DPD’s freight service.
Cut-off time. Orders placed before 2pm use DPD Classic for next-day delivery. Orders placed after 2pm switch to DPD Two Day since same-day collection for next-day isn’t possible. Runs automatically based on order timestamp.
DPD WooCommerce plugins vs custom integration
WooCommerce DPD plugins exist — the most common being Ship from WooCommerce (formerly WooCommerce Shipping) and various third-party integrations. They handle basic shipment creation and label generation for standard WooCommerce setups. The limits become apparent when your requirements go beyond the basics.
Custom service selection. Plugins implement basic weight-band service selection or a manual dropdown. Custom logic combining weight, order value, checkout delivery option and cut-off time isn’t possible with a plugin.
Thermal printer support. Most plugins generate PDFs. A custom integration can route ZPL labels directly to a thermal printer automatically, so labels print without anyone clicking anything.
Non-standard order workflows. Businesses using custom order statuses, a separate warehouse management system, or a multi-location fulfilment setup need the integration to hook into their specific workflow events rather than standard WooCommerce status transitions.
Multi-carrier routing. A custom integration can decide whether to ship an order via DPD, Royal Mail or another carrier based on service level, weight, destination or other criteria. Plugins are single-carrier by design.
No plugin update dependency. WooCommerce major version updates break plugins. A custom integration is code you own — when WooCommerce releases a new version, you update on your schedule rather than waiting for the plugin developer.
Handling failed shipment creation
A production WooCommerce DPD integration will encounter failed shipment creation at some point. The most common causes: address validation failure because a postcode doesn’t match the street address, a weight that exceeds the service limit, or DPD API unavailability during a traffic spike.
Each failure needs a defined handler. Address validation failures should flag the WooCommerce order with a custom status, show the specific DPD error message in the order notes, and send an internal notification. Weight limit failures should alert the team that a manual booking is needed. API unavailability should retry automatically and escalate if retries are exhausted.
Without explicit error handling, failed shipment creation leaves orders silently unshipped — the order stays in Processing, no label is generated, and no-one knows until the customer asks where their parcel is. With it, every failure is visible, actionable and documented in the order notes.
For the full DPD service and pricing, see the DPD API integration service. For how DPD compares with Royal Mail, see DPD API vs Royal Mail API. For what the build costs, see DPD API integration cost. For the complete DPD API guide, see DPD API integration guide.
Related posts
- DPD API integration: a complete guide
- DPD API vs Royal Mail API
- DPD tracking API integration
- DPD API integration cost
Bulk despatch and batch processing
For businesses processing significant order volumes, the integration can handle batch despatch rather than individual order-by-order processing. A batch despatch run processes all orders in the trigger status at once — creating DPD shipments, generating labels and updating order statuses in a single run triggered by a scheduled job or a manual despatch action in WooCommerce.
Batch processing is more efficient than individual per-order triggers for high-volume operations. It also makes the daily despatch process more predictable — rather than shipments being created sporadically as orders are placed, the despatch batch runs at a configured time (typically before the DPD collection window) and processes everything together. The team can see a clear summary of what was despatched, what failed and what needs manual attention.
For very high volumes, rate limit management ensures the integration doesn’t exceed DPD’s API call limits during the batch. Requests are spread across the batch window rather than firing simultaneously.
Returns management in WooCommerce
Returns label generation can be integrated into the WooCommerce returns workflow. When a customer initiates a return through your returns process, the integration creates a DPD returns label automatically and emails it to the customer with instructions. The customer prints the label (or uses a QR code at a DPD Pickup point), drops off the parcel, and your warehouse is notified via tracking event when the return is on its way back.
Returns labels can alternatively be pre-generated at the time of despatch and included in the original parcel — a common approach for high-return-rate products like clothing and footwear where an in-box returns label is a standard customer expectation.
If you need help with a custom API integration for your website or business application, I can help. I build bespoke API integrations for UK businesses. See API integration pricing or get in touch to discuss your project.
Need a custom integration built?
I build custom API integrations — Stripe, Companies House and bespoke data pipelines. Reliable, well-documented, no agency overhead.
Discuss your project →
