摘要:前言一个比较完整的,销售漏斗必不可少。销售漏斗的出现就是要解决这样一个问题的。需求分析通过插件实现销售漏斗图。
前言
一个比较完整的CRM,销售漏斗必不可少。它能直观的通过图形方式,指出公司的客户资源从潜在客户阶段,发展到意向客户阶段、谈判阶段和成交阶段的比例关系,或者说是转换率。这些信息对于任何一个销售者都是无比重要的,传统方式使用纸和笔计算统计出来,费时费力,不直观。销售漏斗的出现就是要解决这样一个问题的。
那么,销售漏斗怎么实现呢?这个应该是大家比较关心的问题,听我一一讲述。
通过Highcharts插件实现销售漏斗图。(这是一个Yii2的插件,大家自行下载安装,文章结尾我会附上下载地址)
效果图 实现思路网上查过资料,没有找到任何一篇文章是直接说明销售漏斗的PHP用法,都是说Js用法的。没有母本参照,只能自己下功夫。灵机一动,我把百度找来的Js用法的数组格式转换成了PHP语言,成功了。插件虽语言不同,但用法还是有共性的哈哈。
代码分析1、插件需求数组的参照格式。
$funnel=["0"=>[ "name"=> "Unique users", "data"=> [ ["Website visits", 15654], ["Downloads", 4064], ["Requested price list", 1987], ["Invoice sent", 976], ["Finalized", 846] ] ] ];
2、按照插件需求的数组格式组数组。
public function actionIndex() { $company_id=isset(Yii::$app->user->identity->attributes["company_id"])?Yii::$app->user->identity->attributes["company_id"]:"-1"; $company=Company::getAllN($company_id); $funnel=[]; $_time=$this->currentMonth(); //调用销售漏斗方法 $funnel=$this->actionCountMoney($_time["begin_time"],$_time["end_time"]); return $this->render("index", [ "funnel"=>$funnel, "company"=>$company, ]); } /* *销售漏斗 *按公司按销售阶段统计线索的销售金额 */ public function actionCountMoney($begin_time,$end_time) { $company_id=isset(Yii::$app->user->identity->attributes["company_id"])?Yii::$app->user->identity->attributes["company_id"]:"-1"; $uids=UserService::getCUser($company_id); $query = new Query(); $query->select([ "sell_status.status as status", "sum(`money`) as count_money" ]) ->from("t_chance") ->groupBy([ "status" ]) ->join("left join","sell_status","t_chance.status = sell_status.id") ->orderBy("status"); //匹配公司所有员工 $query->andWhere(["in","owner_id",$uids]); //按本月、本季度、本年查找 $query->andWhere(["between","end_date",strtotime($begin_time),strtotime($end_time)]); $data=$query->all(); //销售漏斗的主要数组格式部分(重点) $_data=[]; if(!empty($data)){ foreach ($data as $k => $val) { $data1[0]=$val["status"]; if(empty($val["status"])){ $data1[0]=Yii::t("yii","Not status"); } $data1[1]=(int)$val["count_money"];//数字部分必须转为整型(int)才行 $_data[]=$data1; } }else{ $_data[]=[Yii::t("yii","Not status"),0]; } $data2["name"]=Yii::t("yii","Sales amount"); $data2["data"]=$_data; $_data2[0]=$data2; return $_data2; }
3、视图调用。
"funnel_highcharts", //定义一个唯一的id "scripts" => [ "modules/funnel", "themes/funnel.src", ], "options"=>[ "chart"=>[ "type"=> "funnel", "height"=>300, //设置图表的高度 "marginRight"=>100 ], "title"=> [ "text"=>Yii::t("yii","Funnel chart of sales amount in different sales stages"), "x"=>-50 ], "plotOptions"=>[ "series"=> [ "dataLabels"=> [ "enabled"=>true, "format"=>"{point.name}: {point.y:,.0f}", "color"=> "(Highcharts.theme && Highcharts.theme.contrastTextColor) || black", "color" => new JsExpression("(Highcharts.theme && Highcharts.theme.contrastTextColor) || "black""), "softConnector"=> true ], "neckWidth"=>"15%", "neckHeight"=>"12.5%" ], "funnel"=>[ "height"=>250, //设置漏斗的高度 "width" => 200 ], ], "legend"=>[ "enabled"=>false ], "series"=> $funnel, ] ]); ?>注意事项
1、给插件定义一个唯一的id,避免一个页面多次使用同样的插件造成冲突。
2、按照插件需求的数组格式组数组,格式必须一致,数字部分必须转为整型(int)。
相关资料Highcharts插件下载地址
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/91041.html
摘要:前言一个比较完整的,销售漏斗必不可少。销售漏斗的出现就是要解决这样一个问题的。需求分析通过插件实现销售漏斗图。 前言 一个比较完整的CRM,销售漏斗必不可少。它能直观的通过图形方式,指出公司的客户资源从潜在客户阶段,发展到意向客户阶段、谈判阶段和成交阶段的比例关系,或者说是转换率。这些信息对于任何一个销售者都是无比重要的,传统方式使用纸和笔计算统计出来,费时费力,不直观。销售漏斗的出现...
摘要:于是在这样的背景下,客户关系管理系统出现了。可以说,有了,企业就有了一套完整的客户管理工具,也相当于有了一个数据分析的工具。 关于客户,越来越多的企业觉得有必要对面向客户的各项信息和活动进行集成,组建以客户为中心的企业,实现对客户活动的全面管理。于是在这样的背景下,CRM(客户关系管理)系统出现了。 而对于销售行业来说,一套好用的CRM系统更是可以发挥出不可估量的价值。 CRM系统对于...
小编写这篇文章的主要目的,主要是来给大家去做出一个相关性的介绍,介绍的内容主要还是涉及到Python pyecharts,主要是利用Python pyecharts去绘制漏斗,那么,具体要怎么绘制呢?下面给大家详细解答下。 漏斗图 漏斗图是由Light等在1984年提出,一般以单个研究的效应量为横坐标,样本含量为纵坐标做的散点图。效应量可以为RR、OR和死亡比或者其对数值等。理论上讲,被纳...
摘要:使用机器学习进行客户管理,我们可以得到客户度全方位的视图。本文以的客户管理应用为例,介绍机器学习是如何同传统的客户管理应用进行集成的。 使用机器学习进行客户管理,我们可以得到客户360度全方位的视图。 本文以SAP Cloud for Customer的客户管理应用为例,介绍机器学习是如何同传统的客户管理应用进行集成的。 打开SAP C4C的客户中心,在客户列表里选中任意一个客户,能在...
阅读 981·2021-11-22 13:52
阅读 1425·2021-11-19 09:40
阅读 3054·2021-11-16 11:44
阅读 1220·2021-11-15 11:39
阅读 3837·2021-10-08 10:04
阅读 5263·2021-09-22 14:57
阅读 3082·2021-09-10 10:50
阅读 3149·2021-08-17 10:13