mohamedhekal/shipbridge-dhl

DHL Express carrier driver for ShipBridge (Global)

Maintainers

Package info

github.com/mohamedhekal/shipbridge-dhl

pkg:composer/mohamedhekal/shipbridge-dhl

Transparency log

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.2.0 2026-07-16 15:31 UTC

This package is auto-updated.

Last update: 2026-07-16 16:04:57 UTC


README

CI License: MIT Packagist

DHL Express shipping driver for ShipBridge · Region: Global / عالمي

Real MyDHL API: https://express.api.dhl.com/mydhlapi

بالعربي — في ٣ خطوات

١) ثبّت الحزمتين

composer require mohamedhekal/shipbridge mohamedhekal/shipbridge-dhl

٢) حط مفاتيح DHL Express في .env

SHIPBRIDGE_DRIVER=dhl
DHL_USERNAME=your-api-user
DHL_PASSWORD=your-api-password
DHL_ACCOUNT_NUMBER=123456789
DHL_BASE_URL=https://express.api.dhl.com/mydhlapi/test
DHL_PRODUCT_CODE=P

للإنتاج: https://express.api.dhl.com/mydhlapi — التفاصيل في docs/GUIDE_AR.md.

٣) ابعت شحنة

use Hekal\ShipBridge\Facades\ShipBridge;
use Hekal\ShipBridge\DTOs\Address;
use Hekal\ShipBridge\DTOs\CreateShipmentRequest;
use Hekal\ShipBridge\DTOs\Parcel;

$shipment = ShipBridge::driver('dhl')->createShipment(new CreateShipmentRequest(
    origin: new Address('المخزن', 'شارع ١', 'القاهرة', 'EG', postalCode: '11511', phone: '01011111111'),
    destination: new Address('العميل', 'شارع النيل', 'الجيزة', 'EG', phone: '01000000000', postalCode: '12611'),
    parcels: [new Parcel(weightKg: 1.2, lengthCm: 10, widthCm: 10, heightCm: 10)],
    reference: 'ORD-42',
));

echo $shipment->trackingNumber;

تتبع / ليبل / مرتجع:

ShipBridge::driver('dhl')->track($shipment->trackingNumber);
ShipBridge::driver('dhl')->label($shipment->trackingNumber);
ShipBridge::driver('dhl')->createReturn(...);

English — Quick start

composer require mohamedhekal/shipbridge mohamedhekal/shipbridge-dhl
SHIPBRIDGE_DRIVER=dhl
DHL_USERNAME=your-api-user
DHL_PASSWORD=your-api-password
DHL_ACCOUNT_NUMBER=123456789
DHL_BASE_URL=https://express.api.dhl.com/mydhlapi
DHL_PRODUCT_CODE=P
DHL_PICKUP_REQUESTED=false
ShipBridge::driver('dhl')->createShipment(...); // POST /shipments
ShipBridge::driver('dhl')->track('AWB');         // GET /shipments/{id}/tracking
ShipBridge::driver('dhl')->label('AWB');         // documents[] or tracking URL

See docs/API.md for payload fields, auth, and status mapping.

How it fits

Your Laravel app
      │
      ▼
 ShipBridge  (one API for all carriers)
      │
      ▼
 shipbridge-dhl  ← this package (DHL Express MyDHL API)

Testing

composer install && composer test

License

MIT © Mohamed Hekal

ShipBridge · dhl