Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jackbayliss/laravel-dhl-api

DHL XML Wrapper for Laravel, easily get Quotes, Routing or Tracking.
https://github.com/jackbayliss/laravel-dhl-api

api dhl laravel

Last synced: about 1 month ago
JSON representation

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

Awesome Lists containing this project

README

        

# 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.

```php
$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.

```php
$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.

```php
$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
* **Jack Bayliss** - *Adjustments to make it work ^^* - [Jack Bayliss](https://github.com/jackbayliss)

* **Duwayne Brown** - *(old repo)* - [MisterBrownRSA](https://github.com/MisterBrownRSA)

## License

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