christoph-schaeffer / dhl-business-shipping

An unofficial library for the DHL business shipping soap API (Version 3.3) and the dhl shipment tracking rest API written in PHP.
MIT License
29 stars 8 forks source link

Custom WSDL to fix known bugs #33

Open iMusicJJ opened 1 year ago

iMusicJJ commented 1 year ago

Hi,

We've been implementing DHL Paket through this package, and found a few bugs in DHLs WSDL file.

However, DHL has two errors in the WSDL (which they have confirmed), but tells us that they no longer maintain the SOAP API. (Albeit they still suggest us to use it, as it's more stable than the REST-API 🤦 ).

Would you be interested in a PR, that offers the ability to use another set of WSDLs (via a config), that have this custom patch applied?

Specifically the bugs are: 1) Sending to Hong Kong. As Hong Kong does not have zipcodes. DHLs underlying system needs the zipcode field to be omitted, but it is mandatory in the WSDL.

image

2) PostNumber in both Postfiliale and Packstation. These optionally take an email, if no PostNumber is supplied, however the WSDL limits the length to 10 characters.

image image
christoph-schaeffer commented 1 year ago

Hey thanks for asking!

Actually i'd say we could do both. Change the restrictions in the wsdl + adding the feature to set a custom wsdl. It would be really nice if you could make a PR with the actual changes on the current wsdl. I'll make sure to add these changes to the following updates. You could also add the functionality to add your own wsdl. If you can... please also add unit tests for those changes.

I can tell you that the maintenance for the api is kinda neglected by dhl. Its not the fault of the employees though, they're understaffed. The "entwicklerportal" support team consists of 2 people last time i talked with them on the phone. I guess the development team is tiny as well. If it is not the same 2 people anyway...

To be honest i shouldn't complain, because im kind of doing the same...

There are some updates due in this package as well, which will include new wsdl files as well... I am also thinking of refactoring some things. If there is anything you'd like to see improved let me know.

So far im thinking of:

iMusicJJ commented 1 year ago

I can tell you that the maintenance for the api is kinda neglected by dhl.

We've just had a call with DHL where they've told us that they're phasing out the SOAP api, but still recommends us to use it, because the new REST-API is only 2 months old and not at all battle-tested yet.

I'll get on a PR

iMusicJJ commented 1 year ago

Since PHP 5.6 is long dead and buried - what do you think of upping the minimum required PHP version to a more sane ^8.1?

iMusicJJ commented 1 year ago

I am running my head against the wall with the last of the bugs:

image

I can't seem to correct it, no matter which zip property I exclude from the xsd files - do you wanna give it a shot?

I've made a small script to automatically apply the patch of known bugfixes to the two xsd files, whenever (if ever) DHL publishes a new WSDL version.