# Shopper: a headless e-commerce admin panel for Laravel

> Shopper is a Laravel package that gives an application a complete store administration interface, covering catalogue, orders and customers, and it is headless, so the storefront is yours to build. It suits a Laravel developer who has the storefront written and does not want to write the back office, and the 3.0 release candidates are a migration to think about.

**shopperlabs/shopper** — Headless e-commerce administration built with Laravel to create and manage online store. 

- Repository: https://github.com/shopperlabs/shopper
- Website: https://laravelshopper.dev
- Stars: 1,260 · Forks: 189
- Language: PHP
- License: MIT
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/shopperlabs-shopper

## What the package is, and the problem it names

Shopper is a headless e-commerce admin panel built for Laravel 11.0 and above, and it includes everything an online store application needs on the administration side. The reasoning in the README is direct. Building ecommerce websites has become a convoluted and confusing process that leaves developers unsatisfied, and the project wants to turn that around to the simpler side and get back to basics. Headless is the word that carries the design. The package provides the back office, the catalogue management, the order handling and the customer administration, and it does not dictate how the storefront is built, so a developer can use Blade, Livewire, Inertia or a separate front end. The primary language is PHP, the licence is MIT, the homepage is laravelshopper.dev, the last push was on 2026-10-05, and the releases are v3.0.0-rc.3, v3.0.0-rc.2 and a v2.12.0 stable. The default branch is `2.x`, which is worth noting, since the 3.0 line is in release candidate while the branch people clone by default is the 2.x one.

## Installing it, and the artisan command that follows

The full instructions are on the installation guide, and the quick start is two commands. For advanced users, run this in your terminal to install Shopper from the command line:

```bash
composer require shopper/framework
```

and then run the installer in your project:

```php
php artisan shopper:install
```

The package is published on Packagist as `shopper/framework`, and the Artisan command is the piece that does the work of wiring the package into the application, publishing the assets, creating the database tables and setting up the permissions. That is the standard shape for a Laravel admin package, and the reason the composer command alone is not enough. The README also says the best place to learn Shopper is by reading the documentation or following some tutorials, which is a reasonable statement for a package whose surface area is large.

## The two-package front end, and how it is built

The package manifest shows that Shopper ships its own front end assets, and that is the part most likely to surprise you. There are two JavaScript bundles, the panel and the sidebar, each built by a script in `scripts/build.js`, and the CSS is compiled by the Tailwind CLI from `packages/admin/resources/css/shopper.css` into `packages/admin/dist/shopper.css`. The dev script runs the panel and sidebar builds in parallel, and each of those in turn runs the CSS and the JavaScript builds. The stack is Tailwind CSS 4 with the forms and typography plugins, esbuild for the JavaScript, Alpine.js with the focus, floating-ui and tooltip plugins, and `shiki` for syntax highlighting, which is presumably for the code display in an order or product description. The `prettier-plugin-blade` is a useful detail, since it means the Blade views are formatted with the same tool as the rest.

## The monorepo layout, and the quality tooling

The repository root shows a monorepo with a `packages/` directory, a `monorepo-builder.php` script, a `composer.json` alongside a `package.json`, and separate `tests/` and `scripts/` directories. The PHP side carries a `phpstan.neon` with a `phpstan-baseline.neon`, which is the standard static analysis setup, and a `pint.json` for code style, plus a `rector.php` for automated refactoring. The test configuration is the interesting part. There are four PHPUnit configurations, `phpunit.xml.dist` and three variants for `phpunit.mysql.xml`, `phpunit.pgsql.xml` and `phpunit.sqlite.xml`, which means the test suite runs against three different database engines, and there is a `testbench.yaml` for the Orchestra Testbench harness that Laravel packages use to boot a throwaway application. Running the same tests against MySQL, PostgreSQL and SQLite is a strong signal for a package whose whole purpose is a set of database migrations and queries.

## Contributing, and how to report a security problem

The contributing guide is a separate `CONTRIBUTING.md` in the repository root, and the README points to it for details and a todo list, which is the arrangement for a project with a maintained backlog. The security policy is the one instruction worth quoting exactly, since it is not the usual advice. If you discover any security related issues, please email arthur@shopperlabs.co instead of using the issue tracker. That is a deliberate choice, and it means a vulnerability report does not become a public issue. Contact is otherwise handled through a Twitter account for announcements and updates and a Discord server for chat, and the project is sponsored through GitHub Sponsors, where a sponsor's logo and link appear on the page. The licence is MIT for the Shopper Framework specifically, and there is a separate `LICENSE.md` in the repository root, which is worth reading if you are building on it commercially.

## Where the project sits, and what is changing

Two things frame this package. The first is the relationship to FilamentPHP, which appears in the credits alongside the two named authors, and the topics list names Livewire and Tailwind CSS, which are the building blocks of that ecosystem. Shopper sits in the Laravel admin-panel space alongside Filament rather than replacing it, and the difference is that Shopper is purpose-built for commerce, with a domain model of products, orders and customers rather than a generic resource CRUD over your own tables. The second is the release state. The project is on Laravel 12, the default branch is `2.x`, and the 3.0 line is shipping as release candidates alongside a 2.12.0 stable, so a new install and an upgrade from 2.x are on different tracks. The version 12 in the Laravel badge and the 11.0 minimum in the README are also different numbers, one describing the current target and the other the floor.

## Conclusion

Adopt Shopper if you are building a Laravel storefront and need a working administration interface for the catalogue, orders and customers. Skip it if you want a complete shop with a hosted storefront, because it is headless and the customer-facing side is deliberately not included. Before you upgrade a 2.x install, note that the project is on 3.0 release candidates alongside a 2.12.0 stable, that the default branch is `2.x`, and that the package requires Laravel 11 or newer.

## FAQ

### What is Shopper?

A headless e-commerce admin panel built for Laravel 11.0 and above, providing the administration side of an online store including catalogue, orders and customers, while leaving the storefront to the developer. It is open source under the MIT licence.

### How do I install Shopper?

Run `composer require shopper/framework` to add the package, then run `php artisan shopper:install` in your project to wire it in. The full instructions are in the installation guide at docs.laravelshopper.dev.

### Which database engines does Shopper test against?

The repository ships four PHPUnit configurations, a default one plus dedicated ones for MySQL, PostgreSQL and SQLite, so the suite runs against three database engines using the Orchestra Testbench harness.

### What is the relationship between Shopper and Filament?

FilamentPHP appears in the credits alongside the two named authors, and the project uses Livewire and Tailwind CSS. Shopper is a commerce-specific admin panel in that ecosystem rather than a generic resource CRUD over your own tables.

## Sources

- [License: MIT](https://github.com/shopperlabs/shopper/blob/2.x/LICENSE)
- [Project website](https://laravelshopper.dev)
- [README](https://github.com/shopperlabs/shopper/blob/2.x/README.md)
- [Releases](https://github.com/shopperlabs/shopper/releases)
- [shopperlabs/shopper on GitHub](https://github.com/shopperlabs/shopper)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/shopperlabs-shopper
