The DHL Paket Parcel Management API SDK package offers an interface to the following web services:
- Parcel Management Checkout API
- PHP 8.1+ with JSON extension
netresearch/jsonmapper
: Mapper for deserialization of JSON response messages into PHP objectsphp-http/discovery
: Discovery service for HTTP client and message factory implementationsphp-http/httplug
: Pluggable HTTP client abstractionphp-http/logger-plugin
: HTTP client logger plugin for HTTPlugpsr/http-client
: PSR-18 HTTP client interfacespsr/http-factory
: PSR-7 HTTP message factory interfacespsr/http-message
: PSR-7 HTTP message interfacespsr/log
: PSR-3 logger interfaces
psr/http-client-implementation
: Any package that provides a PSR-18 compatible HTTP clientpsr/http-factory-implementation
: Any package that provides PSR-7 compatible HTTP message factoriespsr/http-message-implementation
: Any package that provides PSR-7 HTTP messages
fig/log-test
: PSR-3 logger implementation for testing purposesnyholm/psr7
: PSR-7 HTTP message factory & message implementationphpunit/phpunit
: Testing frameworkphp-http/mock-client
: HTTPlug mock client implementationphpstan/phpstan
: Static analysis toolrector/rector
: Automatic refactoring tool to help with PHP upgradessquizlabs/php_codesniffer
: Static analysis tool
$ composer require dhl/sdk-api-parcel-management
$ composer remove dhl/sdk-api-parcel-management
$ ./vendor/bin/phpunit -c test/phpunit.xml
The DHL Paket Parcel Management API SDK supports the following features:
- Query available DHL services during checkout (
/checkout/{recipientZip}/availableServices
)
To present the customer with valid DHL service options during checkout, this API endpoint can be used.
Available DHL services are calculated using the zip code of the recipient's address (recipientZip
).
The library's components suitable for consumption comprise
- services:
- service factory
- checkout service
- data transfer objects:
- carrier services with availability flag and options (optional)
- exceptions
$serviceFactory = new \Dhl\Sdk\Paket\ParcelManagement\Service\ServiceFactory();
$service = $serviceFactory->createCheckoutService(
$applicationId = '4pp-1D',
$applicationToken = '4pp-t0k3N',
$ekp = '1234567890',
$logger = new \Psr\Log\NullLogger(),
$sandbox = true
);
$carrierServices = $service->getCarrierServices($postalCode = '12345', $dropOffDate = new \DateTime('2038-01-19'));
// process response as desired:
$getAvailableServices = function (
array $availableServices,
\Dhl\Sdk\Paket\ParcelManagement\Api\Data\CarrierServiceInterface $carrierService
) {
if ($carrierService->isAvailable()) {
$availableServices[$carrierService->getCode()] = $carrierService;
}
return $availableServices;
};
$availableServices = array_reduce($carrierServices, $getAvailableServices, []);