slonline / dhl-express-sdk-api
API communication to the DHL Express web services.
Requires (Dev)
- phpstan/phpstan: ^0.12.2
- phpunit/phpunit: ^7.0.0
- squizlabs/php_codesniffer: ^3.4
README
Description
This library enables extension developers to prepare and parse messages for DHL Express API communication and provides functionality for collecting request data.
This library is derived from dhl/sdk-api-express of Netresearch DTT GmbH.
Requirements
- PHP >= 7.1
- DHL Express customer account able to access the production endpoints (optionally sandpit too)
Installation Instructions
composer require slonline/dlh-express-sdk-api
Uninstallation
composer remove slonline/dlh-express-sdk-api
Features
The DHL Express Shipping API SDK supports the following features:
- Retrieve Shipping Rates
- Create Shipping Label
- Create Shipping Label with Export Items
Shipping Rates
The Rate Request will return DHL's product capabilities (products, services, and estimated delivery time) and prices (where applicable) for a certain set of input data.
Public API
The library's components suitable for consumption comprise of
- services:
- service factory
- rate service
- data transfer object builder
- data transfer objects:
- rate request
- rate response
Usage
$logger = new \Psr\Log\NullLogger(); $serviceFactory = new SoapServiceFactory(); $service = $serviceFactory->createRateService('api-user', 'api-pass', $logger); $requestBuilder = new RateRequestBuilder(); $requestBuilder->setIsUnscheduledPickup($isUnscheduledPickup); $requestBuilder->setShipperAccount($accountNumber); $requestBuilder->setShipperAddress($countryCode, $postalCode, $city, $etc); $requestBuilder->setRecipientAddress($countryCode, $postalCode, $city, $etc); $requestBuilder->setWeightUOM($weightUOM); $requestBuilder->setDimensionsUOM($dimensionsUOM); $requestBuilder->setTermsOfTrade($termsOfTrade); $requestBuilder->setContentType($contentType); $requestBuilder->setReadyAtTimestamp($readyAtTimestamp); $requestBuilder->addPackage($weight, $weightUom, $length, $width, $height, $dimensionsUom, $readyAtDate); $requestBuilder->setInsurance($insuranceValue, $insuranceCurrency); $request = $requestBuilder->build(); $response = $service->collectRates($request);
Shipping Label
The ShipmentRequest operation will allow you to generate an AWB number and piece IDs, generate a shipping label, transmit manifest shipment detail to DHL, and optionally book a courier for the pickup of a shipment.
Public API
The library's components suitable for consumption comprise of
- services:
- service factory
- shipment service
- data transfer object builder
- data transfer objects:
- shipment request
- shipment response
Usage
$logger = new \Psr\Log\NullLogger(); $serviceFactory = new SoapServiceFactory(); $service = $serviceFactory->createShipmentService('api-user', 'api-pass', $logger); $requestBuilder = new ShipmentRequestBuilder(); $requestBuilder->setIsUnscheduledPickup($unscheduledPickup); $requestBuilder->setTermsOfTrade($termsOfTrade); $requestBuilder->setContentType($contentType); $requestBuilder->setReadyAtTimestamp($readyAtTimestamp); $requestBuilder->setNumberOfPieces($numberOfPieces); $requestBuilder->setCurrency($currencyCode); $requestBuilder->setDescription($description); $requestBuilder->setServiceType($serviceType); $requestBuilder->setPayerAccountNumber($accountNumber); $requestBuilder->setInsurance($insuranceValue, $insuranceCurrency); $requestBuilder->setShipper($countryCode, $postalCode, $city, $streetLines, $name, $company, $phone); $requestBuilder->setRecipient($countryCode, $postalCode, $city, $streetLines, $name, $company, $phone); $requestBuilder->setDryIce($unCode, $weight); $requestBuilder->addPackage($sequenceNumber, $weight, $weightUOM, $length, $width, $height, $dimensionsUOM, $customerReferences); $request = $requestBuilder->build(); $response = $service->createShipment($request);
Developer
Lubos Odraska | SLONline, s.r.o Christoph Aßmann | Netresearch GmbH & Co. KG | @mam08ixo
License
See LICENSE.md for license details.