mimamuh/craft-ups-tracking

简单的UPS跟踪插件

安装: 15

依赖: 0

建议: 0

安全: 0

星标: 0

分支: 0

类型:craft-plugin

0.3.0 2018-07-25 18:21 UTC

This package is not auto-updated.

Last update: 2024-09-20 02:42:33 UTC


README

Screenshot

为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或更高版本。

安装

要安装插件,请按照以下说明操作。

  1. 打开您的终端并转到您的Craft项目

     cd /path/to/project
    
  2. 然后告诉Composer加载插件

     composer require mimamuh/craft-ups-tracking
    
  3. 在控制面板中,转到设置 → 插件并点击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

Michael Neumair提供