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.
This project contains two Filament panels. They are defined in these provider files:
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.
->getSearchResultsUsing()
and ->getOptionLabelUsing()
searching for customer by name/email/phone->formatStateUsing()
method