mimamuh/craft-ups-tracking
简单的UPS跟踪插件
Requires
- craftcms/cms: ^3.0.0
- gabrielbull/ups-api: 0.8.0
This package is not auto-updated.
Last update: 2024-09-20 02:42:33 UTC
README
为Craft CMS 3.x提供UPS跟踪API查询的UPS跟踪插件。它包装了gabrielbull/php-ups-api包的Tracking类,并提供api作为craft service
{# Get trackingNumber from url parameter 'trackingnum' #}
{% set trackingNumber = craft.request.getParam('trackingnum') %}
{# Passes the trackingNumber to UPS tracking api #}
{% set shipment = craft.upsTracking.getShipmentByReferenceNumber(trackingNumber) %}
要求
此插件需要Craft CMS 3.0.0或更高版本。
安装
要安装插件,请按照以下说明操作。
打开您的终端并转到您的Craft项目
cd /path/to/project
然后告诉Composer加载插件
composer require mimamuh/craft-ups-tracking
在控制面板中,转到
设置 → 插件
并点击UpsTracking
的“安装”按钮。
配置UpsTracking
要使用此插件,您需要使用UPS API的UPS访问密钥
。对于每个请求,您都必须提供访问密钥、您的UPS用户ID和密码。您可以在https://www.ups.com/upsdeveloperkit/上生成您的access key
。
在Craft管理员控制面板中,转到设置 → 插件 → UpsTracking
并输入您的UPS网站的API凭证。这些是UpsTracking插件的唯一必需设置。
待办事项:所有设置都可以通过config.php
文件进行配置,这是一个多环境友好的方式来存储默认设置。不要编辑此文件,而是将其复制到craft/config
作为ups-tracking.php
并在此处进行更改。(尚未实现)
return [
// The UPS Access Key associated with your UPS account.
"accessKey" => "REPLACE_ME",
// The username associated with your UPS account.
"userId" => "REPLACE_ME",
// The password associated with your UPS account.
"password" => "REPLACE_ME",
// The shipper number (account number) associated with your
// UPS account. Only needed when you track by reference number
// instead of tracking number
"shipperNumber" => "REPLACE_ME",
];
您可以在他们的页面了解更多关于UPS Tracking API
的信息:https://www.ups.com/upsdeveloperkit/downloadresource?loc=en_DK
在模板中使用UpsTracking插件
您可以通过UPS创建的跟踪号或发货商创建的参考号来获取UPS跟踪信息。如果您想使用参考号,您必须在设置或config.php
中设置shipperNumber
- 取决于您使用的方法。
要获取跟踪号
的运输信息,使用
{# Get shipment by tracking number #}
{% set shipment = craft.upsTracking.getShipmentByTrackingNumber(trackingNumber) %}
要获取参考号
的运输信息,使用
{# Get shipment by reference number #}
{% set shipment = craft.upsTracking.getShipmentByReferenceNumber(referenceNumber) %}
如果您有多个具有相同参考号
的运输,则使用
{# Get multiple shipments by reference number #}
{% set shipments = craft.upsTracking.getShipmentsByReferenceNumber(referenceNumber) %}
{% if shipments is defined and shipments is not null %}
{% for shipment in shipments.Shipment %}
...
{% endfor %}
{% endif %}
当未找到条目(尚无)或发生错误时(错误已记录),结果为null
。
当找到条目时,结果是一个包含运输所有信息的shipment
对象。您可以在examples/frontend-example.twig中看到一个示例模板。
{% set trackingNumber = craft.request.getParam('trackingnum') %}
{% set shipment = craft.upsTracking.getShipmentByTrackingNumber(trackingNumber) %}
{% if shipment is defined and shipment is not null %}
<table>
<tr>
<td>Shipper.ShipperNumber<td>
<td>{{ shipment.Shipper.ShipperNumber }}<td>
</tr>
<tr>
<td>Shipper.Address.AddressLine1<td>
<td>{{ shipment.Shipper.Address.AddressLine1 }}<td>
</tr>
<tr>
<td>Shipper.Address.City<td>
<td>{{ shipment.Shipper.Address.City }}<td>
</tr>
<tr>
<td>Shipper.Address.PostalCode<td>
<td>{{ shipment.Shipper.Address.PostalCode }}<td>
</tr>
<tr>
<td>Shipper.Address.CountryCode<td>
<td>{{ shipment.Shipper.Address.CountryCode }}<td>
</tr>
</table>
...
{% else %}
<div>No entry found or error occured.</div>
{% endif %}
UpsTracking路线图
要完成的事情和一些潜在功能的想法
- 允许通过
config.php
文件设置access key
。