日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CRM——销售与客户

發布時間:2023/12/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CRM——销售与客户 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、銷售與客戶——表結構

1、客戶類型

(1)公共客戶(公共資源)

  必備條件:沒有報名;

  在必備條件滿足的情況下,滿足以下任意條件都是公共客戶:

    3天沒有跟進;15天沒有成單。

(2)我的客戶

原銷售——三江:
  2018-5-18 12:00 龍泰 男? 2018-5-18 正在跟進
  2018-5-19 0:0 龍泰 男? 2018-5-19 15天未成單

搶單銷售——暴雨:

  2018-5-19 12:00 龍泰 男 2018-5-19 正在跟進

  2018-5-20 0:0 龍泰 男 2018-5-20 正在跟進

  2018-5-21 0:0 龍泰 男 2018-5-21 正在跟進

  2018-5-22 0:0 龍泰 男 2018-5-22 正在跟進

  2018-5-23 0:0 龍泰 男 2018-5-23 3天未成單

搶單銷售——大傻:

  2018-5-23 0:0 龍泰 男 2018-5-23 正在跟進

2、添加客戶分布表(CustomerDistrbute)

(1)為什么創建客戶分布表,為什么不能直接用Customer?

  因為:銷售可以查看,自己的客戶是否已過期,是否正在跟進,月底可以算業績!不能說沒談成,就沒有業績!!

(2)更新models.py

class CustomerDistrbute(models.Model):"""customer:客戶consultant:跟進人date:日期status:狀態meno:"""customer = models.ForeignKey("Customer", related_name="customers", on_delete=models.CASCADE)consultant = models.ForeignKey(verbose_name="課程顧問", to="UserInfo", limit_choices_to={"depart_id":1001}, on_delete=models.CASCADE)date = models.DateField()status_choices = ((1, '正在跟進'),(2, '已報名'),(3, '三天未跟進'),(4, '15天未成單'),)status = models.IntegerField(choices=status_choices, default=1)meno = models.CharField(max_length=255)def __str__(self):return self.customer.name + ":" + self.consultant.name

  注意:__str__函數返回客戶名和顧問名

(3)再次執行數據庫遷移加載新表到數據庫中

manage.py@CRM_demo > makemigrations manage.py@CRM_demo > migrate

3、新的表結構

二、公共客戶

  繼續配置Customer自定義配置類,擴展公共客戶路由、視圖、模板。

1、添加public客戶url

class CustomerConfig(ModelStark):def extra_url(self):"""擴展路由"""temp = []temp.append(url((r"cancel_course/(\d+)/(\d+)"), self.cancel_course))temp.append(url(r"public", self.public_customer))return temp

2、定制公共客戶視圖

def public_customer(self, request):"""公共客戶"""# 未報名、且三天未跟進或15天未成單from django.db.models import Qimport datetimenow = datetime.datetime.now() # datetime.datetime:表示日期時間# datetime.timedelta:表示時間間隔,即兩個時間點之間的長度delta_day3 = datetime.timedelta(days=3)delta_day15 = datetime.timedelta(days=15)# 三天未跟進:now-last_consult_date>3 ===> last_consult_date < now - 3# 15天未成單:now-recv_data > 15 ====> recv_data < now - 15user_id = 2 # 課程顧問吳三江customer_list = Customer.objects.filter(Q(last_consult_date__lt=now - delta_day3) | Q(recv_date__lt=now - delta_day15), status=2).exclude(consultant=user_id)print(customer_list) # <QuerySet [<Customer: 小東北>, <Customer: 泰哥>]>return render(request, "public.html", locals())

  注意:

(1)datetime模塊的使用

  datetime.datetime:表示的是日期時間。

  datetime.timedelta:表示時間間隔,即兩個時間點之間的長度

now = datetime.datetime.now() # 當前日期 delta_day3 = datetime.timedelta(days=3) # 時間間隔三天 delta_day15 = datetime.timedelta(days=15) # 時間間隔15天

(2)根據公共客戶條件篩選客戶

# 三天未跟進:now-last_consult_date>3 ===> last_consult_date < now - 3 # 15天未成單:now-recv_data > 15 ====> recv_data < now - 15 # Q查詢 last_consult_date__lt recv_date__lt customer_list = Customer.objects.filter(Q(last_consult_date__lt=now - delta_day3) | Q(recv_date__lt=now - delta_day15), status=2) print(customer_list) # <QuerySet [<Customer: 小東北>, <Customer: 泰哥>]>

3、public.html基礎設計渲染

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css"> </head> <body> <h3>公共客戶</h3> <div class="container"><div class="row"><div class="col-md-6"><table class="table table-bordered table-striped"><thead><tr><th>ID</th><th>姓名</th><th>QQ</th><th>課程顧問</th></tr></thead><tbody>{% for customer in customer_list %}<tr><td>{{ forloop.counter }}</td><td>{{ customer.name }}</td><td>{{ customer.qq }}</td><td>{{ customer.consultant }}</td></tr>{% endfor %}</tbody></table></div></div> </div> </body> </html> public.html

  顯示效果如下所示:

  

4、exclude排除——公共客戶原課程顧問不可見

  filter按條件篩選,exclude按條件排除。

user_id = 2 # 課程顧問吳三江 customer_list = Customer.objects.filter(Q(last_consult_date__lt=now - delta_day3) | Q(recv_date__lt=now - delta_day15), status=2).exclude(consultant=user_id) print(customer_list) # <QuerySet [<Customer: 泰哥>]>

  顯示效果:

  

5、在public.html渲染當前客戶跟進記錄

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css"> </head> <body> <h3>公共客戶</h3> <div class="container"><div class="row"><div class="col-md-6"><table class="table table-bordered table-striped"><thead><tr><th>ID</th><th>姓名</th><th>QQ</th><th>課程顧問</th><th>跟進詳情</th></tr></thead><tbody>{% for customer in customer_list %}<tr><td>{{ forloop.counter }}</td><td>{{ customer.name }}</td><td>{{ customer.qq }}</td><td>{{ customer.consultant }}</td><td><a href="/stark/crm/consultrecord/?customer={{ customer.pk }}">跟進記錄</a></td></tr>{% endfor %}</tbody></table></div></div> </div> </body> </html> public.html

(1)渲染跟進記錄的a標簽時,添加href地址:

<td><a href="/stark/crm/consultrecord/?customer={{ customer.pk }}">跟進記錄</a></td>

(2)顯示效果:

  

  點擊泰哥的跟進記錄,調整到客戶記錄頁面,并過濾泰哥的記錄:

  

三、確認跟進

1、增加確認跟進url和我的客戶url

class CustomerConfig(ModelStark):def extra_url(self):"""擴展路由"""temp = []temp.append(url((r"cancel_course/(\d+)/(\d+)"), self.cancel_course))temp.append(url(r"public/", self.public_customer))temp.append(url(r"further/(\d+)", self.further))temp.append(url(r"mycustomer/", self.mycustomer))return temp

2、更改課程顧問和對應的時間

def further(self, request, customer_id):"""跟進客戶"""user_id = 2 # 這里是模擬登陸狀態requet.session.get("user_id")import datetimefrom django.db.models import Qnow = datetime.datetime.now()delta_day3 = datetime.timedelta(days=3)delta_day15 = datetime.timedelta(days=15)# 為符合條件客戶更改課程顧問,避免多人同時或連續跟進ret = Customer.objects.filter(pk=customer_id).filter(Q(last_consult_date__lt=now - delta_day3) | Q(recv_date__lt=now - delta_day15), status=2).update(consultant=user_id, last_consult_date=now, recv_date=now)if not ret:# 沒有更新return HttpResponse("已經被跟進了")# 添加一條記錄 狀態均是正在跟進狀態CustomerDistrbute.objects.create(customer_id=customer_id, consultant_id=user_id, date=now, status=1)return HttpResponse("跟進成功!")

注意:

(1)更改課程需要提前過濾

  先進行過濾是為了防止多個用戶同時搶單,最后給了最后一個搶單的人,先過濾再搶單,后搶單的人已經找不到之前看到的客戶,提示已經被跟進了。

(2)創建一條客戶分布記錄

CustomerDistrbute.objects.create(customer_id=customer_id, consultant_id=user_id, date=now, status=1 )

(3)ret是update的返回值

  update返回值返回的是更新的數據條數。

3、頁面布局

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css"> </head> <body> <h3>公共客戶</h3> <div class="container"><div class="row"><div class="col-md-6"><table class="table table-bordered table-striped"><thead><tr><th>ID</th><th>姓名</th><th>QQ</th><th>課程顧問</th><th>跟進詳情</th><th>確認跟進</th></tr></thead><tbody>{% for customer in customer_list %}<tr><td>{{ forloop.counter }}</td><td>{{ customer.name }}</td><td>{{ customer.qq }}</td><td>{{ customer.consultant }}</td><td><a href="/stark/crm/consultrecord/?customer={{ customer.pk }}">跟進記錄</a></td><td><a href="/stark/crm/customer/further/{{ customer.pk }}">確認跟進</a></td></tr>{% endfor %}</tbody></table></div></div> </div> </body> </html> public.html <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body> <h3>我的客戶</h3> <ul>{% for customer_distribute in customer_distribute_list %}<li>{# 一個客戶有多種分布狀態 #}{{ customer_distribute.customer }}--{{ customer_distribute.date }}--{{ customer_distribute.get_status_display }}</li>{% endfor %}</ul> </body> </html> mycustomer.html

4、測試驗證

  兩個瀏覽器同時訪問:

  

  先跟進的瀏覽器:

  

  后跟進的瀏覽器:

  

四、我的客戶

1、新增url

temp.append(url(r"mycustomer/", self.mycustomer))

2、我的客戶視圖

class CustomerConfig(ModelStark):def mycustomer(self, request):"""我的客戶"""user_id = 2customer_distribute_list = CustomerDistrbute.objects.filter(consultant=user_id)return render(request, "mycustomer.html", locals())

  注意:

(1)在客戶分布表查詢

  不能在Customer表查詢,這查詢到的只是正在跟蹤客戶的信息。之前的跟蹤過得信息不會顯示。需要在客戶分布表查詢。

(2)模擬登陸銷售

  在mycustomer視圖函數下配置user_id,值等于哪個顧問的pk值就是模擬的誰登陸。

3、模板和展示效果

  mycustomer.html見跟進記錄那一章。

  展示效果如下所示:

  

五、定時任務監控放入公共客戶

  每天晚上12點檢測CustomerDistribute哪個客戶過期,一旦過期就調整為公共客戶。

轉載于:https://www.cnblogs.com/xiugeng/p/9560990.html

總結

以上是生活随笔為你收集整理的CRM——销售与客户的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。