de Richard

Construiește-ți un CRM simplu de la zero în PHP și MySQL

Construieste ti un CRM simplu de la zero in PHP si
Fotografie de Mike Kononov pe Unsplash

Managementul relației cu clienții (CRM) este un sistem care gestionează interacțiunile și datele clienților pe tot parcursul ciclului de viață al clientului între client și companie pe diferite canale. În acest tutorial, vom construi un CRM personalizat în PHP, pe care o echipă de vânzări îl poate utiliza pentru a urmări clienții pe parcursul întregului ciclu de vânzări.

Vom crea un sistem CRM simplu pentru agenții de vânzări:

  • Accesați sarcinile lor
  • Vizualizați-le
  • Creați sarcini noi pentru fiecare client potențial
  • Creați o nouă oportunitate
  • Închideți o vânzare

Managerii de vânzări vor putea:

  • Gestionați toți clienții
  • Gestionați echipa de vânzări
  • Vedeți activitățile curente de vânzare

Descărcați fișiere demonstrative

Blocuri de bază ale unui CRM

Iată o listă cu componentele esențiale ale CRM:

  • Oportunitati: contacte inițiale
  • Conturi: Informații despre companiile cu care faceți afaceri
  • a lua legatura: Informații despre oamenii pe care îi cunoașteți și cu care lucrați. De obicei, un cont are multe contacte
  • Oportunități: Conduceri calificați
  • Activități: Sarcini, întâlniri, apeluri telefonice, e-mailuri și orice alte activități care vă permit să interacționați cu clienții
  • Vânzări: Echipa dvs. de vânzări
  • Bord: Tablourile de bord CRM sunt mult mai mult decât doar bomboane pentru ochi. Aceștia ar trebui să furnizeze informații cheie dintr-o privire și să furnizeze linkuri pentru a detalia pentru mai multe detalii.
  • Autentificare: Vânzătorii și managerii au roluri diferite în sistem. Managerii au acces la rapoarte și informații despre canalul de vânzări.
0*19oQRWbZyumceXfU

Cerințe de sistem

Creați o bază de date CRM

Vom începe prin crearea bazei de date CRM personalizate. Tabelele principale pe care le vom folosi sunt:

  • a lua legatura – conține date de bază despre clienți
  • note – deține colectarea de informații de la Contact de către vânzători.
  • utilizatori – informații despre oamenii de vânzări
0*gJgr4DrRJ3O OEYr

a lua legatura tabelul conține informații de bază despre clienți, inclusiv nume, adrese ale companiei, informații despre proiect și așa mai departe.

Note table stochează toate informațiile despre activitatea de vânzare, cum ar fi întâlnirile și apelurile telefonice.

Utilizatori tabelul conține informații de conectare despre utilizatorii sistemului, cum ar fi numele de utilizator și parolele. Utilizatorii pot avea, de asemenea, roluri, cum ar fi Vânzări sau Manager.

Toate celelalte tabele sunt tabele de căutare pentru a vă alătura celor trei tabele principale de baze de date relaționale.

  • contact_status – conține stări de contact precum Lead și Opportunity. Fiecare indică o etapă diferită într-un ciclu tipic de vânzări
  • task_status – starea sarcinii poate fi în așteptare sau finalizată
  • Starea utilizatorului – o persoană care vinde poate fi activă sau inactivă
  • todo_type – un tip de sarcină Task sau Meeting
  • todo_desc – descrierea unei sarcini precum e-mail de urmărire, apel telefonic și conferință etc.
  • roluri – un utilizator poate fi fie reprezentant de vânzări, fie manager

Schema completă a schemei de baze de date

O schemă a bazei de date este structura care reprezintă vizualizarea logică, cum ar fi tabelele, vizualizările sau cheile primare și externe ale întregii baze de date. O schemă de baze de date include entități și relația dintre ele.

Este o practică bună să aveți o cheie primară pentru fiecare tabel dintr-o bază de date relațională. O cheie primară este un identificator unic pentru fiecare înregistrare. Poate fi numărul de securitate socială (SSN), numărul de identificare al vehiculului (VIN) sau numărul de creștere automată. Acesta este un număr unic care este generat atunci când o nouă înregistrare este inserată într-un tabel.

Mai jos este diagrama bazei de date a CRM-ului nostru simplu. Simbolul cheii din fiecare tabel reprezintă cheia principală a tabelului. Lupa indică cheia străină care leagă un alt tabel din baza de date. Uneori îl numim tabelul „căutare”.

install.sql

După ce ați înțeles structura tabelului bazei de date, găsiți scriptul „install.sql” în db folder și utilizați un instrument MySQL precum MySQL Workbench sau Sequel Pro pentru a rula scriptul SQL. Ar trebui să creeze o nouă bază de date relațională numită custom_crm și tabelele sale de baze de date.

O notă laterală pe 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.

Configurați phpGrid

1612039630 491 Construieste ti un CRM simplu de la zero in PHP si

CRM-ul nostru conține multe grile de date. Grila de date este un tabel de date asemănător unei foi de calcul care afișează rânduri și coloane reprezentând înregistrări și câmpuri din tabelul bazei de date. Grila de date oferă utilizatorului final capacitatea de a citi și scrie în tabelele bazei de date de pe o pagină web. Putem folosi un instrument de date de la phpGrid. Folosim un instrument în loc să le construim de la zero, deoarece dezvoltarea grilei de date este de obicei obositoare și predispusă la erori. Biblioteca de baze de date va gestiona toate bazele de date interne CRUD (Creați, eliminați, actualizați și ștergeți) operațiuni pentru noi cu rezultate mai bune și mai rapide, cu puțin cod. Pentru a instala phpGrid, urmați acești pași:

  1. Dezarhivați fișierul de descărcare phpGrid.
  2. Încărcați folderul phpGrid în phpGrid pliant.
  3. Finalizați instalarea configurând fișierul conf.php fişier.

Înainte de a începe codarea, trebuie să specificăm informațiile bazei de date în conf.php, fișierul de configurare phpGrid. Iată un exemplu de setări de conexiune la baza de date:

  • PHPGRID_DB_HOSTNAME – adresa IP a serverului sau numele gazdei
  • PHPGRID_DB_USERNAME – numele utilizatorului bazei de date
  • PHPGRID_DB_PASSWORD – parola bazei de date
  • PHPGRID_DB_NAME – numele bazei de date a CRM-ului nostru
  • PHPGRID_DB_TYPE – tipul bazei de date
  • PHPGRID_DB_CHARSET – întotdeauna „utf8” în MySQL

Pentru a afla mai multe despre configurarea phpGrid, consultați ghid de instalare complet phpGrid.

Șablon de pagină

0*nnv7 XJ9KD0zLXqK

Înainte de a începe să construim prima noastră pagină a CRM, este o bună practică să realizăm elemente de pagină reutilizabile precum antetul și subsolul.

Pagina va cuprinde un antet, un meniu, un corp și un subsol. Vom începe prin crearea unui șablon de pagină reutilizabil.

head.php

Acesta este un antet de șablon de bază HTML5. Acesta include un link către o foaie de stil personalizată care va fi creată într-un pas ulterior.

0*TDduZwwNWj64wN77

Observați utilizarea $_GET['currentPage']. Fiecare pagină va seta o valoare care va evidenția numele paginii curente din bara de meniu de sus.

Includeți următorul cod în style.css pentru stilul meniului (minimizat). Va transforma lista neordonată de mai sus într-un meniu.

Simplu corp de închidere și etichete html.

Șablon de pagină complet

Acesta este șablonul de pagină complet. Conținutul principal va merge după Section Title.

Pagini principale CRM

1612039630 731 Construieste ti un CRM simplu de la zero in PHP si

Ești încă cu mine? Bun! Acum putem dezvolta în sfârșit prima pagină din CRM.

CRM-ul nostru pentru membrii echipei de vânzări are patru pagini:

  • Sarcini
  • Oportunitati
  • Oportunități
  • Clienți / Câștigat

Fiecare pagină indică o etapă diferită într-un ciclu tipic de vânzări.

Vânzare Oameni de proiectare a machetei

Iată macheta noastră de design CRM pentru oamenii de vânzări.

Construieste ti un CRM simplu de la zero in PHP si

Pagina Sarcini

Când un membru al echipei de vânzări s-a conectat, prima pagină pe care o vede este o listă cu sarcinile curente.

După cum vă amintiți, tabelul nostru de Note conține toate informațiile despre activitatea de vânzări. Putem crea o grilă de date și o putem completa din tabelul Notes folosind phpGrid.

Conținutul principal al paginii Sarcini este o grilă de date. Următoarele două rânduri ne vor oferi o listă a sarcinilor actualului agent de vânzări.

  • Prima linie creează un obiect phpGrid prin trecerea instrucțiunii SELECT SQL, cheia sa principală – ID, și apoi numele tabelului bazei de date – notes.
  • Apelurile de linie a doua și finală afişa() funcție pentru a reda grila de date pe ecran. Verificați demo de bază de date pentru mai multe detalii.

Pagina Leads

Pagina de clienți potențiali conține o listă de clienți potențiali actuali de care este responsabil persoana de vânzări. Fiecare client potențial poate avea una sau mai multe Note. Vom folosi phpGrid master-detail caracteristică pentru asta.

De asemenea, trebuie să folosim set_query_filter() pentru a afișa numai clienții potențiali, Status = 1, și numai pentru persoana actuală de vânzări.

Tabel de stare a contactului

0*GJDLBk0XN5r9M5NY

Pagina Oportunități

Un potențial devine o oportunitate odată ce este calificat. Pagina Oportunități este similară cu pagina Oportunități. Singura diferență este că codul de stare filtrat din set_query_filter este Status = 2.

Clienți / Pagina câștigată

Clienți / câștigat are Status = 3. Similar cu oportunitățile și oportunitățile, clienții / câștigul pot avea și note.

Asta este tot ceea ce există pentru oamenii de vânzări în CRM-ul nostru simplu.

Tabloul de bord al managerului

1612039631 752 Construieste ti un CRM simplu de la zero in PHP si
Fotografie de Colectiv Eaters pe Unsplash

Managerul de vânzări va avea acces la toate înregistrările din conducta de vânzări, precum și la capacitatea de a gestiona echipa de vânzări și datele clienților.

Vom avea o singură pagină web cu meniu cu file similar cu demonstrație cu grilă phpGrid.

Manager Dashboard Design Mockup

Reprezentanții mei de vânzări

1612039631 613 Construieste ti un CRM simplu de la zero in PHP si

Conținut principal

Fiecare filă reprezintă un tabel în baza de date CRM. $_GET['gn'] va stoca numele tabelului. Acesta generează dinamic rețeaua de date pe baza numelui de masă transmis.

Este foarte ușor să integrezi jQueryUI Tabs cu phpGrid. Vă rugăm să consultați phpGrid Demo cu grilă cu file pentru mai multe informatii.

Pagina mea de reprezentant de vânzări

Deoarece un manager de vânzări trebuie să afle rapid cu cine lucrează o persoană vânzătoare, am adăugat o grilă de detalii $sdg populat din tabelul de contact și legătură cu grila principală.

sales_rep este cheia de conectare din contact masă către id aceasta este cheia străină în users masa. Amintiți-vă users stochează toate informațiile despre oamenii noștri de vânzări.

Capturi de ecran

CRM – Ecran de vânzări

1612039632 404 Construieste ti un CRM simplu de la zero in PHP si

CRM – Ecran Manager

1612039632 696 Construieste ti un CRM simplu de la zero in PHP si

Demo live

Ecran CRM Sales Rep | Ecran CRM Managers

Trebuie să scrieți și mai puțin cod?

Dacă sunteți nou în programare și nu sunteți încă confortabil cu codificarea, vă recomandăm să verificați ZenBase care este construit pe partea de sus a phpGrid. CRM este doar unul dintre multe șabloane de aplicații disponibil la ZenBase pentru oricine – cu sau fără abilități de codare – de utilizat și personalizat pentru propriile nevoi.

Completați codul sursă pe GitHub

phpcontrols / phpgrid-custom-crm
phpgrid-custom-crm – Demo CRM personalizat – Aflați cum să creați un CRM personalizat în PHP și MySQL, pe care o echipă de vânzări îl poate …github.com

Mulțumesc pentru lectură. Dacă ți-a plăcut acest articol, te rugăm să apeși butonul de batere? pentru a-i ajuta pe alții să-l găsească și furmează-mă pe Twitter.

1611340456 617 Cum se construieste o aplicatie de gestionare a proiectelor in