The admin is unstyled
The package ships no CSS build. Your application's Tailwind build styles it.
- Add the
@sourcelines thatphp artisan ecommerce-admin:installprints to your Tailwind entry (for exampleresources/css/app.css). Check the relative paths from that file tovendor/. - Make sure Tailwind 4 and daisyUI 5 are installed.
- Rebuild:
npm run build, or runnpm run dev. - The layout loads
resources/css/app.cssandresources/js/app.jsonly whenpublic/build/manifest.jsonor a Vite dev server exists. If your entries have other names, set them withap.ecommerceAdminLivewire.layout.viteEntries.
See Front-End Setup.
Tabs are blank on the product, promotion, or customer form
daisyUI releases after 5.0.x hide .tab-content, so the component library's tab panels render empty. Pin daisyUI:
npm install -D daisyui@~5.0
npm run build
Keep the pin until livewire-ui-components#119 is fixed.
The description editor does not load
The product description uses TinyMCE from the component library's published assets.
- Run
php artisan vendor:publish --tag=artisanpack-assets. - Load
/vendor/artisanpack-ui/js/tinymce/tinymce.min.json the page. - Import
vendor/artisanpack-ui/livewire-ui-components/resources/js/tinymce-editor.jsin yourapp.js.
Re-publish after upgrading the component library.
Charts or the dashboard sparkline are missing
The charts need ApexCharts as a global:
import ApexCharts from 'apexcharts';
window.ApexCharts = ApexCharts;
The sparkline also needs vendor/artisanpack-ui/livewire-ui-components/resources/js/sparkline.js imported. Also check the user holds report.view: the sales widget is hidden without it.
Date pickers do not open
Set window.flatpickr:
import flatpickr from 'flatpickr';
import 'flatpickr/dist/flatpickr.min.css';
window.flatpickr = flatpickr;
Every screen returns 403
Nothing grants access yet. The engine denies every ability by default. Define the umbrella gate in a service provider's boot():
Gate::define( 'ecommerce.admin', fn ( $user ) => $user->is_admin );
With cms-framework, assign the shop-manager role or individual ecommerce.* permissions, and run php artisan ecommerce:sync-permissions if the permissions are missing. See Authorization.
One screen returns 403
The user can enter the admin but lacks that screen's ability. Check the screen in Authorization. Remember that inventory uses inventory.*, not product.*.
The command palette is empty or missing
spotlight.enabledisfalse. Set it totrue.- The component library's spotlight route (
artisanpack.spotlight) is not registered, so the Search button is not shown. Check the library's spotlight is enabled. - Your host spotlight class (
artisanpack.livewire-ui-components.components.spotlight.class) throws or returns something unexpected. The admin's results are appended after it through theap.livewireUiComponents.spotlightCommandsfilter; a broken host class stops the request before that. - The user has searched more than 120 times in the last minute. Results return after the minute passes.
- The user holds none of the result sources' abilities.
See Command Palette.
Real-time updates never arrive
All of these are needed:
realtime.enabledistruein this package's config.artisanpack.ecommerce.graphql.subscriptionsistruein the engine's config.- Laravel Echo is set up as
window.Echo, with a running broadcaster (for examplephp artisan reverb:start) and a queue worker for broadcast jobs. - The user holds
order.viewAny,product.viewAny, andwebhookSubscription.viewAny.
If any is missing, the screens quietly skip subscribing. See Real-Time Updates.
"Too many changes in a short time"
The user hit the engine's ecommerce.admin.mutate limiter (120 Livewire updates a minute by default). Wait for the time in the message. To change the limit, redefine that rate limiter in your application.
A product is read-only for an admin
Its type comes from a satellite that is not installed. The form shows a warning banner. Reinstall the satellite, or change the product's type.
A product import stalls or runs twice
- Check a queue worker is running on
imports.queue(or the default queue). - The job can run for up to an hour. Set the queue connection's
retry_afterabove 3600 seconds, or the queue hands the job out again while it is still running. - Use Resume to continue a stopped import from the next row.
See Product CSV Import and Export.
The admin does not appear in the cms-framework menu
admin.auto_register_cms_navisfalse, oradmin.routes_enabledisfalse.- The user cannot open any admin screen.
- A CMS menu entry already uses the same slug (
ecommerce-…); the CMS entry wins.

