slonline/dhl-express-sdk-api

API communication to the DHL Express web services.

v0.1.4 2021-06-30 12:56 UTC

This package is auto-updated.

Last update: 2024-04-29 04:59:36 UTC


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.