What is the OpenCart DPD tracking module and who is it for?
SPARCLEY DPD Tracking & Notifications Pro is an OpenCart DPD tracking module for OpenCart 3.0.x stores that ship with DPD in Lithuania, Latvia or Estonia. It works on top of the official DPD OpenCart module: it follows each new parcel through the DPD tracking API, changes the order status at every delivery milestone, emails the customer and shows a parcel timeline in the customer account.
It is built for store owners and managers who already create DPD labels in OpenCart but still copy tracking numbers into emails, change order statuses by hand or answer “where is my parcel?” messages. It is one of four new modules we have published on the OpenCart Marketplace, alongside our supplier import, XML feed and product video extensions.
How does DPD parcel tracking work in OpenCart?
Tracking starts on its own. A parcel enters the module's queue when its DPD label is created, either by this module or by the official DPD module while the tracking module is enabled. From then on the module asks the DPD tracking API for new events and stores each event once.
Tracking numbers created before installation are not tracked, so the module starts with your new shipments.
- A hosting cron job opens a secret CRON URL every 15 minutes. The URL is shown in the admin with a copy button.
- Without cron, storefront page views start the sync in the background at most once per 15 minutes. This depends on visitors, so a real cron job is more reliable.
- Each run checks up to 50 due parcels. Each parcel is checked at most every 15 minutes, or every 30 minutes after an error.
- Tracking stops when a parcel is delivered, returned or cancelled, or after five failed checks in a row.
- A Run Sync Now button runs a sync on demand and shows how many parcels were checked and updated, with one line per error.
Which DPD milestones can update the order status?
The Status Automation tab maps DPD milestones to your own OpenCart order statuses. For each milestone you choose the status and switch Update OC Status and Send Email on or off separately, so you can, for example, change the status at Out for Delivery without sending another email.
Every change adds a line to the order history with the DPD status and tracking number, and nothing changes if the order already has that status. Actions run only when a parcel reaches a new milestone. DPD texts such as “Not delivered” or “Unable to deliver” count as a delivery exception rather than a delivery, so a failed attempt does not trigger a Delivered email. The defaults use standard OpenCart statuses:
- Shipment Created – Shipped; applied only when the module creates the DPD label itself.
- In Transit – Shipped, with a customer email.
- Out for Delivery – shares the In Transit status; email off by default.
- Ready for Pickup – Shipped, with a customer email.
- Delivered – Complete, with a customer email.
- Returned – Refunded, with a customer email.
- Delivery Exception – Failed; email off by default.
How do the customer notification emails work?
Customer emails can be written in Lithuanian, English, Russian and Latvian, independently of the languages your store uses. The module chooses the language in a fixed order: a language set for the shipping method first, then a language set for the delivery country, then a general default language.
Before anything reaches customers, you can send a test email with sample data to your admin address. Each milestone email is sent at most once per order, and the Notification Log lists every message with its result; hovering over a failed entry shows the reason.
Editing a template needs no HTML. Each email has a simple editor with bold, italic, underline, colour, lists and links, plus a row of Insert buttons that add order data as readable fields:
- [First name], [Last name] and [Full name]
- [Order no.] and [Date]
- [Parcel number] and [Tracking link] to the public DPD tracking page
- [Parcel status], written in the email language
- [Shop name] and [Shop address]
Can it create DPD labels automatically?
Yes, as an option. With Create DPD label automatically enabled, adding your chosen trigger status (for example Packed) in Sales > Orders > History creates the DPD shipment, stores the tracking number on the order and starts tracking. You then print the label with the official DPD module as usual.
If DPD refuses a shipment, the reason is written to the order history – for example, a missing pickup point – so staff can correct the order and add the trigger status again. Orders that already have a DPD tracking number are skipped. Supported shipments:
- DPD pickup points and parcel lockers, with the pickup point stored on the order
- DPD courier delivery (B2C), including Saturday and same-day services, with the order's delivery time frame if one is set
- Cash on delivery orders, with the order total as the COD amount
- An option to treat X-Shipping Pro orders as DPD courier shipments
What do customers see in My Account?
Logged-in customers get a My Shipments (DPD Tracking) link in My Account. The page lists their DPD parcels with filters for all, active and completed shipments, together with the notification emails they have received.
Each shipment opens as a timeline from handover to the DPD courier, through transit and out for delivery, to Delivered – or to Delivery Exception or Returned – with a Track button to the public DPD tracking page. The same tracking block appears on the order page in Order History. Templates are included for the Default theme and Journal 3, and storefront texts are in English and Lithuanian.
Requirements, compatibility and price
The marketplace listing currently offers version 1.3.3 for $98, with 12 months of free support and documentation included. Upgrades are uploaded over the existing version and keep the settings, tracking history, notification log and saved email texts. On a live OpenCart 3 store we already run a newer 1.4 branch with further label improvements, such as cash on delivery labels through DPD's newer API and batch label printing that no longer stops because of one problem order. Improvements proven there are candidates for future marketplace updates.
Compatibility is listed from OpenCart 3.0.0.0 to 3.0.5.0; the module is not built for OpenCart 4. You will need:
- OpenCart 3.0.x with OCMOD, and PHP 7.0 or newer with the cURL extension
- The official DPD OpenCart module installed and configured – the tracking module uses its credentials, tracking numbers and DPD shipping methods
- A DPD Lithuania, Latvia or Estonia account with API access; the API token is issued automatically
- Working store mail settings and the default admin folder name (admin)
- A cron job every 15 minutes (recommended)
Need help setting up DPD tracking?
If you would like us to install the module, map the statuses to your order workflow or adjust the email texts, get in touch. If you run several OpenCart extensions, read about our other new modules for supplier imports and XML product feeds as well.
Frequently asked questions
Does the DPD tracking module work with OpenCart 4?
No. It is built for OpenCart 3.0.x with OCMOD and Twig templates. The marketplace listing shows compatibility from OpenCart 3.0.0.0 to 3.0.5.0.
Do I still need the official DPD OpenCart module?
Yes. The tracking module reads the DPD country, API username and password, tracking numbers and DPD shipping methods from the official DPD module, and labels are still printed there.
Which DPD countries are supported?
DPD Lithuania, Latvia and Estonia, using an account with API access – the same credentials the official DPD module uses.
Will parcels shipped before installation be tracked?
No. Only labels created after installation, by this module or by the official DPD module while the tracking module is enabled, are queued for tracking.
What happens if my hosting has no cron job?
Storefront page views start the sync in the background at most once every 15 minutes. Because this depends on visitors, a real cron job every 15 minutes is the more reliable option.
Can I turn off emails for some milestones?
Yes. Update OC Status and Send Email are separate switches for each milestone. By default, emails are off for Out for Delivery and Delivery Exception.