votrecompany / dpd-france-sdk
SDK PHP pour l'API DPD France - Gestion des envois, étiquettes, suivi et plus
v1.5.2
2026-03-16 10:22 UTC
Requires
- php: >=8.0
- ext-curl: *
- ext-json: *
- ext-soap: *
- guzzlehttp/guzzle: ^7.5
- psr/log: ^3.0
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.6
- squizlabs/php_codesniffer: ^3.7
README
SDK PHP pour les webservices SOAP DPD France avec DTOs typés pour EPrint (expédition/étiquettes) et Trace (suivi).
Fonctionnalités
- Client unique:
DPD\DPDClient - Endpoints typés:
eprint()viaDPD\Endpoints\EPrintEndpointtrace()viaDPD\Endpoints\TraceEndpoint
- Configuration centralisée via
DPD\Config\Config - Appels SOAP encapsulés via
DPD\Http\SoapGateway - Requêtes/réponses typées avec DTOs (
src/Models/Request,src/Models/Response) - Jeux de tests unitaires, d’intégration et live
Prérequis
- PHP >= 8.0
- Extensions PHP:
soap,json,curl
Installation
composer install
Configuration
Le SDK lit la configuration depuis:
- le tableau passé à
new Config([...])(prioritaire) - les variables d’environnement
- les valeurs par défaut testenv
Variables principales:
DPD_ENV(testouprod)DPD_TEST_USERID/DPD_TEST_PASSWORDDPD_PROD_USERID/DPD_PROD_PASSWORDDPD_TEST_EPRINT_WSDL/DPD_TEST_TRACE_WSDLDPD_TEST_EPRINT_LOCATION/DPD_TEST_TRACE_LOCATION
Un template complet est disponible dans .env.example.
Démarrage rapide
<?php require __DIR__ . '/vendor/autoload.php'; use DPD\Config\Config; use DPD\DPDClient; $client = new DPDClient(new Config()); // Ping EPrint $alive = $client->eprint()->isAlive(); // Ping Trace $traceAlive = $client->trace()->isAlive();
Exemples disponibles
php examples/trace_dto_usage.php <shipmentNumber> [countryCode] [centerNumber] [customerNumber]php examples/eprint_live_complete.phpphp examples/trace_live_complete.php [shipmentNumber] [parcel] [reference]
Les scripts *_live_complete.php reprennent des flows proches des tests live (création, lecture, labels, trace).
Tests
Lancer tous les tests:
composer test
Lancer uniquement EPrint live:
./vendor/bin/phpunit --filter EPrintEndpointLiveTest
Lancer uniquement Trace live:
./vendor/bin/phpunit --filter TraceEndpointLiveTest
Afficher les tests skipés:
./vendor/bin/phpunit --filter EPrintEndpointLiveTest --log-junit build/junit-eprint-live.xml
Documentation SOAP embarquée
docs/eprint-operation-examples.mddocs/webtrace-operation-examples.md
Structure utile
src/DPDClient.phpsrc/Config/Config.phpsrc/Endpoints/EPrintEndpoint.phpsrc/Endpoints/TraceEndpoint.phpsrc/Models/Request/*src/Models/Response/*tests/
Notes
- Les tests live dépendent des permissions et données disponibles côté DPD (certaines opérations peuvent être skipées selon le contexte compte/environnement).
- Les endpoints et formats SOAP ont des variantes de payload; les DTOs et mappings ont été ajustés pour les formes observées en testenv.