fbpx

SuiteCRM Polska

Darmowy system CRM na licencji Open Source

Kreator pól i modułów w SuiteCRM – od prostego pola do kompletnie nowego modułu

Każda firma ma własny język. Inne nazwy etapów sprzedaży, inne kategorie klientów, inne procesy obsługi zleceń. Gotowe systemy CRM oferują pewien zestaw domyślnych struktur danych – i często jest to dobry punkt wyjścia, ale rzadko punkt dojścia.

SuiteCRM rozwiązuje ten problem za pomocą wbudowanych narzędzi do customizacji: Studio oraz Module Builder. Pierwsze pozwala modyfikować istniejące moduły systemu, drugie – budować całkowicie nowe dostosowane do specyfiki działalności. Oba działają z poziomu interfejsu graficznego bez konieczności pisania kodu.

Studio i Module Builder – czy są i czym się różnią?

Studio to panel administracyjny umożliwiający modyfikację modułów już obecnych w SuiteCRM – takich jak Kontakty, Szanse sprzedażowe, Konta czy Sprawy. Można tam dodawać i edytować pola, zmieniać układy formularzy, tworzyć relacje między modułami oraz zarządzać listami wartości rozwojowych.

module builder

Module Builder służy do czegoś innego: tworzenia modułów od podstaw. Gdy żaden z domyślnych modułów nie odpowiada potrzebom – bo firma chce np. śledzić wypożyczany sprzęt, zarządzać harmonogramami szkoleń albo prowadzić rejestr umów serwisowych – Module Builder pozwala zbudować odpowiednią strukturę bez integracji w kod źródłowy.

Oba narzędzia są dostępne w menu Admin -> Studio oraz Admin -> Module Builder.

Typy pól – co można dodać do modułu

SuiteCRM oferuje szeroki katalog pól. Wybór odpowiedniego ma znaczenie nie tylko fikcjonalne, ale też wpływa na sposób wyświetlania danych i możliwości filtrowania.

Najczyściej używane typy:

  • TextFiled – krótki tekst, np. numer rejestracyjny pojazdu
  • TextArea – dłuższy tekst, np. opis reklamacji
  • Integer/Decimal/Currency – wartości liczbowe i walutowe
  • Date/DateTime – daty i znaczniki czasu
  • Checkbox (Boolean) – pola tak/nie
  • DropDown – lista rozwijana z predefiniowanymi wartościami
  • MultiSelect – możliwość wyboru wielu wartości z listy
  • Relate – relacja od rekordu z innego modułu (np. przypisanie kontaktu do projektu)
  • Calculated Field – pole obliczane na podstawie formuły
  • Image – plik graficzny przypisany do rekordu
  • URL – adres strony internetowej z aktywnym linkiem

Każde pole otrzymuje unikalną nazwę techniczną z sufiksem _c (od custom), co odróżnia je od pól natywnych i zabezpiecza przed konfliktami podczas aktualizacji systemu.

Krok po kroku: dodawanie pola do istniejącego modułu

Na przykładzie modułu Kontakty – dodanie pola “Segment klienta”:

  • Wejdź w Admin -> Studio -> Contacts -> Fields
  • Kliknij AddField
  • Wybierz typ: DropDown
  • Wyprowadź nazwę techniczną: segment_klienta (system doda _c)
  • Wprowadź etykietę widoczna dla użytkownika: “Segment klienta”
  • Z listy rozwijanej wskaż istniejącą listę wartości lub utwórz nową (np. “Mały”, “Średni”, “Korporacyjny”)
  • Opcjonalnie ustaw wartość domyślną
  • Kliknij Save

Pole istnieje teraz w bazie danych – ale nie jest jeszcze widoczne w formularzu. Żeby się tam pojawiło, trzeba je przypisać do odpowiedniego układu.

Edycja układów (Layouts)

Studio oferuje edytor layoutów oparty na metodzie drag&drop. Dostępne widoki to:

  • EditView – formularz edycji rekordu
  • DetailView – widok szczegółów (tryb tylko do odczytu)
  • ListView – kolumny na liście rekordów
  • SearchView – pola dostępne w wyszukiwarce
  • QuickCreate – uproszczony formularz tworzenia rekordu

Żeby dodać wcześniej stworzone pole do formularza:

  • Wejdź w Studio -> Contacts -> Layouts -> EditView
  • W panelu po prawej stronie znajdź swoje pole (segment_klienta_c)
  • Przeciągnij je na odpowiednią pozycję w siatce formularza
  • Kliknij Save & Deploy

Krok Deploy jest kluczowy – bez niego zmiany nie trafiają do produkcyjnego interfejsu systemu.

Dropdown Editor – zarządzanie listami wartości

Listy rozwijane to element współdzielony między polami. Jedna zdefiniowana lista wartości (np. customer_segment_list) może być używana przez wiele pól w różnych modułach.

Edytor list dostępny jest w Admin -> Dropdown Editor.

Możliwości:

  • dodawanie i usuwanie pozycji z listy
  • zmiana kolejności wartości
  • wprowadzanie tłumaczeń etykiet dla różnych wersji językowych systemu
  • tworzenie nowych list od podstaw

Ważna zasada: usunięcie z listy nie kasuje jej rekordów, które ją już zawierają – wartość przestaje być dostępna do wyboru, ale historyczne dane pozostają niezmienione.

Module Builder – budowanie modułu od zera

Gdy żaden z natywnych modułów nie pasuje do danego procesu, Module Builder pozwala stworzyć dedykowaną strukturę. Typowe przypadki użycia to: rejestr urządzeń, moduł umów serwisowych, baza artykułów wiedzy, harmonogram wizyt technicznych.

Tworzenie nowego modułu – przebieg prac

  • Wejdź do Admin -> Module Builder -> New Package
  • Podaj nazwę pakietu (np. “Serwis”) i prefiks (np. SRV) – prefiks zapobiega konfliktom nazw
  • W pakiecie kliknij New Module
  • Wybierz typ modułu – SuiteCRM oferuje gotowe szablony: Basic, Company, Person, Issue, Sale – każdy zawiera inny zestaw domyślnych pól i widoków
  • Nadaj modułowi nazwę (np. “Projekty_serwisowe”), ikonę i etykiety w liczbie pojedynczej i mnogiej
  • Kliknij Save

Moduł jest teraz pustą strukturą. Kolejne kroki to dodawanie pól (analogicznie jak w Studio_, definiowanie relacji i konfiguracja układów.

Wdrożenie modułu

Po zakończeniu konfiguracji kliknij Deploy. System:

  • tworzy nową tabelę w bazie danych
  • generuje pliki PHP definiujące moduł
  • dodaje moduł do nawigacji
  • udostępnia go użytkownikom zgodnie z uprawnieniami

Wdrożony moduł można nadal edytować przez Studio – trafia tam automatycznie po deployu.

Relacje między modułami

Relacje to jeden z ważniejszych elementów customizacji, bo decydują o tym, jak dane moduły “widzą” się nawzajem.

SuiteCRM obsługuje trzy typy relacji:

  • One-to-Many (1:N) – jeden rekord modułu A jest powiązany z wieloma rekordami modułu B (np. jedno Konto ma wiele Kontaktów)
  • Many-to-Many (N:N) – wiele rekordów modułu A powiązanych z wieloma rekordami modułu B (np. jeden Kontakt uczestniczeniu w wielu Kampaniach)
  • One-to-One (1:1) – rzadziej stosowana, jeden rekord powiązany z dokładnie jednym innym

Relacje tworzy się w Studio -> [Moduł] -> Relationships -> Add Relationship. Po zapisaniu w obu powiązanych modułach pojawiają się subpanele – sekcje na dole rekordu, w których widoczne są powiązane obiekty.

Widoczność subpaneli można kontrolować z poziomu Studio -> [Moduł] -> Layouts -> Subpanels.

Dobre praktyki

Naming convention. Nazwy techniczne pól i modułów powinny być spójne, opisowe i pozbawione polskich znaków. Konwencja nazwa_modulu_nazwa_pola_c ułatwia późniejszą identyfikację pól w raportach i zapytaniach SQL.

Kopie zapasowe. Przed większymi zmianami w Studio warto wykonać backup pliku custom/Extension oraz dump bazy danych. Błędnie skonfigurowana relacja lub usunięcie pola z danymi jest trudne do cofnięcia.

Granica między GUI a kodem. Studio i Module Builder obsługują większość typowych potrzeb. Jednak zaawansowane scenariusze – pola obliczane z logiką warunkową, integracje z zewnętrznymi systemami, masowe importy struktury – wymagają pracy z plikami PHP w katalogu custom/. To już zakres dla dewelopera.

Aktualizacje SuiteCRM. Customizacje wprowadzone przez Studio są przechowywane w katalogu custom/ i nie są nadpisywane podczas aktualizacji systemu. Moduły stworzone przez Module Builder działają analogicznie. Bezpośrednia edycja plików core’owych systemu – poza katalogiem custom/ – jest natomiast ryzykowna i niezalecana.

Podsumowanie

Studio i Module Builder to narzędzia, które pozwalają dopasować SuiteCRM do rzeczywistych procesów firmy – bez programowania, bez zewnętrznych konsultantów na każdym etapie i bez ryzyka naruszenia integralności systemu podczas aktualizacji.

Dodanie pojedynczego pola zajmuje kilka minut. Zbudowanie kompletnego modułu z relacjami, układami i listami wartości – kilka godzin. W obu przypadkach efektem jest system, który mówi językiem firmy, a nie odwrotnie.

Jeśli zainteresował Cię ten temat i masz pytania, skontaktuj się z nami. Chętnie na nie odpowiemy.

Tagged:

You Might Also Like