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

Gmv Bundle Laravel Package

sylius/gmv-bundle

Sylius GMV Bundle adds Gross Merchandise Value analytics to Sylius stores. It calculates and reports GMV metrics from order data, helping merchants track sales performance, revenue trends, and growth through simple reporting tools.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Unchanged by v1.1.0: sylius/gmv-bundle remains a Symfony bundle with no Laravel service provider, no config publish tags, no Eloquent integration, and no Laravel-facing API. The release is an infrastructure-compatibility change, not a re-architecture — nothing in it introduces a framework-agnostic surface. The bundle is still structurally coupled to Sylius's domain model (sylius/order-bundle, sylius/core-bundle, Doctrine ORM mappings, resource configuration), which Laravel does not share. What the release does confirm is the direction of coupling: the package's version line is now explicitly tied to Sylius's version line, which makes the framework boundary tighter, not looser.

Integration feasibility. The three viable paths from the prior assessment stand, and the release reorders their appeal slightly:

  1. Reference implementation — still the recommended path, and now a lower-risk one: v1.1.0 changed only Sylius compatibility, which strongly implies the GMV calculation logic is stable and has not been touched since v1.0.0. The spec you would port is not a moving target.
  2. Symfony bridge — unchanged; viable only if you already run a Sylius service. Note the bridge now effectively means "Sylius 2.3 or nothing" (see Compatibility below).
  3. Direct install into Laravel — still not recommended, and the release makes it marginally worse: a Sylius-2.3-pinned package will drag in a newer Symfony/Doctrine transitive set than v1.0.0 did.

Technical risk. Overall risk profile improves on maintenance, worsens slightly on installability.

  • Maintenance signal — improved. A v1.1.0 tag following a Sylius 2.3 upgrade is direct evidence the package is being kept alive in step with the platform. The "silent abandonment" failure mode is less likely in the near term than the previous assessment implied. The prior note about the anomalous 2026-10-12 timestamp should be retired: the changelog establishes a real, ordered v1.0.0 → v1.1.0 lineage, and the earlier date should be treated as bad metadata rather than a red flag.
  • Governance — unchanged. Still single-vendor, still Sylius-maintained for its own commercial platform, still no external dependents or community corpus to draw on. A first-time contributor (@pbalcerzak) is a mildly positive community signal but does not constitute a support commitment.
  • Version lockstep — new risk. "Sylius 2.3 upgrade" as the only change in a minor release means the package versions in lockstep with Sylius and inherits Sylius 2.3's Symfony/Doctrine/PHP floors. Pin accordingly, and expect future tags to be compatibility-only rather than feature-bearing.
  • API stability — unresolved. The notes do not state whether the 2.3 upgrade touched only composer constraints and deprecated calls, or also internal signatures. A framework major-upgrade PR is exactly where internal classes get renamed. Read the diff before assuming v1.0.0 knowledge transfers.
  • No functional change. No new GMV features, no new metrics, no documented behavior change. If anything was waiting on capabilities from this package, nothing has arrived.

Key questions. In addition to the prior list (GMV semantics, Sylius hard-dependency, public vs. internal surface, finance reconciliation, test suite):

  • Does v1.1.0 change only composer.json constraints, or does it also modify service definitions, interfaces, or query logic? Read PR #8's diff.
  • What are the exact PHP, Symfony, and Sylius floors for v1.1.0, and does it drop support for Sylius 2.2 or earlier?
  • Are there deprecations introduced in v1.1.0 that signal a v2.0 breaking release?
  • Is the version line now formally coupled to Sylius minor versions, i.e. should we expect v1.2.0 at Sylius 2.4?
  • Does v1.0.0 remain installable, and is there any security or PHP-version reason to prefer v1.1.0?

Integration Approach

Stack fit. Unchanged: poor for Laravel, adequate for Symfony/Sylius. The release adds no Laravel affordances. The one practical delta is that v1.1.0 is a Sylius 2.3 artifact — so any "co-host a Sylius service" plan must now be scoped against a Sylius 2.3 deployment, which is a larger commitment than the v1.0.0 baseline implied.

Migration path. Sequence holds, with one amendment:

  1. Read-only spike (1–2 days). Still the right first move, and now cheaper: because v1.1.0 is compatibility-only, you can read either tag and get the same GMV logic. Read v1.1.0's diff first to confirm that assumption, then read the calculation as before.
  2. Decide build vs. consume. Unchanged and reinforced — the logic is small, stable, and yours to own if you port it.
  3. If consuming, keep the anti-corruption layer. The lockstep versioning now makes this non-optional: your adapter is where Sylius 2.3 → 2.4 churn gets absorbed.
  4. If co-hosting Sylius, pin to the Sylius version v1.1.0 targets and treat the pair as one upgrade unit. Do not assume v1.1.0 works on earlier Sylius minors.

Compatibility. This is the section with the most material change. v1.1.0 raises the floors — expect Sylius 2.3, a modern Symfony range, and a corresponding PHP minimum. Two consequences:

  • Against Laravel: conflict likelihood increases. A higher Symfony floor means fewer resolvable version overlaps with a Laravel app's unrelated symfony/* transitives. Continue to resolve on a throwaway branch with --dry-run; expect a worse outcome than with v1.0.0.
  • Against Sylius: you now have a genuine version-matrix decision. If your Sylius instance is on 2.2 or older, v1.1.0 is not available to you, and the 2.3 upgrade becomes a prerequisite dependency you did not previously have.

Sequencing. No change to priority. This remains a metrics concern, not a platform dependency, and should not jump ahead of first-party work. Within the workstream: define finance-accurate GMV semantics → run the spike against v1.1.0 → build the aggregate → only then decide whether you are borrowing logic or installing code. If you are running Sylius, insert "confirm Sylius version and upgrade path to 2.3" at the front, because that, not the bundle, is the long pole.

Operational Impact

Maintenance. If you port: unchanged — low, small, self-owned, tested against your own data, and the source logic is stable so re-syncing is not a recurring chore. If you depend directly: the calculus improves slightly (upstream is demonstrably alive) but adds a new maintenance obligation — you must track Sylius minor releases, because the bundle's versions now follow them. That is a recurring upgrade task you would not have with a port, and it lands on the same calendar as the Sylius platform's own upgrades.

Support. Unchanged in substance. Still no external corpus, still no peer experience, still vendor-owned with no SLA. A first-time contributor does not change the support posture; treat issues as likely untriaged and plan to read the source. Nothing in the release notes constitutes documentation of the public API or of GMV semantics.

Scaling. Unchanged — an infrastructure release has no bearing on query shape. The scaling answer still depends entirely on whether GMV is aggregated incrementally or scanned per request, and the fix (materialized aggregates plus event-driven updates) is the same work regardless of the package. Watch per-request scans of large order tables and currency-mixing in multi-currency setups.

Failure modes.

  • Silent abandonment — lowered by v1.1.0, not eliminated. Upstream is active today; the structural exposure (single vendor, internal tool, no dependents) remains. Mitigation: pin, vendor, or port.
  • Lockstep version trap (new/magnified) — the bundle now moves with Sylius, so a Sylius upgrade silently becomes a bundle upgrade and vice versa. Mitigation: treat them as one upgrade unit and pin both, or port and cut the cord.
  • Upgrade-PR regressions (new) — framework-upgrade PRs are where internal APIs shift. v1.1.0 may have altered signatures even though the notes describe it as a compatibility bump. Mitigation: diff PR #8 before relying on prior knowledge of the API.
  • Dependency conflict on install — increased by the higher Sylius/Symfony floor. Mitigation: do not install directly into Laravel.
  • Semantic drift — unchanged and still the highest business risk. GMV computed differently from finance's definition (refunds, cancellations, tax, shipping, currency) produces numbers that do not reconcile, and no release note addresses this. Mitigation: reconcile against finance's figures during the spike.

Ramp-up. Unchanged for the port — low, commerce-standard domain logic. Unchanged for reuse — the multi-day cost of learning Sylius's data model remains, with no transferable value to a Laravel team, and it is now compounded by having to learn the Sylius 2.3 release delta too. The release does not reduce ramp-up; it slightly adds to it for anyone consuming directly.

Recommendation. Unchanged in direction, strengthened in confidence: treat sylius/gmv-bundle as a specification, not a dependency. v1.1.0 is a compatibility tag, not a feature release — it tells you the project is alive and that its GMV logic has been stable across a Sylius minor upgrade, which is precisely the profile of a package worth reading and reimplementing rather than installing. Run the two-day spike against v1.1.0, confirm from PR #8 that only dependency constraints moved, extract the formula and edge-case handling, and build it natively behind a domain interface. Adopt the package directly only if you already operate Sylius 2.3 — in which case it is a reasonable fit, but budget for the lockstep upgrade cycle you are signing up to.

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.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums