Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Product Bundle Laravel Package

sulu/product-bundle

Sulu Product Bundle adds product management to the Sulu CMS, letting you create and organize product entities, manage attributes and pricing, and integrate catalog data into your Sulu-based websites and applications.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Unchanged by 0.17.6. Despite being filed alongside Laravel packages, sulu/product-bundle is not a Laravel package. It is a Symfony bundle built for the Sulu content management platform, and it assumes a Sulu application kernel, Sulu's admin UI (React/AbstractBundle admin classes), Doctrine ORM entity mapping, and Sulu's security and localization conventions. It is a CMS-domain module that supplies a Product entity, admin list/form views, and content-type integration for embedding products in Sulu pages. Any architecture that is not a Sulu 1.x application is a fundamental mismatch, not a configuration exercise.

Integration feasibility. Composer-installable in principle. The release history now has a modest update: 0.17.6 is the first tagged release after a multi-year gap (the prior tag was 2018-05-07). That gap still places the package's constraints in the PHP 5.5–7.x / Symfony 2.8–3.x / Doctrine ORM 2.4–2.5 era — a single bugfix commit does not revise composer.json platform constraints, add PHP 8 support, or modernize Doctrine. On a modern Laravel or Symfony 6/7 application, dependency resolution will still fail outright against symfony/*, doctrine/*, and PSR-4-era transitive packages. Even on a legacy Sulu install, this repository is the split-out bundle from the Sulu 1.x line; the same code ships inside the sulu/sulu monorepo, so pulling this package separately creates a version-skew risk against the core you actually run. Note also that 0.17.6 is a 0.x line: per semver, no API-stability guarantee attaches to minor or patch bumps.

Technical risk. Still high, but one data point has moved:

  • Abandonment — revised, not resolved. The 0.17.6 bugfix demonstrates that someone still has commit access and shipped a fix. It does not demonstrate triage of the issue queue, a security response path, a CI pipeline on a supported PHP version, or a release cadence. One commit after a seven-year gap is a weak maintenance signal, and the practical question — "who patches a CVE in a transitive dependency?" — is unanswered. Treat it as lightly maintained by an unknown party, which is not the same as supported.
  • Ecosystem drift. Unaddressed. PHP 8.x compatibility, Doctrine ORM 3.x, and Symfony 6/7 all remain open. Modern static analysis and PHPUnit versions will not run against it without a fork.
  • Ambiguous provenance. A near-zero-adoption split repo for a bundle that lives in a monorepo remains a strong signal of deprecation-by-neglect rather than a supported distribution channel. The 0.17.6 fix is most usefully read as evidence the split repo is sync'd from somewhere, not that it is a distribution channel you should depend on.
  • Silent functional gaps. A product bundle of this vintage predates current expectations around variant pricing, multi-channel publishing, and structured product data; feature completeness against a 2025 catalog requirement should be assumed insufficient until proven otherwise. A "cannot delete a product from the detail view" bug surviving to a 0.17.6 patch is itself a mild signal of thin test coverage in the admin surface.

Key questions for the business sponsor.

  1. Is Sulu already the committed CMS, or is this being evaluated as a way to get product/catalog capability into a Laravel application? If the latter, this is a category error and should be closed now.
  2. If Sulu is committed, why this repository rather than the Sulu\Bundle\ProductBundle shipped in sulu/sulu? Specifically: does the monorepo version at our target core release already contain the 0.17.6 delete fix? If yes, this package has no residual value and should be dropped from consideration.
  3. What is the actual catalog requirement — display-only product references in marketing pages, or a transactional PIM/PIM-lite with variants, pricing, and stock? The bundle's scope is the former.
  4. Who owns a fork if we proceed? The 0.17.6 release does not answer this for us: an unknown upstream committer is not a maintainer of our deployment. Without a named internal owner and a patching budget, adoption is a de facto commitment to vendoring.
  5. Is there a hard constraint (legacy Sulu 1.x site, data already in these tables) forcing reuse rather than a greenfield product model?

Given a composite score of 2.86 and an opportunity score of 29.43, the package still reads as a low-value, high-friction artifact. 0.17.6 is a patch-level bugfix with no API, dependency, or feature change, and it does not alter the composite position. The defensible recommendation is unchanged: do not adopt as a dependency; if Sulu is in the stack, consume the monorepo bundle, and if it is not, treat this as out of scope.

Integration Approach

Stack fit. Effectively zero for Laravel. Laravel's container, Eloquent, Blade, and routing have no overlap with what this bundle expects; there is no adapter layer and writing one would mean reimplementing Sulu's admin and content-type machinery. For Symfony applications, fit is limited to Sulu 1.x — a plain Symfony app without Sulu's bundles, PHPCR content layer, and admin stack will install the code but cannot boot its services. 0.17.6 changes nothing here.

Migration path. Two viable routes, neither of which is "composer require this package":

  • Sulu-native route (recommended if Sulu is committed). Use the product bundle as shipped in sulu/sulu at the version matching your core, and pin core and bundle together. If the split package is genuinely required, vendor it into src/ or a private Satis/Composer path repository, pin the commit SHA, and record the fork point in an ADR. Do not depend on Packagist resolution for a lightly maintained 0.x package. If you do end up consuming 0.17.6, pin the exact tag and its commit SHA — a 0.x patch bump is permitted to move under you.
  • Extraction route (if the goal is a Laravel product catalog). Treat this repository as a reference specification, not a dependency. The Product entity, its field set, and the admin form layout are useful prior art for designing Eloquent models and Nova/Filament resources. Budget this as design input, not integration work — no code port is expected.

Compatibility. Assume PHP ≤7.x, Symfony 2.8/3.x, Doctrine ORM 2.4/2.5, and Sulu 1.x. 0.17.6 did not widen any of these. Before any spike, run composer why-not against your target platform to confirm the conflict surface; in most modern stacks the answer will be a hard block on symfony/framework-bundle and doctrine/orm simultaneously. Plan for a containerized legacy PHP runtime if a proof-of-concept is genuinely required.

Sequencing.

  1. Scope gate (1–2 days). Confirm the platform decision — Sulu versus not. If not Sulu, stop; document the rejection and the reference-value use.
  2. Provenance check (1 day). Diff 0.17.6 against the product bundle in the sulu/sulu release you would actually run, and specifically confirm whether the detail-view delete fix is already present upstream. If identical or a strict subset, discard this package from consideration — this is now the single highest-value check, because a one-line bugfix is exactly the kind of change that lands in the monorepo first.
  3. Compatibility spike (3–5 days, only if step 2 justifies it). Stand up a Sulu 1.x skeleton, install the bundle from a pinned fork, and exercise the admin list, form, delete action, and content-type embed. Capture PHP 8 failures explicitly.
  4. Requirements gap analysis (1 week, parallel). Map the business catalog requirements against the bundle's entity and admin surface; identify variants, pricing, multi-channel, and media gaps.
  5. Fork decision (gate). If proceeding, assign an owner, create the private fork, add a CI pipeline on the target PHP version, and schedule a quarterly dependency review. If no owner can be named, the answer is no.

Operational Impact

Maintenance. Still the dominant cost, with one nuance. The package now has a demonstrated, if sporadic, patch path — which marginally lowers the cost of staying current with this code and does nothing to lower the cost of the surrounding Sulu 1.x stack. Expect an initial remediation pass (PHP 8 compatibility, Composer constraint widening, test harness resurrection) measured in weeks, followed by ongoing treadmill work that scales with how much of the Sulu stack you also carry. A rough steady-state is 5–15% of one engineer for a lightly used fork, materially more if the admin UI is customized. Do not discount that estimate on the strength of one bugfix release; a single patch is not a cadence, and you cannot infer responsiveness from it.

Support. No vendor, no maintainer of record, no SLA, no security feed. Community support is effectively nil at 10 stars and 0 dependents — there is no crowd to source answers from. 0.17.6 shows a fix can appear, but it also illustrates the failure mode: a user-visible admin defect (delete on the detail view) persisted long enough to require a dedicated patch, with no visible triage trail or test added alongside it. Internal documentation will have to be written from the source, and the source is the only specification.

Scaling. Uncharacterized. There are no published benchmarks, and a 2018 Doctrine ORM entity model with default fetching will show N+1 behavior on catalog listing pages as product counts grow. Treat any volume above a few thousand SKUs as requiring profiling and query work before commitment. The admin UI is server-rendered Sulu 1.x, which will feel dated to editors and will not benefit from later Sulu performance work.

Failure modes.

  • Silent resolution drift. An unpinned install resolving a stale transitive dependency, or a floating 0.x constraint picking up an unreviewed 0.17.x patch, producing runtime failures far from the change.
  • PHP/Symfony upgrade dead-end. The organization upgrades the platform and this bundle blocks it; the fork work becomes urgent and unscheduled.
  • Security exposure. An unpatched transitive CVE with no upstream path and no disclosure channel; the fix is a fire-drill fork patch, since a bugfix release is not a security process.
  • Admin regression. Sulu 1.x admin assets are brittle against browser and JS toolchain changes; breakage appears without any code change on your side. The 0.17.6 delete bug is an example of the class.
  • Maintenance-signal trap. A sporadic patch creates false confidence in upstream liveness and discourages the fork, CI, and ownership work that adoption actually requires.
  • Knowledge cliff. With no upstream of record and no dependents, there is no external bench of people who have debugged this code. Bus factor is the size of your team.

Ramp-up. Steep and multi-layered: engineers need Sulu's bundle conventions, its admin abstraction, Doctrine ORM mapping in a CMS context, and enough of Sulu's content layer to understand how products are embedded into pages. Realistic time-to-productivity is two to four weeks for a senior PHP engineer with Symfony experience, longer without. None of that investment transfers to a Laravel-based future, which is the strategic argument against adoption: the cost is high, the resale value is zero, and the artifact is still years behind — one bugfix does not change that arithmetic.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource