DHL Express Shipping API SDK for PHP
Description
This library enables extension developers to prepare and parse messages for DHL Express API communication and provides functionality for collecting request data.
Requirements
- PHP >= 7.1
- DHL Express customer account able to access the production endpoints (optionally sandpit too)
Installation Instructions
composer require dhl/sdk-api-express
Uninstallation
composer remove dhl/sdk-api-express
Features
The DHL Express Shipping API SDK supports the following features:
- Retrieve Shipping Rates
- Create Shipping Label
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);
Support
The DHL Express Shipping API SDK was created to be used in conjunction with the Magento® 2 module DHL Express Rates at Checkout. Any other usage will not receive official support.
Developer
Christoph Aßmann | Netresearch GmbH & Co. KG | @mam08ixo
License
See LICENSE.md for license details.