karrioapi / karrio

Programmable Shipping API (self-hosted)

Home Page:https://karrio.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[carrier-integration] DHL Freight

MarcoWel opened this issue · comments

Is your feature request related to a problem? Please describe.
DHL Freight is the DHL branch for large goods / palettized shipments. They are widely used in Germany and EU.
https://www.dhl.com/global-en/home/our-divisions/freight.html

Describe the solution you'd like
DHL Freight uses a XML/SOAP webservice. It would be great to be supported out of karrio.

The following operations are supported by the weborder service (full schema attached):

  • dhl:DHL_ShipmentRequest: Create a shipment (not finalized)
  • dhl:DHL_ShipmentDeletionRequest: Cancel a shipment
  • dhl:DHL_ShipmentValidationRequest: Check if shipment is prepared (but not finalized)
  • dhl:DHL_ManifestCreationRequest: Finalize shipment
  • dhl:DHL_DocumentsRequest: Create shipment documents (Loadinglist and Barcode)

There are no rate requests, so rates should be determined via karrio's new pricing table scheme.

Describe alternatives you've considered
Currently, DHL Freight shipments must be created manually via their FCM AX4 web portal. This is error prone and time consuming.

Additional Context
Full Schema: final_wo_version_1_3_13_20230103_1053.wsdl.txt

@danh91 How much work do you expect this to be? If you could provide the generated schema structs, I will help you getting this done.

commented

We have to assess. Technically an hour or two to setup the extension with identification of services, options...

But I don't know how long testing will take. Depending on API key accessibility...

A couple of things on the roadmap before we get to tackle it

Typical sequence for creating a DHL Freight shipment:

  • dhl:DHL_ShipmentRequest to create a preliminary shipment. Returns the AX4ShipmentNo (shipment ID) plus NVEs (piece IDs starting with 0034...).
  • dhl:DHL_ManifestRequest with AX4ShipmentNo to finalize the prepared shipment
  • dhl:DHL_DocumentsRequest with AX4ShipmentNo to retrieve the shipping documents (LoadingList and Barcode)

There is one specialty with DHL Freight: Shipments can only be cancelled (dhl:DHL_ShipmentDeletionRequest) before they are finalized. After finalization, the shipment cannot be cancelled via API anymore.

On the other hand, the shipping docs are only partially available before finalizing (LoadingList). The actual barcode document(s) which serves as the shipping label(s) is available after the ManifestRequest.

Any update on this one? Let me know if you need support with testing.

commented

Hi @MarcoWel,

I haven't forgotten this one. I hope to finish the upgrade to new APIs for the ones that are already supported like (DPDHL, and DHL Express JSON APIs…).

It is one of the unconventional ones were the API doesn't follow regular APIs sequences so I don't want to underestimate the work it will require and make false promises.