Unofficial DHL PHP SDK based on the DHL API
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore initial commit Nov 28, 2013
README.md added sandbox switch and added more documentation Feb 3, 2015
dhl-php-sdk.php added sandbox switch and added more documentation Feb 3, 2015
test.php

README.md

DHL PHP SDK

This unofficial library is wrapping some functions of the DHL SOAP API in order to easy create shipments and labels.

Motivation

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.

Prerequirements

You need a DHL developer account and - as long as you want to use the API in production systems - a DHL Intraship Account.

Usage

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.

Using the live API

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

WordPress and WooCommerce

I build several Plugins for WordPress and WooCommerce - feel free to ask me for that.

Contact

Check out my website: www.tricd.de