Filament: Repair Salon CRM

Imagine a phone repair salon: the customer comes with their broken iPhone, then the receptionist registers the order, and then both can see the changing status: in progress, completed, rejected, etc.

In this project, we are trying to mimic exactly that, with a separate customer panel, as Filament 3 allows creating multiple panels in one project.

3-repair-salon-crm

Get the Source Code:

How it works

This project contains two Filament panels. They are defined in these provider files:

  • app/Providers/Filament/AdminPanelProvider.php
  • app/Providers/Filament/CustomerPanelProvider.php

Example code with settings for the Customer panel, defining primary colors and top navigation:

class CustomerPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
->id('customer')
->path('customer')
->colors([
'primary' => Color::Indigo,
])
->login()
->topNavigation()
// ...

The application consists of two resources: CustomerResource and OrderResource. The first one is very straightforward, almost default Filament. But Order Management has many more features.

  • In the Form, we're using Select with ->getSearchResultsUsing() and ->getOptionLabelUsing() searching for customer by name/email/phone
  • In Order Status, we're using a PHP Enum class for that Select
  • In the Table, we're showing the First Name field but actually concatenating it with Last Name, by using the ->formatStateUsing() method
  • In the Table, we have custom actions for "Edit Status/notes" and "Cancel Order"
  • We're using an Infolist as a "View order" page, showing all the...
The FULL tutorial is available after the purchase: in the Readme file of the official repository you would get invited to.
Get the Source Code: All 50 Premium Examples for $99 Only Project Examples for $59