已付款订单填选择完物流公司,填写完物流单号,保存之后,用户侧不展示物流公司的名字

bug问题 · casa · 于 3年前 发布 · 1616 次阅读

RT

后台侧信息

后台侧

用户侧展示

用户侧

共收到 7 条回复
Fecmall#13年前 0 个赞

用户侧!! 写清楚一点,问题描述一次到位。

1.是fecmall开源版本, 还是fecyo,还是那个版本

2.url发一下,或者截图写全了,到底是那个页面

2楼 已删除.
casa#33年前 0 个赞

@Fecmall [#1楼](#comment1)

是fecyo,版本号1.7.5,PC平台。

当用户支付完毕,管理员在后台对应已支付的订单下填写完物流信息(选择物流公司,以及填写订单号),并保存。

用户点击该订单的“查看物流”按钮,只能看到物流编号,看不到物流公司。

Fecmall#43年前 1 个赞

升级到fecyo-1.7.6吧

这个已经处理了

5楼 已删除.
casa#63年前 0 个赞

我确认从应用市场更新了fecyo,到1.7.6,然后去控制面板清空了所有缓存。

在chrome上也清空缓存重新刷新页面了

进入订单页查看物流信息,依旧还是没有物流公司的信息?

casa#73年前 0 个赞

在addons/fecmall/fecyo/app/appfront/theme/fecyo/customer/order/shipping.php中,我var_dump了$shippingInfo:

{
  "info": {
    "shipping_company": "",
    "shipping_status": null,
    "shipping_reason": "无效的输入[EBusinessID不能为空.]",
    "trace": []
  }
}
8楼 已删除.
Fecmall#93年前 0 个赞

该问题我这里无法复现,因此,只能给你一下文件路径,你自己打印一下看看

首先你得去后台确认一下,你是否保存了数据,上数据库看一下order表,shipping_company字段是否有值,如果没有值,就是后台保存失败,如果有值,就是取值失败。

下面说一下代码文件

1.$shippingInfo变量

是这个文件:./addons/fecmall/fecyo/app/appfront/modules/Customer/block/order/Shipping.php

里面的这个函数的返回值

public function getShippingInfo($type, $traceNo)
    {
        $shippingInfo = Yii::$service->delivery->kdiniao->getOrderTracesByJson($type, $traceNo );
        $Traces = $shippingInfo['Traces'];
        $Reason = $shippingInfo['Reason'];
        $Label = $shippingInfo['Label'];
        $ShipperName =  $shippingInfo['ShipperName'];
        $arr = [];
        $arr['info']['shipping_company'] = $ShipperName;
        $arr['info']['shipping_status'] = $Label;
        $arr['info']['shipping_reason'] = $Reason;
        $arr['info']['trace'] = [];
        
        if (is_array($Traces) && !empty($Traces)) {
            $Traces = \fec\helpers\CFunc::array_sort($Traces, 'AcceptTime', $dir='desc', false);
            foreach ($Traces as $one) {
                $AcceptStation = $one['AcceptStation'];
                $AcceptTime = $one['AcceptTime'];
                if ($AcceptStation && $AcceptTime ) {
                    $AcceptTimeYmd = date('m-d', strtotime($AcceptTime));
                    
                    $AcceptTimeHi = date('H:i', strtotime($AcceptTime));
                    $arr['info']['trace'][$AcceptTimeYmd][] = [
                        'time' => $AcceptTimeHi,
                        'info' => $AcceptStation,
                    ];
                }
            }
        }
        
        return $arr;
    }

你需要打印一下这个变量$shippingInfo = Yii::$service->delivery->kdiniao->getOrderTracesByJson($type, $traceNo );

$shippingInfo['ShipperName']是否有值。这个值就是shipping_company

2.如果上面这个没有值,那么追踪函数:Yii::$service->delivery->kdiniao->getOrderTracesByJson($type, $traceNo );

./addons/fecmall/fecyo/services/delivery/Kdiniao.php 查看函数,自行debug吧

casa#103年前 0 个赞

@Fecmall #9楼

找到原因了,是因为没有使用快递鸟。

我改成在没有使用快递鸟的情况下,就根据addons/fecmall/fecyo/services/Delivery.php的getCompanyArr()来获得快递公司名字

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics