资讯专栏INFORMATION COLUMN

教你实现销售漏斗(sales funnel)

trigkit4 / 1168人阅读

摘要:前言一个比较完整的,销售漏斗必不可少。销售漏斗的出现就是要解决这样一个问题的。需求分析通过插件实现销售漏斗图。

前言

一个比较完整的CRM,销售漏斗必不可少。它能直观的通过图形方式,指出公司的客户资源从潜在客户阶段,发展到意向客户阶段、谈判阶段和成交阶段的比例关系,或者说是转换率。这些信息对于任何一个销售者都是无比重要的,传统方式使用纸和笔计算统计出来,费时费力,不直观。销售漏斗的出现就是要解决这样一个问题的。
那么,销售漏斗怎么实现呢?这个应该是大家比较关心的问题,听我一一讲述。

需求分析

通过Highcharts插件实现销售漏斗图。(这是一个Yii2的插件,大家自行下载安装,文章结尾我会附上下载地址)

效果图

实现思路

网上查过资料,没有找到任何一篇文章是直接说明销售漏斗的PHP用法,都是说Js用法的。没有母本参照,只能自己下功夫。灵机一动,我把百度找来的Js用法的数组格式转换成了PHP语言,成功了。插件虽语言不同,但用法还是有共性的哈哈。

代码分析

1、插件需求数组的参照格式。

</>复制代码

  1. $funnel=["0"=>[
  2. "name"=> "Unique users",
  3. "data"=> [
  4. ["Website visits", 15654],
  5. ["Downloads", 4064],
  6. ["Requested price list", 1987],
  7. ["Invoice sent", 976],
  8. ["Finalized", 846]
  9. ]
  10. ]
  11. ];

2、按照插件需求的数组格式组数组。

</>复制代码

  1. public function actionIndex()
  2. {
  3. $company_id=isset(Yii::$app->user->identity->attributes["company_id"])?Yii::$app->user->identity->attributes["company_id"]:"-1";
  4. $company=Company::getAllN($company_id);
  5. $funnel=[];
  6. $_time=$this->currentMonth();
  7. //调用销售漏斗方法
  8. $funnel=$this->actionCountMoney($_time["begin_time"],$_time["end_time"]);
  9. return $this->render("index", [
  10. "funnel"=>$funnel,
  11. "company"=>$company,
  12. ]);
  13. }
  14. /*
  15. *销售漏斗
  16. *按公司按销售阶段统计线索的销售金额
  17. */
  18. public function actionCountMoney($begin_time,$end_time)
  19. {
  20. $company_id=isset(Yii::$app->user->identity->attributes["company_id"])?Yii::$app->user->identity->attributes["company_id"]:"-1";
  21. $uids=UserService::getCUser($company_id);
  22. $query = new Query();
  23. $query->select([
  24. "sell_status.status as status",
  25. "sum(`money`) as count_money"
  26. ])
  27. ->from("t_chance")
  28. ->groupBy([
  29. "status"
  30. ])
  31. ->join("left join","sell_status","t_chance.status = sell_status.id")
  32. ->orderBy("status");
  33. //匹配公司所有员工
  34. $query->andWhere(["in","owner_id",$uids]);
  35. //按本月、本季度、本年查找
  36. $query->andWhere(["between","end_date",strtotime($begin_time),strtotime($end_time)]);
  37. $data=$query->all();
  38. //销售漏斗的主要数组格式部分(重点)
  39. $_data=[];
  40. if(!empty($data)){
  41. foreach ($data as $k => $val) {
  42. $data1[0]=$val["status"];
  43. if(empty($val["status"])){
  44. $data1[0]=Yii::t("yii","Not status");
  45. }
  46. $data1[1]=(int)$val["count_money"];//数字部分必须转为整型(int)才行
  47. $_data[]=$data1;
  48. }
  49. }else{
  50. $_data[]=[Yii::t("yii","Not status"),0];
  51. }
  52. $data2["name"]=Yii::t("yii","Sales amount");
  53. $data2["data"]=$_data;
  54. $_data2[0]=$data2;
  55. return $_data2;
  56. }

3、视图调用。

</>复制代码

  1. "funnel_highcharts", //定义一个唯一的id
  2. "scripts" => [
  3. "modules/funnel",
  4. "themes/funnel.src",
  5. ],
  6. "options"=>[
  7. "chart"=>[
  8. "type"=> "funnel",
  9. "height"=>300, //设置图表的高度
  10. "marginRight"=>100
  11. ],
  12. "title"=> [
  13. "text"=>Yii::t("yii","Funnel chart of sales amount in different sales stages"),
  14. "x"=>-50
  15. ],
  16. "plotOptions"=>[
  17. "series"=> [
  18. "dataLabels"=> [
  19. "enabled"=>true,
  20. "format"=>"{point.name}: {point.y:,.0f}",
  21. "color"=> "(Highcharts.theme && Highcharts.theme.contrastTextColor) || black",
  22. "color" => new JsExpression("(Highcharts.theme && Highcharts.theme.contrastTextColor) || "black""),
  23. "softConnector"=> true
  24. ],
  25. "neckWidth"=>"15%",
  26. "neckHeight"=>"12.5%"
  27. ],
  28. "funnel"=>[
  29. "height"=>250, //设置漏斗的高度
  30. "width" => 200
  31. ],
  32. ],
  33. "legend"=>[
  34. "enabled"=>false
  35. ],
  36. "series"=> $funnel,
  37. ]
  38. ]);
  39. ?>
注意事项

1、给插件定义一个唯一的id,避免一个页面多次使用同样的插件造成冲突。

2、按照插件需求的数组格式组数组,格式必须一致,数字部分必须转为整型(int)。

相关资料

Highcharts插件下载地址

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/91041.html

相关文章

  • 教你实现销售漏斗(sales funnel)

    摘要:前言一个比较完整的,销售漏斗必不可少。销售漏斗的出现就是要解决这样一个问题的。需求分析通过插件实现销售漏斗图。 前言 一个比较完整的CRM,销售漏斗必不可少。它能直观的通过图形方式,指出公司的客户资源从潜在客户阶段,发展到意向客户阶段、谈判阶段和成交阶段的比例关系,或者说是转换率。这些信息对于任何一个销售者都是无比重要的,传统方式使用纸和笔计算统计出来,费时费力,不直观。销售漏斗的出现...

    meteor199 评论0 收藏0
  • 五分钟教你建立有效的电子化客户关系管理

    摘要:于是在这样的背景下,客户关系管理系统出现了。可以说,有了,企业就有了一套完整的客户管理工具,也相当于有了一个数据分析的工具。 关于客户,越来越多的企业觉得有必要对面向客户的各项信息和活动进行集成,组建以客户为中心的企业,实现对客户活动的全面管理。于是在这样的背景下,CRM(客户关系管理)系统出现了。 而对于销售行业来说,一套好用的CRM系统更是可以发挥出不可估量的价值。 CRM系统对于...

    forrest23 评论0 收藏0
  • 如何使用Python pyecharts绘制漏斗?请仔细阅读下文

      小编写这篇文章的主要目的,主要是来给大家去做出一个相关性的介绍,介绍的内容主要还是涉及到Python pyecharts,主要是利用Python pyecharts去绘制漏斗,那么,具体要怎么绘制呢?下面给大家详细解答下。  漏斗图  漏斗图是由Light等在1984年提出,一般以单个研究的效应量为横坐标,样本含量为纵坐标做的散点图。效应量可以为RR、OR和死亡比或者其对数值等。理论上讲,被纳...

    89542767 评论0 收藏0
  • 机器学习在客户管理场景中的应用

    摘要:使用机器学习进行客户管理,我们可以得到客户度全方位的视图。本文以的客户管理应用为例,介绍机器学习是如何同传统的客户管理应用进行集成的。 使用机器学习进行客户管理,我们可以得到客户360度全方位的视图。 本文以SAP Cloud for Customer的客户管理应用为例,介绍机器学习是如何同传统的客户管理应用进行集成的。 打开SAP C4C的客户中心,在客户列表里选中任意一个客户,能在...

    wenzi 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<