HomeLập trìnhPhpXây dựng cho...

Xây dựng cho mình một CRM đơn giản từ đầu bằng PHP và MySQL


bởi Richard

1*9ZxDtBiAUyVo6anPUJxkcg
Ảnh của Mike Kononov trên Bapt

Quản lý quan hệ khách hàng (CRM) là một hệ thống quản lý các tương tác và dữ liệu của khách hàng trong suốt vòng đời của khách hàng giữa khách hàng và công ty trên các kênh khác nhau. Trong hướng dẫn này, chúng ta sẽ xây dựng một CRM tùy chỉnh bằng PHP, mà nhóm bán hàng có thể sử dụng để theo dõi khách hàng trong toàn bộ chu kỳ bán hàng.

Chúng tôi sẽ tạo một hệ thống CRM đơn giản để nhân viên bán hàng:

  • Truy cập nhiệm vụ của họ
  • Xem khách hàng tiềm năng của họ
  • Tạo nhiệm vụ mới cho mỗi khách hàng tiềm năng
  • Tạo cơ hội mới
  • Đóng một cuộc bán hàng

Người quản lý bán hàng sẽ có thể:

  • Quản lý tất cả khách hàng
  • quản lý đội ngũ bán hàng
  • Xem các hoạt động bán hàng hiện tại

Tải xuống tệp demo

Các khối xây dựng của một CRM

Dưới đây là danh sách các thành phần thiết yếu của CRM:

  • khách hàng tiềm năng: liên hệ ban đầu
  • tài khoản: Thông tin về các công ty bạn hợp tác kinh doanh
  • Liên hệ: Thông tin về những người bạn biết và làm việc cùng. Thông thường, một tài khoản có nhiều liên hệ
  • Những cơ hội: Khách hàng tiềm năng đủ điều kiện
  • Các hoạt động: Nhiệm vụ, cuộc họp, cuộc gọi điện thoại, email và bất kỳ hoạt động nào khác cho phép bạn tương tác với khách hàng
  • Việc bán hàng: Đội ngũ bán hàng của bạn
  • bảng điều khiển: Bảng điều khiển CRM không chỉ đơn thuần là bắt mắt. Họ nên cung cấp thông tin quan trọng trong nháy mắt và cung cấp các liên kết để đi sâu vào để biết thêm chi tiết.
  • Đăng nhập: Nhân viên bán hàng và quản lý có vai trò khác nhau trong hệ thống. Người quản lý có quyền truy cập vào các báo cáo và thông tin đường ống bán hàng.
0*19oQRWbZyumceXfU

yêu cầu hệ thống

Tạo cơ sở dữ liệu CRM

Chúng tôi sẽ bắt đầu bằng cách tạo cơ sở dữ liệu CRM tùy chỉnh của mình. Các bảng chính chúng tôi sẽ sử dụng là:

  • liên hệ – chứa dữ liệu khách hàng cơ bản
  • ghi chú — tổ chức thu thập thông tin từ Liên hệ của nhân viên bán hàng.
  • người dùng – thông tin về nhân viên bán hàng
0*gJgr4DrRJ3O_OEYr

Các Liên hệ bảng chứa thông tin khách hàng cơ bản bao gồm tên, địa chỉ công ty, thông tin dự án, v.v.

Đọc thêm  CẤP BÁCH! Viết một Trang HTML + PHP hợp lệ sẽ đếm các số từ 1 đến 1.000.000? - #15 bởi dotun

Các ghi chú bảng lưu trữ tất cả thông tin hoạt động bán hàng như cuộc họp và cuộc gọi điện thoại.

Các người dùng bảng chứa thông tin đăng nhập về người dùng của hệ thống như tên người dùng và mật khẩu. Người dùng cũng có thể có các vai trò, chẳng hạn như Bán hàng hoặc Người quản lý.

Tất cả các bảng khác là bảng tra cứu để nối với ba bảng cơ sở dữ liệu quan hệ chính.

  • contact_status — chứa trạng thái liên hệ như Khách hàng tiềm năng và Cơ hội. Mỗi biểu thị một giai đoạn khác nhau trong một chu kỳ bán hàng điển hình
  • task_status — trạng thái nhiệm vụ có thể là Đang chờ xử lý hoặc Đã hoàn thành
  • tâm trạng người dùng — người bán hàng có thể Đang hoạt động hoặc Không hoạt động
  • todo_type — một loại nhiệm vụ hoặc Nhiệm vụ hoặc Cuộc họp
  • todo_desc — mô tả nhiệm vụ chẳng hạn như Theo dõi Email, Gọi điện thoại và Hội nghị, v.v.
  • vai trò — người dùng có thể là Đại diện bán hàng hoặc Người quản lý

Sơ đồ lược đồ cơ sở dữ liệu hoàn chỉnh

Lược đồ cơ sở dữ liệu là cấu trúc đại diện cho dạng xem logic như bảng, dạng xem hoặc khóa chính và khóa ngoài của toàn bộ cơ sở dữ liệu. Một lược đồ cơ sở dữ liệu bao gồm các thực thể và mối quan hệ giữa chúng.

Một cách thực hành tốt là có một khóa chính cho mỗi bảng trong cơ sở dữ liệu quan hệ. Khóa chính là mã định danh duy nhất cho mỗi bản ghi. Nó có thể là số an sinh xã hội (SSN), số nhận dạng phương tiện (VIN) hoặc số gia tăng tự động. Đây là một số duy nhất được tạo khi một bản ghi mới được chèn vào bảng.

Dưới đây là sơ đồ cơ sở dữ liệu của CRM đơn giản của chúng tôi. Ký hiệu khóa trong mỗi bảng đại diện cho khóa chính của bảng. Kính lúp cho biết khóa ngoại liên kết một bảng khác trong cơ sở dữ liệu. Đôi khi chúng tôi gọi nó là bảng “tra cứu”.

0*qExvrxjr5WZERLEO

cài đặt.sql

Khi bạn đã hiểu về cấu trúc bảng cơ sở dữ liệu, hãy tìm tập lệnh “install.sql” trong db thư mục và sử dụng công cụ MySQL chẳng hạn như MySQL Workbench hoặc Sequel Pro để chạy tập lệnh SQL. Nó sẽ tạo một cơ sở dữ liệu quan hệ mới có tên custom_crm và các bảng cơ sở dữ liệu của nó.

Lưu ý bên lề về ZenBase

The CRM application is also one of the many application templates readily available at ZenBase (built on the top of phpGrid) for anyone — with or without coding skills — to use and customize for their own needs.

Thiết lập phpGrid

1*FZ9ZZsPaUVIiGZkgcbpSDQ

CRM của chúng tôi chứa nhiều lưới dữ liệu. Lưới dữ liệu là một bảng dữ liệu dạng bảng tính hiển thị các hàng và cột đại diện cho các bản ghi và trường từ bảng cơ sở dữ liệu. Lưới dữ liệu cung cấp cho người dùng cuối khả năng đọc và ghi vào các bảng cơ sở dữ liệu trên một trang web. Chúng ta có thể sử dụng công cụ datagrid từ phpGrid. Chúng tôi sử dụng một công cụ thay vì xây dựng chúng từ đầu vì việc phát triển lưới dữ liệu thường tẻ nhạt và dễ xảy ra lỗi. Thư viện datagrid sẽ xử lý tất cả cơ sở dữ liệu nội bộ CRUD (Tạo, Xóa, Cập nhật và Xóa) hoạt động cho chúng tôi với kết quả tốt hơn và nhanh hơn với ít mã. Để cài đặt phpGrid, hãy làm theo các bước sau:

  1. Giải nén tệp tải xuống phpGrid.
  2. Tải thư mục phpGrid lên phpGrid thư mục.
  3. Hoàn tất cài đặt bằng cách định cấu hình conf.php tập tin.
Đọc thêm  Khóa học WordPress và PHP miễn phí trong 5 giờ

Trước khi chúng tôi bắt đầu viết mã, chúng tôi phải chỉ định thông tin cơ sở dữ liệu trong conf.php, tệp cấu hình phpGrid. Dưới đây là một ví dụ về cài đặt kết nối cơ sở dữ liệu:

  • PHPGRID_DB_HOSTNAME — IP máy chủ web hoặc tên máy chủ lưu trữ
  • PHPGRID_DB_USERNAME — tên người dùng cơ sở dữ liệu
  • PHPGRID_DB_PASSWORD – mật khẩu cơ sở dữ liệu
  • PHPGRID_DB_NAME — tên cơ sở dữ liệu của CRM của chúng tôi
  • PHPGRID_DB_TYPE – loại cơ sở dữ liệu
  • PHPGRID_DB_CHARSET — luôn luôn là ‘utf8’ trong MySQL

Để tìm hiểu thêm về cách định cấu hình phpGrid, hãy xem hướng dẫn cài đặt hoàn chỉnh của phpGrid.

Mẫu trang

0*nnv7_XJ9KD0zLXqK

Trước khi chúng ta có thể bắt đầu xây dựng trang đầu tiên của CRM, cách tốt nhất là tạo các mục trang có thể tái sử dụng như đầu trang và chân trang.

Trang sẽ bao gồm tiêu đề, menu, nội dung và chân trang. Chúng tôi sẽ bắt đầu bằng cách tạo một mẫu trang có thể tái sử dụng.

đầu.php

Đây là tiêu đề mẫu HTML5 cơ bản. Nó bao gồm một liên kết đến biểu định kiểu tùy chỉnh sẽ được tạo ở bước sau.

0*TDduZwwNWj64wN77

Lưu ý việc sử dụng $_GET['currentPage']. Mỗi trang sẽ đặt một giá trị làm nổi bật tên của trang hiện tại trên thanh menu trên cùng.

Bao gồm đoạn mã sau trong style.css để tạo kiểu menu (được rút gọn). Nó sẽ biến danh sách không có thứ tự ở trên thành một menu.

Các thẻ html và body đóng đơn giản.

Mẫu trang hoàn chỉnh

Đây là mẫu trang hoàn chỉnh. Nội dung chính sẽ đi sau Section Title.

Trang chính CRM

1*z5iaw9R1XH1qCwIeE7-QfA

Bạn vẫn còn với tôi? Tốt! Giờ đây, cuối cùng chúng tôi cũng có thể phát triển trang đầu tiên trong CRM của mình.

CRM của chúng tôi dành cho các thành viên nhóm bán hàng có bốn trang:

  • nhiệm vụ
  • khách hàng tiềm năng
  • Những cơ hội
  • Khách hàng / Giành được

Mỗi trang chỉ ra một giai đoạn khác nhau trong một chu kỳ bán hàng điển hình.

Mô hình thiết kế trang nhân viên bán hàng

Đây là mô hình thiết kế CRM của chúng tôi dành cho nhân viên bán hàng.

1*AS942OO-igxo4ylg8f7m5g

Trang nhiệm vụ

Khi một thành viên nhóm bán hàng đăng nhập, trang đầu tiên anh ta nhìn thấy là danh sách các nhiệm vụ hiện tại.

Như bạn có thể nhớ lại, bảng Ghi chú của chúng tôi chứa tất cả thông tin về hoạt động bán hàng. Chúng ta có thể tạo một datagrid và điền nó từ bảng Notes bằng cách sử dụng phpGrid.

Nội dung chính của trang Nhiệm vụ là một lưới dữ liệu. Hai dòng sau sẽ cho chúng ta danh sách các nhiệm vụ của nhân viên bán hàng hiện tại.

  • Dòng đầu tiên tạo một đối tượng phpGrid bằng cách chuyển câu lệnh SQL SELECT, khóa chính của nó — IDvà sau đó là tên của bảng cơ sở dữ liệu – notes.
  • Dòng thứ hai và dòng cuối cùng gọi hàm display() để hiển thị lưới dữ liệu trên màn hình. Kiểm tra bản demo datagrid cơ bản để biết thêm chi tiết.
Đọc thêm  Công việc học lập trình Php - Diễn đàn freeCodeCamp

Trang khách hàng tiềm năng

Trang khách hàng tiềm năng chứa danh sách khách hàng tiềm năng hiện tại mà nhân viên bán hàng chịu trách nhiệm. Mỗi Khách hàng tiềm năng có thể có một hoặc nhiều Ghi chú. Chúng tôi sẽ sử dụng tính năng chi tiết chính của phpGrid cho điều đó.

Chúng tôi cũng cần sử dụng set_query_filter() để chỉ hiển thị khách hàng tiềm năng, Status = 1và chỉ dành cho nhân viên bán hàng hiện tại.

Bảng trạng thái liên hệ

0*GJDLBk0XN5r9M5NY

Trang cơ hội

Khách hàng tiềm năng trở thành Cơ hội sau khi đủ điều kiện. Trang Cơ hội tương tự như trang Khách hàng tiềm năng. Sự khác biệt duy nhất là mã trạng thái được lọc trong set_query_filter là Status = 2.

Khách hàng/Trang giành chiến thắng

Khách hàng/Won có Status = 3. Tương tự như Khách hàng tiềm năng và Cơ hội, Khách hàng/Đã giành được cũng có thể có Ghi chú.

Đó là tất cả những gì dành cho nhân viên bán hàng trong CRM đơn giản của chúng tôi.

Bảng điều khiển quản lý

1*AI44nH7B8mnNLTKqulmjGA
Ảnh của Eaters Collective trên Bapt

Người quản lý bán hàng sẽ có quyền truy cập vào tất cả các bản ghi trong quy trình bán hàng cũng như khả năng quản lý nhóm bán hàng và dữ liệu khách hàng.

Chúng ta sẽ có một trang web duy nhất với menu theo thẻ tương tự như bản demo lưới theo thẻ của phpGrid.

Mô hình thiết kế bảng điều khiển dành cho người quản lý

Đại diện bán hàng của tôi

1*Jn0q3g0FMqW6shEXtENR8w

Nội dung chính

Mỗi tab đại diện cho một bảng trong cơ sở dữ liệu CRM. $_GET['gn'] sẽ lưu trữ tên bảng. Nó tự động tạo lưới dữ liệu dựa trên tên bảng được truyền.

Thật dễ dàng để tích hợp các Tab jQueryUI với phpGrid. Vui lòng tham khảo bản demo Lưới theo thẻ phpGrid để biết thêm thông tin.

Trang đại diện bán hàng của tôi

Vì người quản lý bán hàng cần nhanh chóng tìm ra người bán hàng đang làm việc với ai, chúng tôi đã thêm một lưới chi tiết $sdg được điền từ bảng liên hệ và liên kết với lưới chính.

sales_rep là chìa khóa kết nối trong contact bàn để id đó là khóa ngoại trong users cái bàn. Nhớ cái gì đó users lưu trữ tất cả thông tin nhân viên bán hàng của chúng tôi.

Ảnh chụp màn hình

CRM — Màn hình bán hàng

1*e_osyaKXAm8Paj6OTVpCsg

CRM — Màn hình quản lý

1*wMcbdN9Im5jAUhv-mfEN_g

Bản thử trực tiếp

Màn hình đại diện bán hàng CRM | Màn hình Trình quản lý CRM

Cần viết mã thậm chí ít hơn?

Nếu bạn chưa quen với lập trình và chưa cảm thấy thoải mái với việc viết mã, bạn có thể muốn xem ZenBase được xây dựng trên đỉnh của phpGrid. CRM chỉ là một trong nhiều mẫu ứng dụng có sẵn tại ZenBase cho bất kỳ ai — có hay không kỹ năng mã hóa — để sử dụng và tùy chỉnh theo nhu cầu của riêng họ.

Mã nguồn hoàn chỉnh trên GitHub

phpcontrols/phpgrid-custom-crm
phpgrid-custom-crm – Bản trình diễn CRM tùy chỉnh – Tìm hiểu cách xây dựng cho mình một CRM tùy chỉnh bằng PHP và MySQL, nhóm bán hàng có thể…github.com

Cảm ơn vì đã đọc. Nếu bạn thích bài viết này, vui lòng nhấn nút vỗ tay đó? để giúp người khác tìm thấy nó và ftheo dõi tôi trên Twitter.

1*v-_G34PI1sMmIxI1xstaYQ





Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status