ホームページ  >  記事  >  php教程  >  セールスファネルの実装方法を教える

セールスファネルの実装方法を教える

大家讲道理
大家讲道理オリジナル
2016-11-12 14:36:343078ブラウズ

はじめに
比較的完成度の高い CRM であるセールスファネルは不可欠です。潜在顧客段階から見込み客段階、商談段階、取引段階に至るまでの企業の顧客リソースの比例関係、つまりコンバージョン率を直感的かつグラフィカルに指摘することができます。この情報は販売者にとって非常に重要です。紙とペンを使用して統計を計算する従来の方法は、時間がかかり、労力がかかり、直感的ではありません。このような問題を解決するのがセールスファネルの登場です。では、セールスファネルを実装するにはどうすればよいでしょうか?これは誰もがより懸念している問題であるはずです。一つずつ説明しましょう。


需要分析
Highcharts プラグインを介してセールスファネル チャートを実装します。 (これはYii2用のプラグインです。自分でダウンロードしてインストールできます。記事の最後にダウンロードアドレスを添付します)


レンダリング
セールスファネルの実装方法を教える
実装アイデア
ネットで情報を確認しましたそれを直接説明する記事は見つかりませんでした。セールスファネルの PHP の使用法はすべて JS の使用法を指します。親の指示もないので、自分で頑張るしかありません。思いつきで、Baidu で見つけた 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,
        ]);
    }
rree

3. 通話を表示します。

 /*
    *销售漏斗
    *按公司按销售阶段统计线索的销售金额
   */
    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;
    }
<?php 
use yii\helpers\Html;
use hr\assets\AppAsset;
use miloschuman\highcharts\Highcharts; 
use yii\web\JsExpression;
?>

注意事項
1. ページ上で同じプラグインを複数回使用することによって生じる競合を避けるために、プラグインに一意の ID を定義します。

2. プラグインが要求する配列形式に従って配列を配置します。形式は一貫している必要があり、数値部分は整数 (int) に変換する必要があります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。