dhl / module-unified-tracking
将DPDHL集团跟踪网络服务集成到Magento® 2承运模块。
Requires
- php: ^8.2.0
- ext-intl: *
- dhl/sdk-api-unified-tracking: ^2.3.0
- magento/framework: ^103.0.6
- magento/module-sales: ^103.0.6
- magento/module-shipping: ^100.4.6
- magento/module-store: ^101.1.6
- netresearch/module-shipping-core: ^3.0.0
Requires (Dev)
- phpunit/phpunit: ^9.5.0
- tddwizard/magento2-fixtures: ^1.1.0
README
DHL统一跟踪扩展将运输跟踪 - 统一API集成到Magento® 2平台。
描述
此扩展使集成商能够请求给定DHL运输的跟踪详情。此扩展本身不显示跟踪状态和跟踪历史。它接受一个跟踪号,并以适合在Magento® 2中使用的格式返回跟踪详情。UI集成需要在承运模块或类似模块中实现。
要求
- PHP >= 8.2
- PHP国际化扩展
兼容性
- Magento 2.4.6+
安装说明
安装源代码
composer require dhl/module-unified-tracking
启用模块
./bin/magento module:enable Dhl_UnifiedTracking
./bin/magento setup:upgrade
清除缓存和编译
./bin/magento cache:flush
./bin/magento setup:di:compile
卸载
要从应用程序中注销跟踪模块,请运行以下命令
./bin/magento module:uninstall Dhl_UnifiedTracking
composer update
用法
可以通过启用承运插件或直接使用跟踪服务来从网络服务中获取跟踪详情。
网络服务允许按DHL部门过滤结果。
承运插件
跟踪扩展附带一个插件,可以启用以替换承运商的原始\Magento\Shipping\Model\Carrier\AbstractCarrierOnline::getTrackingInfo
方法。
<type name="Vendor\Module\Model\Carrier"> <plugin name="dhlgw_get_tracking_info" type="Dhl\UnifiedTracking\Plugin\Carrier\GetTrackingDetails"/> </type>
然后,跟踪扩展将拾取跟踪信息请求并返回一个由Magento_Shipping
核心模块处理的结果对象。
跟踪服务
跟踪扩展提供了一个可以用于从网络服务请求跟踪详情的集成点:\Dhl\UnifiedTracking\Api\TrackingInfoProviderInterface::getTrackingDetails
。
如果需要在传递给Magento_Shipping
核心模块之前修改结果,直接使用跟踪服务可能很有用。
// \Vendor\Module\Model\Carrier::getTrackingInfo public function getTrackingInfo($tracking) { $result = $this->trackingInfoProvider->getTrackingDetails($tracking, $this->getCarrierCode()); if ($result instanceof \Magento\Shipping\Model\Tracking\Result\Error) { // create link to portal if web service returned an error $statusData = [ 'tracking' => $tracking, 'url' => 'https://trackntrace.carrier.com/?track=' . $tracking, ]; $result = $this->_trackStatusFactory->create(['data' => $statusData]); } return $result; }
限制网络服务结果
跟踪网络服务能够返回来自DHL各部门的结果。如果集成仅用于从特定承运商(例如DHL Paket)请求跟踪详情,则应通过提供跟踪配置对象通过DI配置过滤网络服务结果
<type name="Dhl\UnifiedTracking\Model\Pipeline\Stage\SendRequestStage"> <arguments> <argument name="configurations" xsi:type="array"> <item name="fooCarrierCode" xsi:type="object">Vendor\Foo\Model\TrackingConfiguration</item> <item name="barCarrierCode" xsi:type="object">Vendor\Bar\Model\TrackingConfiguration</item> </argument> </arguments> </type>
承运商代码是跟踪号所属的Magento®承运商的标识符。比较
\Magento\Sales\Api\Data\TrackInterface::getTrackNumber
\Magento\Sales\Api\Data\TrackInterface::getCarrierCode
查看API文档以获取可用服务名称列表。
支持
如有疑问或问题,请首先查阅支持门户(常见问题解答)。
如果问题无法解决,您可以通过支持门户或通过发送电子邮件到dhl.support@netresearch.de联系支持团队。
许可
版权
(c) 2021 DPDHL集团