/laravel-dhl-api

DHL XML Wrapper for Laravel, easily get Quotes, Routing or Tracking.

Primary LanguagePHPMIT LicenseMIT

Laravel DHL XML API

I needed a DHL wrapper so I could efficiently provide courier quotes to customers- I did find one. But, it needed to be adjusted to work for my needs- this is effectively the edited version to provide Quotes, Routing and Tracking.

Getting Started

Prerequisites

This should work fine on Laravel>=5.7.28, if your version of Laravel does not support auto linking you will need to add \jackbayliss\DHLApi\DHLAPIProvider::class into your providers array located in config/app.php

Installing

composer require jackbayliss/laravel-dhl-api

Usage Examples

Config setup

In order to use the wrapper you'll need to setup a few things in your Config.php file- or alternatively you .env file if you don't want to use the config.

You'll need to set from_country_code,from_post_code,account_number,siteid,password in your config

or alternatively set DHL_SITEID,DHL_PASSWORD,DHL_ACCOUNT_NUMBER, DHL_FROM_COUNTRYCODE,DHL_FROM_POSTCODE in your .env don't forget to edit the config to be null for all the entries.

Quotation

This is typically used to get shipping quotes, as well as the time for transit etc.

$quote = new \jackbayliss\DHLApi\Calls\GetQuote();
$quote->declaredValue(10)->reference("0999999999990393939333333333")
->currency("GBP")->toCountryCode("DE")->toPostalCode("91056")->setPieces([
 array("height" => 10,"width" => 10 ,"depth" => 2,"weight" => 0.5)
]);

$quote->getResponse();

Tracking

Self explanitory- it'll track a parcel for you.

 $tracking = new \jackbayliss\DHLApi\Calls\GetTracking();
 $tracking = $tracking->reference("0999999999990393939333333333")->trackingNumber("8564385550");
 $tracking->getResponse();

Routing

Used to provide routing information about a parcel to a particular address.

$routing = new  \jackbayliss\DHLApi\Calls\GetRouting();

$routing = $routing->reference("0999999999990393939333333333")->address([
'RegionCode' => 'EU', 
'RequestType' => 'O', 
'Address1'  => 'Oracle Parkway,',
'Address2' => 'Thames Valley Park (TVP)', 
'Address3' => 'Berkshire', 
'PostalCode' => 'RG6 1RA',
'City' => 'Reading',
'Division' => 'RE',
'CountryCode' => 'GB',
'CountryName' => 'United Kingdom', 
'OriginCountryCode' => 'GB'
]);

$routing->getResponse();

Methods

These methods can be linked to any of the above core API classes.

getResponse() - This will execute the cURL request and return the XML data as an Object.

getRawResponse() - This will return the XML response from the DHL API as A String.

toXML() - This will return the XML you sent to the DHL API as A String.

Authors

License

This project is licensed under the MIT License - see the LICENSE.md file for details