Heim > php教程 > PHP开发 > Hauptteil

Bringen Sie Ihnen bei, wie Sie einen Verkaufstrichter implementieren

大家讲道理
Freigeben: 2016-11-12 14:36:34
Original
3084 Leute haben es durchsucht

Vorwort
Ein relativ vollständiges CRM, ein Verkaufstrichter, ist unerlässlich. Es kann intuitiv und grafisch das proportionale Verhältnis oder die Konversionsrate der Kundenressourcen eines Unternehmens von der Phase des potenziellen Kunden zur Phase des beabsichtigten Kunden, der Verhandlungsphase und der Transaktionsphase aufzeigen. Diese Informationen sind für jeden Verkäufer äußerst wichtig. Die herkömmliche Methode zur Berechnung von Statistiken mit Papier und Stift ist zeitaufwändig, arbeitsintensiv und nicht intuitiv. Die Entstehung eines Verkaufstrichters soll ein solches Problem lösen. Wie implementiert man also einen Verkaufstrichter? Dies sollte ein Thema sein, das uns allen mehr Sorgen bereitet. Lassen Sie es mich einzeln erklären.


Bedarfsanalyse
Implementieren Sie ein Verkaufstrichterdiagramm über das Highcharts-Plug-in. (Dies ist ein Plug-In für Yii2. Sie können es selbst herunterladen und installieren. Ich werde die Download-Adresse am Ende des Artikels anhängen)


Rendering
Bringen Sie Ihnen bei, wie Sie einen Verkaufstrichter implementieren
Implementierungsideen
Ich habe die Informationen online überprüft und keinen Artikel gefunden, der die PHP-Nutzung von Verkaufstrichtern direkt erklärt. Sie sprechen alle über die Verwendung von JS. Es gibt keine Elternreferenz, sodass Sie nur alleine hart arbeiten können. Mit einer Idee konvertierte ich das von Baidu gefundene Array-Format der JS-Nutzung in die PHP-Sprache, und es war erfolgreich. Obwohl die Plug-Ins unterschiedliche Sprachen haben, ist ihre Verwendung immer noch dieselbe, haha.

Code-Analyse
1. Referenzformat des Plug-in-Anforderungsarrays.

$funnel=['0'=>[
     'name'=> 'Unique users',
         'data'=> [
            ['Website visits',   15654],
            ['Downloads',       4064],
            ['Requested price list', 1987],
            ['Invoice sent',    976],
            ['Finalized',    846]
        ]
      ]
  ];
Nach dem Login kopieren

2. Ordnen Sie das Array entsprechend dem vom Plug-In benötigten Array-Format an.

    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,
        ]);
    }
Nach dem Login kopieren
 /*
    *销售漏斗
    *按公司按销售阶段统计线索的销售金额
   */
    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;
    }
Nach dem Login kopieren

3.

<?php 
use yii\helpers\Html;
use hr\assets\AppAsset;
use miloschuman\highcharts\Highcharts; 
use yii\web\JsExpression;
?>
Nach dem Login kopieren
 <?php 
    //这部分参设置的数组格式就是我前面说的仿造Js格式来的。
    echo Highcharts::widget([
           &#39;id&#39;=>&#39;funnel_highcharts&#39;, //定义一个唯一的id
           &#39;scripts&#39; => [
           &#39;modules/funnel&#39;,
           &#39;themes/funnel.src&#39;,
           ],
           &#39;options&#39;=>[
                &#39;chart&#39;=>[
                      &#39;type&#39;=> &#39;funnel&#39;,
                      &#39;height&#39;=>300,  //设置图表的高度
                      &#39;marginRight&#39;=>100 
                ],
                &#39;title&#39;=> [
                      &#39;text&#39;=>Yii::t(&#39;yii&#39;,&#39;Funnel chart of sales amount in different sales stages&#39;),
                      &#39;x&#39;=>-50
                ],
                &#39;plotOptions&#39;=>[
                      &#39;series&#39;=> [
                            &#39;dataLabels&#39;=> [
                                    &#39;enabled&#39;=>true,
                                    &#39;format&#39;=>&#39;<b>{point.name}</b>: {point.y:,.0f}&#39;,
                                    &#39;color&#39;=> &#39;(Highcharts.theme && Highcharts.theme.contrastTextColor) || black&#39;,
                                    &#39;color&#39; => new JsExpression(&#39;(Highcharts.theme && Highcharts.theme.contrastTextColor) || "black"&#39;),
                                    &#39;softConnector&#39;=> true
                                                                    
                             ],
                           &#39;neckWidth&#39;=>&#39;15%&#39;,
                           &#39;neckHeight&#39;=>&#39;12.5%&#39;
                    ],
                   &#39;funnel&#39;=>[
                           &#39;height&#39;=>250,  //设置漏斗的高度
                           &#39;width&#39; => 200
                    ],
                ],
                &#39;legend&#39;=>[
                    &#39;enabled&#39;=>false
                 ],
                &#39;series&#39;=> $funnel,
        ]
 ]);
?>
Nach dem Login kopieren

Hinweise
1 Definieren Sie eine eindeutige ID für das Plug-in, um Konflikte zu vermeiden, die durch die mehrfache Verwendung desselben Plug-ins auf einer Seite entstehen.

2. Ordnen Sie das Array entsprechend dem vom Plug-In geforderten Array-Format an. Das Format muss konsistent sein und der numerische Teil muss in eine Ganzzahl (int) konvertiert werden.

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage