This unofficial library is wrapping some functions of the DHL SOAP API in order to easy create shipments and labels.
I had a lot of pain studying and programming the DHL SOAP API - just to wrap some bits in a lot of XML. There is a lot, but not very helpful, documentation to the API. So I decided to create some functions in an easy to use and understand library.
You need a DHL developer account and - as long as you want to use the API in production systems - a DHL Intraship Account.
First of all you need to create the Shipment Object with your credentials and some information from you as shipper.
// your customer and api credentials from/for dhl
$credentials = array(
'user' => 'geschaeftskunden_api',
'signature' => 'Dhl_ep_test1',
'ekp' => '5000000000',
'api_user' => '',
'api_password' => '',
'log' => true
);
// your company info
$info = array(
'company_name' => 'Kindehochdrei GmbH',
'street_name' => 'Clayallee',
'street_number' => '241',
'zip' => '14165',
'country' => 'germany',
'city' => 'Berlin',
'email' => 'bestellung@kindhochdrei.de',
'phone' => '01788338795',
'internet' => 'http://www.kindhochdrei.de',
'contact_person' => 'Nina Boeing'
);
With these infos you can create the object:
$dhl = new DHLBusinessShipment($credentials, $info);
To create a shipment and get the shipment number and label, just create the receiver details:
// receiver details
$customer_details = array(
'first_name' => 'Tobias',
'last_name' => 'Redmann',
'c/o' => '',
'street_name' => 'Hocksteinweg',
'street_number' => '11',
'country' => 'germany',
'zip' => '14165',
'city' => 'Berlin'
);
And the create a shipment
$response = $dhl->createNationalShipment($customer_details);
After that, you can read the shipment infos
if($response !== false) {
var_dump($response);
} else {
var_dump($dhl->errors);
}
That's all. More will be hopefully coming soon.
To use it in live environment, please create the Client as none sandboxed:
$dhl = new DHLBusinessShipment($credentials, $info, false);
You need also to change the credentials a bit:
// your customer and api credentials from/for dhl
$credentials = array(
'user' => 'geschaeftskunden_api',
'signature' => 'Dhl_ep_test1',
'ekp' => '5000000000',
'api_user' => '',
'api_password' => '',
'log' => true
);
user
: Use the intraship username
signature
: intraship password
ekp
: Your dhl customer id
api_user
: App ID from developer account
api_password
: App token from developer account
I build several Plugins for WordPress and WooCommerce - feel free to ask me for that.
Contact
Check out my website: www.tricd.de