返回

VibeFox DHL Africa for OpenCart — 帮助

系统要求

OpenCart:3.0.x(已在 3.0.5.0 上测试)或 4.0.2 及更高版本(已在 4.1.0.3 上测试)。

PHP:8.0 或更高版本,并启用 cURL 扩展。DHL XML Services 还需要 PHP SimpleXML 扩展。

DHL Express 账号(仅实时运费需要):实时运费使用 MyDHL API。您需要您的 DHL Express 账号号码以及 MyDHL API 凭据:API key 和 API secret。请在 DHL Developer Portal(MyDHL API,"Get access")申请,或向您的 DHL Express 客户经理索取。仍持有 DHL XML Services 凭据(Site ID 和密码)的账户可以改用这些凭据。如果您只使用备用价格,则不需要 DHL 凭据。

VibeFox 许可证密钥:在 vibefox.net 购买。一个密钥只能用于一个域名。

安装

下载文件是一个 zip 压缩包,内含适用于两个 OpenCart 版本的安装包。请先在您的电脑上解压。压缩包包含 README.txt、OpenCart 3 安装包 vfd_dhl_africa-oc3-(version).ocmod.zip 和 OpenCart 4 安装包 vfd_dhl_africa.ocmod.zip。只需安装与您的 OpenCart 版本对应的安装包。两个版本使用同一个许可证密钥。

OpenCart 3

1. 在后台进入 Extensions > Installer,点击 Upload,然后选择文件 vfd_dhl_africa-oc3-(version).ocmod.zip。本扩展不添加 OCMOD 修改,因此无需刷新 Extensions > Modifications。您也可以不使用安装器,而是将安装包中 upload 文件夹的内容复制到店铺的根目录。

2. 进入 Extensions > Extensions,选择扩展类型 Shipping。找到 VibeFox DHL Africa,点击 Install(绿色 + 按钮)。

3. 点击 Edit(铅笔按钮)打开设置页面。

4. 在 Edit 页面顶部的许可证区块中,将您的 VibeFox 许可证密钥粘贴到 License key,然后点击 Activate(参见 License key)。

5. 选择 DHL API,输入 API key、API secret 和您的 DHL 账号号码。使用测试凭据时请保持 Test mode 开启。输入 Ship from 地址。如果您的 DHL 账户不是以店铺默认货币结算,请设置 DHL quote currency 和 Exchange rate。可选择设置按国家的价格和备用运费(参见 Configuration)。开启 Enable DHL Express Africa,然后点击 Save。

OpenCart 4

1. 在后台进入 Extensions > Installer,点击 Upload,然后选择文件 vfd_dhl_africa.ocmod.zip。请勿重命名该文件:OpenCart 4 从文件名获取扩展代码,重命名后的安装包无法使用。

2. 安装包会出现在同一页面的已安装扩展列表中。点击其旁边的 Install(绿色 + 按钮)。

3. 进入 Extensions > Extensions,选择扩展类型 Shipping。找到 VibeFox DHL Africa,点击 Install(绿色 + 按钮),然后点击 Edit(铅笔按钮)。

4. 按照 OpenCart 3 第 4 和第 5 步的说明输入许可证密钥和设置。两个版本的设置页面及其字段相同。

安装后,该配送方式保持关闭,直到您开启 Enable DHL Express Africa 并保存。如果您卸载后重新安装本扩展,之前保留的 DHL 设置将再次生效。

配置

所有设置都位于扩展页面:Extensions > Extensions > Shipping > VibeFox DHL Africa > Edit。各部分列在左侧。点击一个 Save 按钮即可保存整个页面,无需重新加载。每次保存也会清除已缓存的 DHL 报价。价格和重量可接受小数点或小数逗号。只有拥有本扩展修改权限的管理员用户才能保存设置。

页面顶部的警告会告诉您实时运费何时被关闭:缺少 API key、API secret 或账号号码时(使用 XML Services 时则为 Site ID 或密码),缺少始发国家或城市时,选择了 XML Services 时(DHL 正在停止提供),设置了报价货币却没有汇率时,以及店铺的重量或长度单位无法被扩展识别时(此时商品重量按 kg、尺寸按 cm 读取;请在 System > Localisation > Weight Classes 中添加单位为 kg 的重量类别,或在 System > Localisation > Length Classes 中添加单位为 cm 的长度类别)。

如果保存时某个值无效(配送方式名称为空或超过 64 个字符、数字无效或为负数、汇率为 0、最低重量高于最高重量、报价货币、始发国家、税种或地理区域未知、排序值不是整数),设置上方的警告会指出该字段,例如 Select a valid origin country. It was not saved. 该字段保留原值,其他设置正常保存。

常规

Enable DHL Express Africa:在结账时显示或隐藏 DHL Express。默认:off。

Method title:结账时显示给顾客的配送方式名称。默认:DHL Express。必填,最多 64 个字符。

Tax class:配送费用的税种,或 No tax(默认)。设置税种时(且店铺已启用税费),DHL 运费将不含 DHL 报价中的税费,OpenCart 再添加其自身的税费。选择 No tax 时,DHL 运费按报价原样收取,税费已包含在内。

Sort order:DHL Express 在结账时各配送方式中的排列位置。一个整数。

DHL Express 账号(仅实时运费需要)

DHL API:使用哪个 DHL 接口。

MyDHL API (REST) — recommended:当前的 DHL Express API(默认)。DHL 现在只向新客户发放 MyDHL API 凭据。
XML Services (legacy):仅当您仍拥有可用的 XML Site ID 时使用。DHL 正在停止提供 XML Services。

API key:您的 MyDHL API 用户名(API key)。

API secret:您的 MyDHL API 密码(API secret)。保存后,API key 和 API secret 字段将保持为空,并显示 Saved — leave empty to keep it. 只有需要更改时才输入新值。

Remove the saved API key and API secret:仅在 MyDHL API 下、且已保存密钥或 secret 时显示。勾选并点击 Save,即可同时删除两者。

XML Site ID:您的 DHL XML Services Site ID(仅适用于旧版 API)。清空该字段也会删除已保存的 XML 密码。

XML password:您的 DHL XML Services 密码(仅适用于旧版 API)。与 API secret 一样,保存后不会再次显示。

DHL account number:您的 DHL Express 账号号码(9 位数字)。MyDHL API 需要此项。使用 XML Services 时,它返回的是您账户的运费,而不是公布的运费。

Test mode:使用 DHL 测试环境。默认开启。测试凭据仅在测试环境中有效,正式凭据仅在正式环境中有效。正式上线时请关闭。

发货地址

DHL 取件的地址。运费取决于该地址。OpenCart 将店铺地址保存为自由文本,因此始发地始终需要在此处填写。本部分的提示会显示您的店铺所在国家。

Origin country:您发货的国家。

Origin city:您发货的城市,例如 Johannesburg。MyDHL API 需要此项。

Origin postcode:对于没有邮政编码的国家(例如肯尼亚、尼日利亚、加纳)请留空。

运费

所有价格均以店铺默认货币计算,不含税。实时运费是该包裹最便宜的 DHL Express 产品。如果 DHL 未配置、请求失败或该路线没有可用服务,则使用国家价格,其次是备用运费。两者都没有时,该配送方式将被隐藏。

DHL quote currency:DHL 以您 DHL 账户所在国家的货币报价(例如 ZAR、NGN 或 KES)。如果 DHL 没有返回店铺默认货币的金额,则实时运费将按下方的汇率从该货币换算。否则不予使用。默认:— None —。

Exchange rate:DHL 报价货币的 1 个单位相当于店铺默认货币的多少,例如 1 ZAR = 0.05。必须大于 0。如无需换算请留空。汇率为手动设置。

Fallback cost:在没有实时运费和国家价格时使用的固定运费。留空则在这种情况下隐藏该配送方式。

Country prices:按目的国家设置的备用价格,每行一个:CC:Price,例如 ZA:25.00。在没有实时运费时使用。格式不正确的行将被忽略,保存时的警告会列出这些行。

Fallback price basis:Per order(默认)只收取一次价格。Per item (multiplied by the cart quantity) 则按商品数量相乘。仅适用于国家价格和备用运费。实时 DHL 运费始终针对整个包裹。

Free shipping from:需要配送的商品小计(使用优惠券后、税前),达到该金额时此配送方式免运费。不会向 DHL 请求。留空则从不免运费。

条件

Minimum weight (kg):购物车重量低于此值时隐藏该配送方式。0 表示不限制(默认)。不能大于 Maximum weight (kg)。

Maximum weight (kg):购物车重量高于此值时隐藏该配送方式。默认:70(字段为空时也使用此值)。0 表示不限制。

Minimum subtotal:仅当需要配送的商品小计(使用优惠券后、税前)至少为此金额时才显示该配送方式。留空则始终显示。

可用性

Geo zone:仅向该地理区域内的地址提供 DHL Express。All zones(默认)表示不限制。地理区域在 System > Localisation > Geo Zones 中管理。使用 Ignore shipping zones 时不做检查。

Ignore shipping zones:无论所选地理区域为何,都为下方列出的国家提供该配送方式(列表为空时为所有国家)。

Countries:该模式下的目的国家。仅与 Ignore shipping zones 一起使用。

高级

Debug log:将运费计算记录到 storage/logs/vfd_dhla_debug.log.php(OpenCart 4 中为 system/storage/logs/vfd_dhla_debug.log.php)。该文件无法通过网页读取。即使此选项关闭,DHL 错误也始终会被记录。凭据、账号号码和顾客地址从不写入日志。当文件达到 5 MB 时,它会被移动到 vfd_dhla_debug.old.log.php,并开始新的日志。

Log:显示调试日志的大小和最新条目。点击 Clear log 可清空。

Remove data on uninstall:开启后,卸载扩展时将删除设置、已缓存的 DHL 报价和日志。关闭(默认)时,所有内容都会保留,以便重新安装。已下单的 DHL 产品信息始终保留。

导入 / 导出

Export:点击 Download JSON 将设置保存为 JSON 文件。API key、API secret 和 XML 密码不会被导出。

Import:粘贴之前导出的 JSON,然后点击 Import 恢复设置,例如在另一家店铺中使用。这些值会像正常保存一样进行检查。已保存的凭据保持不变。

结账时的工作方式

当 OpenCart 显示配送方式时,它会向扩展请求 DHL Express 的价格。如果设置了 Geo zone(且 Ignore shipping zones 处于关闭状态),而地址不在该区域内,则不提供 DHL Express。只有 Requires Shipping 设为 Yes 的商品才计入:其他商品不增加重量,也不计入小计。然后扩展检查条件:Ignore shipping zones 中的国家、购物车重量和最低小计。小计是需要配送的商品价格,即使用优惠券折扣后、税前的金额。礼品卡、积分奖励和店铺余额不计入在内。如果适用免运费,价格为 0,且不会向 DHL 发送请求。

否则,扩展会向 DHL 发送始发地和目的地(国家、城市、邮政编码)、由商品重量级别换算为 kg 的购物车重量(至少 0.5 kg),以及根据商品尺寸构建的一个 cm 单位的箱子:最长的长度、最宽的宽度和叠放的高度。没有尺寸的商品不增加任何内容。如果没有任何商品有尺寸,则使用 10 x 10 x 10 cm 的箱子。发往其他国家的包裹会以购物车小计作为申报价值进行海关申报。国内包裹不予申报。取件日期为店铺时区的当天,周末则为周一。只有在顾客输入城市后才会请求实时运费(使用 XML Services 时为城市或邮政编码)。在此之前,适用备用价格。

最便宜的 DHL Express 产品会以一个价格显示,并使用您的配送方式名称。顾客看不到 DHL 产品。价格以您的默认货币计算,按其小数位数取整,并以顾客的货币显示,同时包含所选 Tax class 的税费。

每个报价按每个包裹和路线缓存 1 小时。失败的请求缓存 10 分钟,这样结账就不会在每次刷新时都等待 DHL。API 超时时间为 12 秒。如果 DHL 返回错误、没有可用服务或以无法使用的货币作答,顾客不会看到错误:会使用备用价格,或者隐藏该配送方式。原因会写入调试日志。

本扩展仅计算运费。它不会创建 DHL 运单、打印面单或商业发票、预约取件、追踪包裹、提供 DHL 服务网点、让顾客在 DHL 产品之间进行选择、将多个包裹装箱、添加保险或计算关税和税费。报价仅针对运费。关税和进口税由收件人支付。

在 OpenCart 4 中,顾客在结账页面的配送方式区块中点击 Choose,并在 Shipping method options 窗口中选择 DHL Express。该配送方式的工作方式与 OpenCart 3 相同。

订单

下单时,扩展会保存为其购物车计算出的运费。在 Sales > Orders 中打开订单:订单历史上方的 DHL Express Africa 面板会显示需要在 DHL 中预订的内容:

DHL product:实时运费对应的 DHL Express 产品,例如 "EXPRESS WORLDWIDE (P)"。仅在实时运费时显示。

Price source:Live DHL rate、Fallback price (no live rate) 或 Free shipping threshold。

Calculated price (excl. tax):以店铺默认货币计算的价格。

DHL 产品不会显示在发给顾客的电子邮件中,也不会显示在顾客的订单页面上。订单会像其他任何 OpenCart 配送方式一样显示配送方式名称和运费。

在 OpenCart 4 中,结账会保留一个订单,并在顾客每次重新确认时更新该订单。面板随后显示结账的最新运费。如果顾客切换到其他配送方式,则该订单不再显示此面板。

许可证密钥

本扩展需要使用来自 vibefox.net 的 VibeFox 许可证密钥。License — VibeFox DHL Africa 许可证区块是 Extensions > Extensions > Shipping > VibeFox DHL Africa > Edit 页面中位于设置上方的第一个区块。将密钥粘贴到 License key 中,然后点击 Activate。之后,该区块会以掩码形式显示密钥、状态(例如许可证有效期截止日期和您的域名),以及以下按钮:Check now 用于重新检查状态,Change key 用于输入其他密钥,Remove key 用于从本店铺中移除密钥。它们下方是 Product: opencart-shipping-dhl-africa 一行,以及用于打开您 vibefox.net 账户的链接 Manage licenses and domains in your account。只有拥有本扩展 Modify 权限的管理员用户才能更改密钥。该区块的文字跟随后台语言显示(包括英文和俄文)。

如果密钥未被接受,该区块会说明原因,例如 Key not found、This key belongs to another product、Domain limit reached 或 License expired on 及一个日期。修改店铺地址后,或在您的账户中释放一个域名名额后,请点击 Check now。如果无法连接许可证服务器,扩展将继续使用最后一次已知的状态。

一个密钥只能用于一个域名,即 OpenCart 配置中的店铺地址。从店铺中移除密钥不会释放其域名名额。请在您的 vibefox.net 账户中释放该名额。

没有有效的许可证密钥时,结账时不会向顾客显示 DHL Express 配送方式,也不会计算运费。以同一浏览器登录后台的管理员用户仍会在店铺中看到该配送方式,并标记为 (unlicensed — visible to admins only),这样您可以在购买密钥之前完成设置和测试。在 OpenCart 4 中,此预览不可用:店铺无法看到后台登录状态,因此没有有效密钥时,该配送方式对所有人都隐藏。您打开一次 Edit 页面后,后台 Dashboard 上会出现提醒。点击 × 可将其隐藏 7 天。现有订单不受影响。

许可证到期后,扩展仍会继续运行,但更新和支持需要续费。当您打开后台的 Dashboard 或 Edit 页面时,系统会自动重新检查状态:输入密钥后的前 14 天每天检查一次,之后每周检查一次。无需设置定时任务。卸载扩展时,始终会删除许可证密钥和许可证状态。

故障排除

结账时没有显示 DHL Express:请检查许可证是否有效,以及 Enable DHL Express Africa 是否已开启。检查 Geo zone(或开启 Ignore shipping zones 并检查 Countries)、重量限制和 Minimum subtotal。没有实时运费时,只有设置了国家价格或备用运费,该配送方式才会显示。检查产品的 Requires Shipping 是否设为 Yes。

实时运费没有显示:请检查扩展页面顶部的警告(缺少凭据或始发地)。开启 Debug log,重新加载结账页面,然后查看扩展页面上的 Log 字段。DHL 错误(例如 MyDHL API 的 HTTP 错误、该路线没有产品或货币问题)始终会被记录。检查 Test mode 是否与您的凭据相符,以及顾客地址是否包含城市。

DHL 以 ZAR、NGN 或 KES 返回运费,但我的店铺使用其他货币:日志显示 DHL quote not usable。请将 DHL quote currency 设置为该货币,并输入 Exchange rate。否则不会使用实时运费,而是应用备用价格。

我有旧的 DHL XML Services 凭据:在 DHL API 中选择 XML Services (legacy)。收到 MyDHL 凭据后,请切换到 MyDHL API。

运费被重复征税:设置 Tax class,使 DHL 运费不含 DHL 的税费;或选择 No tax,按报价原样收取 DHL 金额。

修改后运费看起来已过时:在扩展页面上点击 Save。这会清除已缓存的 DHL 报价。

页面显示 "Warning: You do not have permission to modify VibeFox DHL Africa!":您的管理员用户组可能只有查看设置的权限。请在 System > Users > User Groups 中为该组授予 extension/shipping/vfd_dhl_africa(OpenCart 3)或 extension/vfd_dhl_africa/shipping/vfd_dhl_africa(OpenCart 4)的修改权限。

面向开发者:本扩展会触发 OpenCart 事件 catalog/vfd_dhl_africa/api_url、is_dutiable、package_box、rest_request 和 xml_request(使用相同前缀),这些事件可以更改 API 地址、海关申报、箱子以及发给 DHL 的请求。

卸载

进入 Extensions > Extensions,选择类型 Shipping,然后点击 VibeFox DHL Africa 旁边的 Uninstall(红色 − 按钮)。本扩展的许可证密钥和许可证状态始终会被删除。OpenCart 总会重置 Enable DHL Express Africa、Sort order、Tax class 和 Geo zone。已缓存的 DHL 报价和扩展的事件总会被删除。如果开启了 Remove data on uninstall,DHL 设置和调试日志也会被删除。如果关闭,其他设置将保留,并在您重新安装扩展时再次使用。已下单的 DHL 产品信息永远不会被删除。现有订单保留其配送方式和费用。

在 OpenCart 4 中,若要同时删除扩展文件,请在卸载后进入 Extensions > Installer,在已安装扩展列表中点击 VibeFox DHL Africa 旁边的 Uninstall(橙色 − 按钮),然后点击 Delete(红色垃圾桶按钮)以删除已上传的安装包。

DHL 是其各自所有者的商标。本扩展与 DHL 无关联,也未获得 DHL 的认可。