craftsnippets/craft-mygls

1.0.0 2024-07-03 15:29 UTC

This package is not auto-updated.

Last update: 2024-09-26 15:03:44 UTC


README

这不是GLS送货的集成,而是MyGls,这是一个独立的服务。

要求

此插件需要Craft CMS 5.0.0或更高版本,以及PHP 8.2或更高版本。

安装

composer require craftsnippets/craft-mygls

权限

为了能够使用插件,控制面板用户必须启用“管理GLS包裹”权限。

运输界面

要使用MyGls运输,将一个“MyGls包裹数据”类型的字段添加到订单字段布局中。此字段仅用作数据容器,不会在订单字段布局中显示任何类型的输入。

然后您需要在插件设置中的“启用了MyGls集成的运输方法”设置中启用特定运输方法的Gls运输。这将使运输界面出现在订单页面,并且可以在订单列表中的特定订单上执行元素索引操作。

如果订单有包裹,但管理员将其运输方法从插件设置中删除,界面仍然会显示,以便可以删除包裹。

订单列表

控制面板中添加到订单列表的功能

  • 按包裹编号搜索。
  • 带有包裹状态的多余元素索引列。
  • 选择一个或多个订单后的元素索引操作 - 创建包裹,更新包裹,获取包裹标签的PDF

电话号码字段和送货说明字段

Craft中的地址没有内置电话号码字段。因此,我们需要创建一个纯文本字段,将其分配给地址字段布局,并在“电话号码字段”插件设置中选择它。

然后您需要将此字段添加到前端地址表单中。要自动获取此字段对象,您可以使用此 getAddressPhoneField 函数。

{% set phoneField = craft.myGls.getAddressPhoneField() %}
{% if phoneField %}
<input name="fields[{{phoneField.handle}}]">
{% endif %}

取货和送货地址

送货地址取自订单中设置的运输地址。

取货/寄件人地址对于包裹是必需的。您需要在 commerce/inventory/locations 中创建至少一个库存位置,并在创建包裹时选择它。在插件设置中,您还可以将其设置为默认地址。

请注意,地址字段布局 必须分配“全名”或“组织”原生字段

请注意,您不能在地址中输入任何邮政编码 - API仅接受具有特定格式的邮政编码。

创建包裹时,插件将这些值分配给Craft地址对象

  • 地址行1 - 街道
  • 地址行2 - 街道号码(只能使用数字)
  • 地址行3 - 建筑物、楼梯等附加号码

每个地址都需要国家。如果您的商店只在单一国家运营,并且不需要在您的前端订单字段中设置国家字段,您只需添加一个预选中您的国家代码值的隐藏国家字段即可。

包裹参考号码

对于“客户参考”和“现金到货参考”(如果使用现金到货)参数的包裹,使用订单号。不要与订单ID混淆。

包裹标签

MyGls API 允许一次性请求包裹标签。因此,在生成包裹时,标签PDF文件需要保存到网站上。为了实现这一点,需要将“资产字段”分配到“订单字段布局”中,并在插件设置“包裹标签资产字段”中选择。还需要设置“包裹标签资产数量”。确保选定的字段允许上传“包裹标签资产数量”设置中选定的文件信息。

货到付款

可以通过在“已启用MyGls集成的运输方式”设置中为特定运输方式选择正确的选项来设置货到付款。第二个设置“货到付款包裹的货币代码”是可选的,但建议输入 - 如果不输入,将使用未指定的货币。

保存的包裹数据

包裹创建后,仍然可以编辑订单。然而,这不会编辑包裹数据,因为数据已经被发送到API。

理论上,管理员可能会认为编辑订单地址将更改已创建包裹的地址。为了避免误解,包裹信息在创建时保存在数据库中,可以通过在运输界面中点击“显示详情”来检查。

更新包裹队列任务

可以通过在订单页面的运输界面中点击“更新包裹状态”按钮或选择订单列表中的多个包裹并选择“更新包裹状态”选项来更新包裹状态。这将立即更新包裹状态。

您还可以使用队列任务更新所有包裹状态。感谢队列任务,系统不会因大量同时运行的API请求而被阻塞。

这可以在“工具/MyGls运输”中触发,或者通过使用控制台命令。当运行队列任务时,插件将忽略缺少MyGls数据或订单状态已定义在“当包裹状态更新为'已送达'状态时将设置的订单状态”插件设置中的订单。

触发更新包裹状态的控制台命令

php craft craft-mygls/shipping/update-parcels-statuses

更新订单状态

当包裹状态更新并且包裹设置为“已送达”或“已送达至邻居”状态时,可以自动更新订单状态。这可以在插件“当包裹状态更新为已送达状态时将设置的订单状态”设置中设置。具有该状态的订单在运行包裹更新队列任务时将被忽略。

服务

当前版本中,插件不处理额外的包裹服务。