You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prestashop 1.7.4订单编辑客户地址后运费归零Bug修复求助

修复Prestashop 1.7.4后台订单编辑地址时运费重置为零的Bug

问题根源

在后台订单模块(BO-Orders)编辑客户地址时,系统会自动触发订单运费重新计算,但未保留原订单的运费金额,导致运费被重置为零。而在客户模块(BO-Customers)编辑地址时,仅更新客户地址信息,不会关联触发订单运费计算逻辑,因此运费不受影响。

代码修复方案

步骤1:定位目标文件

打开后台控制器文件:/admin-dev/controllers/admin/AdminOrdersController.php

步骤2:修改processAddressUpdate方法

找到处理地址更新的processAddressUpdate方法(约在文件1900行附近,具体行号可能因版本微调),定位到配送地址更新的代码块:

原代码:

if (Tools::getValue('id_address_delivery')) {
    $order->id_address_delivery = (int)Tools::getValue('id_address_delivery');
    $carrier = new Carrier($order->id_carrier);
    $order->setDeliveryOption($order->getDeliveryOption());
    $order->updateShippingCost($carrier, true);
}

修改为:

if (Tools::getValue('id_address_delivery')) {
    $order->id_address_delivery = (int)Tools::getValue('id_address_delivery');
    $carrier = new Carrier($order->id_carrier);
    $order->setDeliveryOption($order->getDeliveryOption());
    // 移除自动计算运费的逻辑,保留原订单运费
    // $order->updateShippingCost($carrier, true);
}

可选:双重保障保留运费

如果担心其他潜在逻辑影响运费,可手动保存并恢复所有运费相关字段:

if (Tools::getValue('id_address_delivery')) {
    // 提前保存原运费字段
    $originalShipping = $order->total_shipping;
    $originalShippingTaxIncl = $order->total_shipping_tax_incl;
    $originalShippingTaxExcl = $order->total_shipping_tax_excl;
    
    $order->id_address_delivery = (int)Tools::getValue('id_address_delivery');
    $carrier = new Carrier($order->id_carrier);
    $order->setDeliveryOption($order->getDeliveryOption());
    $order->updateShippingCost($carrier, true);
    
    // 强制恢复原运费金额
    $order->total_shipping = $originalShipping;
    $order->total_shipping_tax_incl = $originalShippingTaxIncl;
    $order->total_shipping_tax_excl = $originalShippingTaxExcl;
}

步骤3:验证效果

修改完成后保存文件,刷新后台测试:

  1. 打开任意已有订单,进入地址编辑界面
  2. 修改配送地址并保存
  3. 检查订单详情中的运费金额是否与修改前一致

说明

该修改核心是跳过订单地址更新时的自动运费重算逻辑——已确认的订单运费属于交易既定金额,不应因地址修改而变更,这也和客户模块编辑地址的逻辑保持一致。

内容的提问来源于stack exchange,提问作者Jirka de Lucina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 23:07:55