sylius/admin-bundle
Sylius AdminBundle delivers the default administration panel for Sylius stores, offering a clean Symfony and Twig interface to manage products, orders, customers, promotions, taxes, and settings. It provides reusable grids, forms, and resource CRUD screens that speed up building custom e-commerce ba...
First, the honest framing: as a Laravel developer you cannot composer require sylius/admin-bundle and get an admin panel. This is a Symfony bundle and the back-office UI of the Sylius e-commerce platform — it boots off the Symfony kernel, Symfony DI, Twig, Sylius ResourceBundle/GridBundle/UiBundle, and Symfony Security. Laravel's container, Blade, Eloquent, auth guards, and Vite pipeline do not map onto any of that. Composer may resolve the package, but nothing will render.
If you are evaluating it, look at sylius/sylius (the distribution), not this repo. This is a read-only subtree split; all development and PRs live in the monorepo, and release versions track Sylius releases. The 7 stars / 0 dependents are split-repo artifacts — not a health signal.
Where to look first (in a real Sylius app, not a Laravel one):
Resources/config/routing.yml and Resources/config/app/*.yml — how grids, forms, menus, and resources are pulled in.Resources/views/ — every screen is an overridable Twig template; 80% of customisation happens here.DependencyInjection/Configuration.php — the actual sylius_admin config surface.Resources/config/services*.xml — service IDs you decorate or replace.First realistic use case from a Laravel codebase is not editing this bundle; it is standing up Sylius as a separate Symfony service and consuming it from Laravel. Concretely: a Sylius instance at shop.example.com with its admin at /admin, a matching admin account created via bin/console sylius:admin-user:create, and Laravel calling the Sylius API for catalog/orders. Do that end-to-end (create a product in Sylius admin, read it back in Laravel) before touching any templates.
Pattern 1 — Sylius sidecar, Laravel as system of record. The realistic Laravel pattern. Sylius runs as its own Symfony app with this admin attached; Laravel owns auth/SSO, business workflows, and the customer-facing app, and integrates via API, webhooks, and a message queue. Keep database ownership clean (one service owns commerce tables), and never reach across from Eloquent into Sylius's schema.
Pattern 2 — Sylius admin as the operator UI, Laravel admin for everything else. Ops staff manage catalog/orders/promotions in the Sylius admin; domain-specific back-office tools (fulfilment quirks, B2B pricing, internal ops) live in Laravel/Nova/Filament and call Sylius APIs. Prevents you from rebuilding commerce CRUD in Laravel.
Pattern 3 — Headless: ignore this bundle. Expose Sylius via API Platform, build the admin in Laravel (Filament/Nova) against those APIs. Choose this when UI is a core differentiator or when you cannot staff a Symfony team — you lose template-override leverage but keep one framework in the org.
Inside the Sylius app, customisation is override-first (not fork):
templates/bundles/SyliusAdminBundle/.... Prefer {% extends '@!SyliusAdmin/...' %} with block overrides over copy-paste so upstream fixes reach you. Block names differ across Sylius 1.x → 2.x, which materially restructured the admin.sylius_grid definition. Re-declare the grid with the same name in config/packages/sylius_grid.yaml to add a column (e.g. type: twig with a template) or filter, rather than touching controllers.Integration tips.
composer update.templates/bundles/, config/packages/, and your own bundle namespace so upgrades don't fight you.ROLE_ADMINISTRATION_ACCESS, and an admin firewall with its own provider is the norm; SSO is where you reconcile them. Watch switch_user and admin regex scoping carefully — a mis-scoped %sylius.security.admin_regex% is a common cause of unexplained 401/403 on /admin.master.Sylius/Sylius release cadence and community instead.How can I help you explore Laravel packages today?