VibeFox PostNord for PrestaShop — 帮助
系统要求
PrestaShop:8.0 至 9.x。
PHP:8.0 或更高版本。模块拒绝在更早的 PHP 版本上安装。
PostNord API 密钥(用于服务点选择器):在 developer.postnord.com 创建一个免费账户,添加应用并复制其 API 密钥。没有密钥时承运商仍可正常工作,但顾客无法选择服务点。
PostNord 协议:要寄送包裹,您需要自己的 PostNord 客户协议,例如 MyPack Collect 或 MyPack Home。
VibeFox 许可证密钥:在 vibefox.net 购买。一个密钥只能用于一个域名。
安装
1. 进入后台,前往 Modules > Module Manager,点击 Upload a module。选择模块的 ZIP 文件。
2. 上传完成后,点击 Configure;或者之后在模块列表中找到 VibeFox PostNord,再点击 Configure。
3. 在 Configure 页面顶部的许可证区块中,将您的 VibeFox 许可证密钥输入 License key,然后点击 Activate(参见许可证密钥)。
4. 粘贴 PostNord 的 API key,选择您的 Agreement country,填写 Country prices(参见配置),然后点击 Save。
安装时,模块会创建两个承运商。PostNord 配送到服务点,配送时效文字为 Delivery to a PostNord service point,默认启用。PostNord Home delivery 配送到地址,配送时效文字为 PostNord home delivery,在您开启 Home delivery 之前处于关闭状态。两个承运商都分配到瑞典、丹麦、挪威和芬兰的区域以及所有客户组。您可以在 Shipping > Carriers 中修改区域、客户组、配送时效文字、Logo 和尺寸限制。请不要在那里设置价格:价格始终来自模块。
配置
所有设置都在模块页面中:Modules > Module Manager > VibeFox PostNord > Configure。每个部分都有自己的 Save 按钮,点击后会保存整个页面。每次保存还会清除已缓存的服务点列表。
在设置上方,如果尚未填写 API 密钥、尚未设置价格、某个 PostNord 承运商已被删除,或者模块无法识别店铺的重量单位,页面会显示警告。此时商品重量按千克计算。请在 International > Localization(Local units)中使用 kg、g、lb 或 oz。
常规
Enable/Disable:开启或关闭服务点承运商。这与 Shipping > Carriers 中的承运商状态是同一个开关。
Name:结账时服务点承运商的名称,例如“PostNord MyPack Collect”。默认值:PostNord。必填。
Home delivery:同时提供 PostNord 送货上门服务。这是第二个承运商,不含服务点。默认关闭。
Home delivery name:结账时送货上门承运商的名称,例如“PostNord MyPack Home”。默认值:PostNord Home delivery。必填。
Tax status:None 表示下方价格为最终价格。Taxable: 后接税务规则,表示 PrestaShop 会在价格之上加收该规则的运费税。适用于两个承运商。
PostNord API(服务点选择器)
API key:您在 developer.postnord.com 上的应用的 API 密钥。它只从您的服务器发送给 PostNord,绝不发送到浏览器,也绝不写入日志。保存后该字段保持为空,并显示 Saved - leave empty to keep it. 只有在需要更改时才输入新值。
Remove the saved API key:勾选后点击 Save,即可删除已保存的密钥。
Test mode:使用 PostNord 测试环境(atapi2.postnord.com)。仅适用于为测试环境签发的密钥。
Agreement country:您的 PostNord 客户协议所属国家:瑞典、丹麦、挪威或芬兰。它决定提供哪些服务点。Same as the delivery country(默认)则使用顾客所在国家。
价格
该部分标题会显示店铺的默认货币。价格以该货币计算,不含税,并且两个承运商相同。PostNord 没有公开的价格 API,因此价格由您自行设置,通常是您的 PostNord 协议价格。计算顺序为:免运费门槛,然后是国家价格表,最后是备用运费。
Calculation type:Per order 按订单收取一次价格。Per item (price x number of items) 将价格乘以购物车中的商品数量。
Country prices:按目的国家和购物车重量设置价格。点击 Add country 添加一行,点击垃圾桶图标删除一行。每行包含 Price 和重量列:XS 为 1 kg 以内,S 为 2 kg 以内,M 为 3 kg 以内,L 为 5 kg 以内,XL 为超过 5 kg。重量列为 0 时使用 Price 列;Price 为 0 表示免运费。* All other countries 覆盖所有没有单独一行的国家。小数可用逗号或句点(9,99 或 9.99)。新增的行默认为 * All other countries,所有价格为 0。请在保存前选择国家并输入价格,或直接删除该行。空白单元格保存为 0。非数字的单元格保存为 0,并显示提示。
Fallback cost:当国家价格表中既没有目的国家的行,也没有 * 行时使用。将其留空可对这些国家隐藏承运商。
Free shipping from:购物车小计(需要配送的商品、折扣后、不含税)达到此金额时 PostNord 免运费。它在国家价格表之前检查,因此对没有价格行的国家同样适用。留空则从不提供免运费。
可用性
Min weight (kg):购物车重量低于此值时隐藏承运商。商品重量会从店铺的重量单位换算。0 表示无限制。
Max weight (kg):购物车重量高于此值时隐藏承运商。默认值:30。0 表示无限制。请核对您的 PostNord 服务的重量限制:包裹柜接受的重量低于服务点。Min weight (kg) 大于 Max weight (kg) 时会报错并拒绝保存,不会保存任何内容。
Minimum subtotal:仅当购物车小计(需要配送的商品、折扣后、不含税)至少达到此金额时才显示承运商。留空则始终显示。
Ignore shipping zones:开启后,即使承运商的区域不包含下方国家,也会为这些国家提供 PostNord。承运商会关联所有启用的区域,之后新建的区域也会立即关联。再次关闭时,承运商会恢复之前的区域。关闭时,承运商仅在其自身区域内提供。
Countries (Ignore shipping zones):该模式下的目的国家。留空则允许所有国家。仅在 Ignore shipping zones 开启时使用此字段。
金额和重量可以使用逗号或句点。不是 0 或更大数字的值不会被保存,并会显示提示。
高级
Debug log:将运费计算和 API 调用记录到模块文件夹中的 logs/vfd_ptnd_debug.log.php。该文件无法通过网页打开。API 错误始终会记录。API 密钥从不记录。使用完毕后请关闭日志。
Log:显示调试日志的大小和最新条目。点击 Clear log 可清空日志。
Remove data on uninstall:开启后,卸载模块会删除 PostNord 设置和承运商。关闭时,卸载只会关闭承运商。订单中保存的服务点始终保留。
结账时的工作方式
在配送步骤中,PrestaShop 会向模块询问每个 PostNord 承运商的价格。只有实体商品才计入:虚拟商品不增加重量,也不计入小计。模块会检查购物车重量和最低小计。如果适用免运费,价格为 0。否则,价格取自国家价格表,然后是备用运费。如果没有价格,承运商会被隐藏。价格以店铺的默认货币计算,然后以顾客购物车的货币显示。
对于服务点承运商,以及位于瑞典、丹麦、挪威或芬兰的配送地址,您的服务器会向 PostNord Business Location API 请求距离收货邮编最近的 10 个服务点。它会发送配送国家、收货邮编和协议国家。API 超时时间为 10 秒。列表按邮编缓存 6 小时,“无服务点”的回应缓存 1 小时。API 错误缓存 5 分钟,以免 PostNord 故障使每次配送步骤更新都变慢。配送步骤从不等待 PostNord:如果列表尚未缓存,会在顾客选择承运商后再加载。
对于其他目的地,承运商仍可按您的价格提供,但不显示选择器。送货上门承运商从不显示选择器。
如果您在 Shipping > Carriers 中编辑了已有订单的承运商,PrestaShop 会将其保存为承运商的新版本。模块会自动跟随新版本。
模块不会请求 PostNord 的实时价格,也不会生成运单、预订发货(EDI)、提供追踪号码或发送追踪邮件。没有地图视图。发货请使用 PostNord Portal、Skicka Direkt Business 或标签工具;这些工具需要的是已保存的服务点 ID。
取件点
当顾客选择服务点承运商时,其下方会出现一个 PostNord service point 列表,显示最近的服务点,按城市分组并显示距离。在输入邮编之前,顾客会看到“请输入邮编以选择 PostNord 服务点。”。所选服务点会随购物车保存,并在配送步骤更新后保留。
列表加载后,必须选择一个服务点。若未选择,Continue 会停止并显示“请选择一个 PostNord 服务点。”。所选服务点会在服务器上与 PostNord 针对该配送地址的列表进行核对。为其他邮编选择的服务点不会被使用。
选择器从不阻碍销售。如果列表无法加载(尚未设置 API 密钥、PostNord API 不可用,或邮编附近没有服务点),顾客会看到提示,但仍可下单。此时 PostNord 会配送到距离地址最近的服务点。
后台订单页面:一个 PostNord service point 区块,包含名称、地址和 Service point ID。如果未选择服务点,则显示“未选择 - PostNord 将配送到距离收货地址最近的服务点”。
订单确认和顾客的订单详情:PostNord service point:包含名称和地址。
订单邮件:发给顾客的订单确认邮件和发给店铺的新订单提醒,会在承运商名称旁显示服务点名称、地址和 ID。店铺提醒在没有服务点时还会显示“not selected”。
许可证密钥
本模块需要来自 vibefox.net 的 VibeFox 许可证密钥。许可证区块 License — VibeFox PostNord 位于 Modules > Module Manager > VibeFox PostNord > Configure 页面顶部、设置上方。将密钥粘贴到 License key 中,然后点击 Activate。之后,该区块会以掩码形式显示密钥、状态(例如许可证的有效期截止日期和您的域名),以及以下按钮:Check now(重新检查状态)、Change key(输入另一个密钥)和 Remove key(从本店铺移除密钥)。其下方是一行 Product: presta-shipping-postnord,以及打开您 vibefox.net 账户的链接 Manage licenses and domains in your account。只有拥有该模块 Configure 权限的员工才能更改密钥。该区块的文字跟随后台语言显示(包括英语和俄语)。
如果密钥未被接受,该区块会说明原因,例如 Key not found、This key belongs to another product、Domain limit reached,或带日期的 License expired on。店铺地址更改后,或在您的账户中释放一个域名名额后,请点击 Check now。如果无法连接许可证服务器,模块将继续使用最后一次已知的状态运行。
一个密钥只能用于一个域名:主店铺的域名,多店铺设置下也是如此。从店铺中移除密钥不会释放其域名名额。请在您的 vibefox.net 账户中释放该名额。
没有有效的密钥时,PostNord 承运商不会在结账时向顾客显示,也不会计算任何运费。PrestaShop 前台无法得知您已登录后台,因此承运商对您也会隐藏:您可以在购买密钥之前设置模块,但无法在结账时测试。Modules > Module Manager 中的 Alerts 选项卡会显示提醒。已有订单不受影响。
许可证过期后,模块仍会继续工作,但更新和支持需要续期。您在后台工作时会自动重新检查状态:输入密钥后的前 14 天每天一次,之后每周一次。无需 cron 任务。卸载模块始终会删除许可证密钥和许可证状态。本模块的 Reset 不会删除数据,因此密钥和状态会被保留。
故障排除
结账时没有 PostNord:检查许可证是否有效,以及 Enable/Disable(或 Home delivery)是否开启。在 Shipping > Carriers 中检查承运商是否覆盖顾客所在国家的区域和顾客所在的客户组,或开启 Ignore shipping zones。检查该国家是否已设置价格(国家行、* 行或 Fallback cost)、重量限制以及 Minimum subtotal。商品也可能在商品页面中被限制为特定承运商。
选择器提示服务点无法加载:检查 API key 和 Test mode 设置。正式环境密钥无法用于测试环境,反之亦然。开启 Debug log,重新加载结账页面,并查看模块页面上的 Log 字段。订单仍然可以下单;此时 PostNord 会配送到最近的服务点。
服务点不符合预期:检查 Agreement country。它决定提供哪些服务点。
运费错误地免费:检查 Country prices 中 Price 为 0 的行,尤其是通过 Add country 添加后未填写的 * 行,并检查 Free shipping from。
修改后服务点看起来过时:在模块页面点击 Save。这会清除缓存的列表。
页面提示找不到 PostNord 承运商:该承运商已在 Shipping > Carriers 中被删除。请在 Modules > Module Manager 中重置模块以重新创建。
卸载
前往 Modules > Module Manager,打开 VibeFox PostNord 旁边的菜单,选择 Uninstall。许可证密钥和许可证状态始终会被删除。禁用模块只会清除已缓存的服务点列表。卸载时,已缓存的列表始终会被删除。如果 Remove data on uninstall 已开启,承运商会被删除(订单保留其历史记录),设置和日志也会被删除。如果已关闭,承运商只会被关闭,所有设置都会保留。重新安装模块会使已保存的承运商恢复其原有状态。订单中保存的服务点始终保留。
PostNord 是其各自所有者的商标。本模块与 PostNord 无关联,也未获得 PostNord 的认可。
