jacobdekeizer/dpd-shipper-client
Composer 安装命令:
composer require jacobdekeizer/dpd-shipper-client
包简介
A PHP client for the DPD shipper API
关键字:
README 文档
README
An object-oriented PHP client for the DPD Shipper API.
Installation
You can install this package via composer:
composer require jacobdekeizer/dpd-shipper-client
Usage
$client = new \JacobDeKeizer\DpdShipper\Client( authTokenStore: new \JacobDeKeizer\DpdShipper\Stores\JsonFileAuthTokenStore( __DIR__ . '/auth.json' ), // Or your own implementation of the AuthTokenStore interface accountConfiguration: new \JacobDeKeizer\DpdShipper\Configuration\AccountConfiguration( username: 'username', depotNumber: 'depot number', password: 'password', ), locale: 'nl_NL', // optional staging: false, // optional );
Endpoints
This readme shows basic usage of this package, for all available options see the class definitions and the api documentation.
ParcelShopFinder
Find parcel shops
$result = $client->parcelShopFinder()->findParcelShops(new \JacobDeKeizer\DpdShipper\Entities\ParcelShopFinder\FindParcelShopsRequest( country: 'NL', zipCode: '1012NX', city: 'Amsterdam', limit: 2 ));
Find parcel shops by geo data
$result = $client->parcelShopFinder()->findParcelShopsByGeoData(new \JacobDeKeizer\DpdShipper\Entities\ParcelShopFinder\FindParcelShopsByGeoDataRequest( latitude: 52.377956, longitude: 4.897070, limit: 2 ));
Shipment
Store orders
$result = $client->shipment()->storeOrders(new \JacobDeKeizer\DpdShipper\Entities\Shipment\StoreOrdersRequest( [ new \JacobDeKeizer\DpdShipper\Entities\Shipment\Order( generalShipmentData: new \JacobDeKeizer\DpdShipper\Entities\Shipment\GeneralShipmentData( sendingDepot: $this->client->login()->session()->depot, product: \JacobDeKeizer\DpdShipper\Entities\Shipment\ShipmentProduct::CL, sender: new \JacobDeKeizer\DpdShipper\Entities\Shipment\Address( name1: 'Ikea', street: 'Hullenbergweg', country: 'NL', zipCode: '1101BL', city: 'Amsterdam', houseNo: '2', phone: '+31612345678', email: 'johndoe@example.com', ), recipient: new \JacobDeKeizer\DpdShipper\Entities\Shipment\Address( name1: 'John Doe', street: 'Hullenbergweg', country: 'NL', zipCode: '1101BL', city: 'Amsterdam', name2: 'Company Name', houseNo: '2', phone: '+31612345678', email: 'johndoe@example.com', ), ), productAndServiceData: new \JacobDeKeizer\DpdShipper\Entities\Shipment\ProductAndServiceData( orderType: \JacobDeKeizer\DpdShipper\Entities\Shipment\OrderType::Consignment, saturdayDelivery: true, predict: new \JacobDeKeizer\DpdShipper\Entities\Shipment\Notification( channel: \JacobDeKeizer\DpdShipper\Entities\Shipment\NotificationChannel::Sms, value: '+31612345678', language: 'NL', ), ), parcels: [ new \JacobDeKeizer\DpdShipper\Entities\Shipment\Parcel( customerReferenceNumber1: 'TEST12345', customerReferenceNumber2: 'A reference', // Optional volume: 0100202030, // 10cm x 20cm x 30cm, optional weight: 315, // 3,15 KG, optional ), new \JacobDeKeizer\DpdShipper\Entities\Shipment\Parcel( customerReferenceNumber1: 'TEST12', ) ] ) ], new \JacobDeKeizer\DpdShipper\Entities\Shipment\PrintOptions( printerLanguage: \JacobDeKeizer\DpdShipper\Entities\Shipment\PrinterLanguage::PDF, paperFormat: \JacobDeKeizer\DpdShipper\Entities\Shipment\PaperFormat::A6, ) ));
Exceptions
All exceptions extend from the DpdShipperException. See the Exceptions folder for all possible exceptions if you want to catch them individually.
try { $result = $client->parcelShopFinder()->findParcelShopsByGeoData(...); var_dump($result); } catch (\JacobDeKeizer\DpdShipper\Exceptions\AuthenticationFaultException $authenticationFaultException) { // Catches the specific AuthenticationFaultException $errorMessage = $authenticationFaultException->detail->authenticationFault->errorMessage; var_dump($authenticationFaultException->detail); } catch (\JacobDeKeizer\DpdShipper\Exceptions\DpdShipperException $exception) { // Catches the rest of the possible exceptions. var_dump($exception); }
jacobdekeizer/dpd-shipper-client 适用场景与选型建议
jacobdekeizer/dpd-shipper-client 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 222 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 10 月 19 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「api」 「dpd」 「dpd shipper」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 jacobdekeizer/dpd-shipper-client 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 jacobdekeizer/dpd-shipper-client 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 jacobdekeizer/dpd-shipper-client 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
DPD Magento2 Shipping extension
DPD Connect - Magento2 Shipping GraphQL
OroCommerce DPD Integration
DPD Connect - Magento2 Shipping Hyva Compatibility module
DPD carrier api library
A PSR-7 compatible library for making CRUD API endpoints
统计信息
- 总下载量: 222
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 16
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-10-19