config/shopper/ during installation. These files control the admin panel behavior, model resolution, feature flags, media handling, and more. Component configuration files are published separately on demand.
Configuration Files
The following files are published byphp artisan shopper:install:
| File | Package | Purpose |
|---|---|---|
admin.php | admin | Admin panel prefix, domain, roles, branding, locales |
auth.php | admin | Authentication guard, 2FA toggle, password reset |
core.php | core | Database table prefix, barcode type |
features.php | admin | Feature flags for each admin module |
media.php | admin | Media storage, MIME types, max sizes, image conversions |
models.php | admin | Model class resolution for every Shopper entity |
orders.php | core | Order number generator format |
routes.php | admin | Additional middleware and custom route files |
settings.php | admin | Settings page registry |
shopper/cart (cart.php), shopper/payment (payment.php), shopper/shipping (shipping.php), and shopper/stripe (stripe.php).
Admin Panel
By default, the admin panel is accessible at/cpanel. You can change this prefix in config/shopper/admin.php or by adding the SHOPPER_PREFIX variable to your .env file:
config/shopper/admin.php
SHOPPER_DOMAIN environment variable. This uses Laravel’s Route::domain() under the hood:
config/shopper/admin.php
config/shopper/admin.php
primary_color key accepts any Filament color constant. After changing your primary color in your Tailwind config, update this value to keep Filament elements consistent.
Avatar Colors
Default colors for auto-generated user avatars (UI Avatars). Values are hexadecimal without the# prefix:
config/shopper/admin.php
Locales
Available languages in the admin panel. Each entry maps a locale code to a display label and a flag code (ISO 3166-1 alpha-2, lowercase) used for the flag SVG:config/shopper/admin.php
Custom Pages
If you create custom Livewire page components for the admin panel, configure the namespace and view path:config/shopper/admin.php
Database Table Prefix
All Shopper tables are prefixed withsh_ by default so they do not conflict with your application’s existing tables.
config/shopper/core.php
Feature Flags
Thefeatures.php config controls which sections of the admin panel are active. Set any feature to FeatureState::Disabled to hide it from the UI entirely:
config/shopper/features.php
'review' => FeatureState::Disabled and the reviews page, sidebar link, and product form tab disappear from the admin panel.
Models
Shopper resolves model classes throughconfig/shopper/models.php. To use your own model for any entity, replace the class in this file. The entire system (admin panel, relationships, route bindings) uses the configured class automatically.
Models that have media support (images, thumbnails) use the Shopper\Models namespace from the admin package. Models without media use the Shopper\Core\Models namespace from the core package. When swapping a model, extend the class listed in the config comment for that entry.
config/shopper/models.php
Authentication
Theauth.php config controls the authentication guard, two-factor authentication, and password reset flow for the admin panel:
config/shopper/auth.php
2fa_enabled to true to require two-factor authentication for admin users. See the Two-Factor Authentication page for setup details.
Middleware
Shopper lets you add extra middleware to all authenticated admin routes. This is useful for logging, rate limiting, or custom access control:config/shopper/routes.php
Custom Routes
By default, yourweb.php routes are not loaded inside the admin panel. To add custom routes that share Shopper’s authentication middleware, point to a dedicated route file:
config/shopper/routes.php
Components
Shopper’s admin UI is built from Livewire components that you can override individually. Each feature has a component configuration file listing its pages and components. To publish a feature’s component config, run the publish command with the feature name:config/shopper/components/category.php where you can point any component to your own class. Available features:
| Feature | Config file |
|---|---|
account | components/account.php |
brand | components/brand.php |
category | components/category.php |
collection | components/collection.php |
customer | components/customer.php |
dashboard | components/dashboard.php |
discount | components/discount.php |
order | components/order.php |
product | components/product.php |
review | components/review.php |
setting | components/setting.php |
php artisan shopper:component:publish (no argument).
Settings
Shopper uses a class-based approach for settings pages. Each setting is a class that implements theShopper\Contracts\SettingItem interface. The settings.php config registers which settings are enabled:
config/shopper/settings.php
false.
Creating a Custom Setting
To create your own setting page, extend theShopper\Settings\Setting base class:
settings.php config file:
Programmatic Registration
You can also register settings at runtime through theSettingManager:
Order Number Format
Theorders.php config controls how order numbers are generated. You can customize the prefix, separator, date format, and sequence padding:
config/shopper/orders.php
| Configuration | Result |
|---|---|
| Default | ORD-20260328-000001 |
'prefix' => null | 20260328-000001 |
'date_format' => null | ORD-000001 |
'prefix' => null, 'date_format' => null | 000001 |