enhavo/shop-bundle
Enhavo Shop Bundle adds e-commerce functionality to the Enhavo CMS, an open-source PHP content management system built on Symfony and Sylius components. Distributed as a subtree split of the main Enhavo repository, it helps build flexible, complex data-driven shops with a clean, usable interface.
Architecture fit cannot be assessed against Laravel, because this is not a Laravel package. enhavo/shop-bundle is a Symfony bundle and a read-only subtree split of the Enhavo CMS monorepo. There is no service provider, no config/shop.php published config, no Laravel package discovery. It is designed to be registered inside a Symfony kernel via bundles.php and bootstrapped by Enhavo's application scaffolding. The dependency graph it assumes is Enhavo core bundles (resource, routing, block, media, user/permission) plus Sylius components for commerce primitives (product, order, pricing, cart/checkout). A TPM should treat "Laravel compatibility" as zero and make that finding the first line of the decision record — otherwise the entire evaluation is being scoped against the wrong stack and every subsequent estimate is fiction.
Integration feasibility, ranked by realism:
Technical risk is high and concentrated in provenance, not code quality. The code may well be fine — it ships inside a working CMS — but the evidence available to a decision-maker is thin: read-only split (issues and PRs land upstream; this repo's tracker is a dead end), zero stars and zero dependents (no observable production usage, no third-party examples), no documentation beyond a logo and a pointer, implicit coupling to Sylius component majors that have historically carried breaking changes, and single-vendor bus factor. For a module that touches carts, orders, and pricing — money — the absence of community validation is an unacceptable evidence gap absent an internal spike.
Key questions to resolve before any commitment:
composer.json constraints: PHP major, Symfony major, Sylius component majors, Doctrine ORM/DBAL. Are any already EOL?Stack fit. The honest statement is PHP + Symfony full-stack + Doctrine ORM + Twig + Sylius components. Against a Laravel target (Blade/Inertia, Eloquent, service providers) the fit is zero on container, ORM, and templating simultaneously — three independent incompatibilities, not one. Fit is high only where the application is already Symfony and preferably already Enhavo, in which case the shop bundle requires no architectural negotiation and the decision collapses to sequencing and version pinning.
Migration path. Do not plan a migration to this package from a Laravel codebase. Choose explicitly:
Compatibility gate. The composer constraint matrix is the go/no-go, and it must be resolved before any design work. Verify PHP and Symfony majors against the current pinned versions, Doctrine ORM/DBAL against target databases, and Sylius component majors against whatever Sylius constraints other dependencies already pull — a version conflict here is a silent blocker that surfaces weeks into a spike. Confirm PHP extension requirements and whether the admin UI assumes a specific asset build toolchain.
Sequencing.
Maintenance. Maintenance does not happen in this repo — it happens in the monorepo. Your upgrade cadence is therefore bound to a third party's release cadence, and your security posture is bound to their responsiveness on Sylius component CVEs. Institute a quarterly review of upstream release activity and Sylius constraint currency; if either stalls, flag the dependency at-risk and activate the exit plan. Internal cost is front-loaded into source reading, because documentation-driven onboarding is not available — budget a spike, not a rollout.
Support. No commercial support, no SLA, no visible maintainer bench beyond the upstream project, and an issue tracker on the split that is not actionable. Escalation is upstream community channels only. For a commerce surface handling money, orders, and inventory, this is the weakest dimension in the assessment and should be stated plainly to stakeholders rather than softened.
Scaling. Application-level scaling is conventional Symfony/Doctrine: horizontal PHP-FPM behind a load balancer, shared session/cache, read replicas for catalog reads. The bundle imposes no unusual scaling model. The risk sits in the CMS surface bundled alongside it — Enhavo's block/media abstractions can produce heavier queries and file-storage coupling. Load-test the storefront and checkout paths specifically; do not assume CMS read patterns generalize to checkout traffic.
Failure modes to design against.
Ramp-up. Assume weeks, not days, for a competent Symfony engineer to be productive — not because the code is obscure but because there is no documentation, two opinionated abstraction layers (Enhavo resources, Sylius components) to internalize, and an admin UI whose conventions must be learned from source. Plan a senior-engineer-led spike with a written internal summary as the deliverable; that summary becomes the onboarding document the package does not provide. If the team is not already a Symfony shop, the ramp-up is the framework, not the bundle, and that is a hiring decision masquerading as a dependency decision.
How can I help you explore Laravel packages today?