bởi Richard

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.
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
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á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”.
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

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:
- Giải nén tệp tải xuống phpGrid.
- Tải thư mục phpGrid lên
phpGrid
thư mục. - Hoàn tất cài đặt bằng cách định cấu hình
conf.php
tập tin.
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
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.
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

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.

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ó —
ID
và 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.
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 = 1
và 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ệ
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ý

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

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

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

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.
