Skip to content
Farhat Ullah.
ERP

DHL Freight and Comgate integration for a Czech industrial supplier

Diagnosed why standard shipping connectors fail in the Czech Republic and scoped a native Odoo module against DHL's local API variant, building on a prior custom Comgate payment gateway integration for the same client.

Client
Gumová Střecha
Sector
ERP
Stack
Odoo · Python · DHL CZ API · Comgate API
Year
2024
By Farhat UllahSenior Full Stack + AI EngineerUpdated

The problem

Gumová Střecha, a Czech industrial supplier, needed reliable shipping automation inside their Odoo ERP. The obvious route — a standard DHL connector from the Odoo app store — didn't actually work for them. DHL Czech Republic runs a local API variant that off-the-shelf modules aren't built against, so the standard connectors either failed silently or dropped shipments at the border without a usable error.

What I built

Rather than patch the third-party connector, I diagnosed the root cause: the mismatch was structural, not a configuration bug, because the third-party module was built against DHL's general API, not the Czech-specific one. I recommended and scoped a custom Odoo module written directly against DHL CZ's API, and opened a direct technical channel with DHL's IT contact to confirm the correct endpoints and authentication flow before writing any code.

This built on integration work I'd already delivered for the same client — a custom Comgate payment gateway module, since Comgate is the dominant Czech payment processor and, like DHL CZ, isn't well served by generic international connectors.

Outcome

The client now runs native shipping and payment flows inside their ERP, without depending on a third-party module's release cycle or licence terms. Shipments go out through the correct DHL CZ endpoints instead of failing at a border the generic connector never accounted for.

Why it mattered

The cheap answer here would have been to install a plugin, watch it pass a demo, and ship it — it would have looked fine until the first real shipment hit the Czech-specific routing rules and quietly failed. Diagnosing the API mismatch before writing code is what kept this from becoming a production incident instead of a design decision.

Have a system that needs to work in production?

Tell me what's breaking — or what you're building.

Chat on WhatsApp