larasell-dev/larasell
Larasell is a Laravel package that adds a lightweight commerce layer to your app: products, carts, checkout, orders, payments, and customer accounts built on Eloquent and Blade, so you can launch a single-vendor store or marketplace without stitching together separate packages.
Larasell (larasell-dev/larasell) is a Laravel commerce package. As of v1.19.1 it ships without a bundled admin panel — that surface was removed in this patch release. Start from the package's service provider and config file after install:
composer require larasell-dev/larasell
php artisan vendor:publish --provider="Larasell\LarasellServiceProvider"
Then read, in this order:
config/larasell.php — the fastest map of what the package actually does in your app (routes, models, drivers, storage).First use case: treat Larasell as the back-office domain layer (catalog, orders, line items, pricing) and build your own UI on top. Since v1.19.1 no longer gives you a free admin panel, the first milestone for a fresh install is a single authenticated CRUD screen (e.g. products) written against the package's models or, better, against its repository/service contracts. That exercise will tell you within an hour whether the package's abstractions fit your app or whether you should only adopt the schema and a subset of services.
If you were relying on the removed admin panel, stay on v1.19.0 until you have a replacement, and pin it exactly ("larasell-dev/larasell": "1.19.0").
Wrap the package, don't scatter it. Create a thin application-level layer (app/Commerce/...) that depends on Larasell's contracts rather than its concrete classes. When a future release changes or removes a surface — as v1.19.1 just did — you edit one adapter instead of grepping your whole codebase.
Bind contracts in a dedicated provider. Register Larasell interface→implementation bindings in your own CommerceServiceProvider, not in AppServiceProvider. It keeps the package's footprint auditable and lets you swap implementations in tests.
Keep your own admin/UI namespace. The v1.19.1 removal is the lesson: never let your application's routes and views live inside a vendor package's panel. Own routes/web.php (or Filament/Nova resources) in your repo, calling package services. This is now the expected integration style, not just a preference.
Order/pricing flows: put multi-step operations (create order → add line items → apply totals → transition status) behind a single application service using DB transactions. Packages of this shape often expose granular model methods; composing them ad hoc in controllers is how you get partially-written orders.
Feature-test against the schema. Use RefreshDatabase with the package migrations and assert on your service layer, not the package's internals. This keeps your suite green across package upgrades.
Upgrade ritual. Because v1.19.1 is a patch release that removed a feature, adopt a hard rule: read the diff/changelog before any composer update, and upgrade patch versions in an isolated PR with the full test suite plus a smoke test of any UI you built.
1.19.0 or 1.19.1 exactly, no ^) and treat every release note as potentially breaking. Consider composer.lock review as part of code review.larasell::admin.*), and any published admin assets/config keys before upgrading.php artisan route:clear && php artisan config:clear && php artisan view:clear (and optimize:clear in production deploys). Route/config caches from 1.19.0 will mask or mimic the removal and waste debugging time.app()->getBindings() or php artisan tinker rather than reading vendor source. Overriding a binding is usually safer than forking.app/ namespace if you truly need it, or migrate to Filament/Nova resources over the package's models. A fork puts you on a divergent upgrade path with no upstream fixes.How can I help you explore Laravel packages today?