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

Sylius Payzen Bundle Laravel Package

kiboko/sylius-payzen-bundle

Kiboko Sylius PayZen Bundle integrates the PayZen (Lyra Collect) payment gateway with Sylius e-commerce stores. It adds a configurable PayZen payment method for secure checkout, letting shop owners manage gateway credentials and payment options directly within Sylius.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Unchanged. The bundle is a Sylius plugin that plugs into Sylius' native payment abstraction (payment method, payment state machine, gateway config form), which remains the correct extension point: PayZen traffic stays inside Sylius' order/payment lifecycle rather than a parallel integration. The v1.0.3 change touches only the bundle's DI extension class (getAlias signature), i.e. framework plumbing, not the payment flow — no architectural drift. PCI scope should still stay low given a hosted/embedded-form gateway, but confirm the plugin never touches PANs.

Integration feasibility. Materially improved. v1.0.3 explicitly lands Symfony 6 compatibility ("Fix getAlias method signature"), which is a direct, if partial, answer to the previously open support-matrix question: the maintainer is actively tracking Symfony 6, and the fix implies the prior release was not cleanly Symfony 6-compatible (the Extension::getAlias() return-type/signature change is the classic Symfony 6 break). Exact Sylius version, PHP version, and CI matrix remain unverified — this release confirms one axis (Symfony 6) and is silent on the rest. Test coverage and payment feature depth (authorize/capture, refunds, partial refunds, multi-currency, 3-D Secure 2/SCA) are still unverified from release notes alone.

Technical risk. Largely unchanged, with one risk reduced and one nuance added.

  • Reduced: "does it work on a modern Symfony?" is now answered for Symfony 6. Active maintenance is confirmed with a second release in the 1.0.x line.
  • Added nuance: a patch-level release (1.0.2 → 1.0.3) that alters a method signature is technically a behavioral/API change. It is safe for consumers who merely install the bundle, but anyone who subclasses the DI extension or overrides getAlias() must re-verify. Treat 1.0.3 as the minimum viable pin, not 1.0.2.
  • Unchanged: ecosystem immaturity (3 stars, 0 dependents) means near-zero community validation; NOASSERTION licensing remains a hard legal checkpoint; single-vendor concentration (Kiboko Labs) remains a continuity risk on a money-movement path.
  • Slight positive: the fix came from a new external contributor (@lloubrie), the first signal of outside participation — weak evidence of adoption, not a substitute for it.

Key questions.

  • Which Sylius and PHP versions are supported alongside Symfony 6, and is there a CI matrix covering the intersection?
  • Is the license compatible with redistribution/embedding in our product? (NOASSERTION still unresolved.)
  • Are webhook/callback payloads signature-verified, and how are replay/idempotency handled?
  • What payment operations are supported: capture, partial refund, cancel, multi-currency, SCA/3-D Secure 2?
  • Does the getAlias signature change in 1.0.3 break any extension points we would subclass?
  • What is the maintainer SLA and disclosure policy for security issues?

Integration Approach

Stack fit. Now better grounded: Sylius on Symfony 6 is explicitly targeted as of 1.0.3. Symfony 5 and 7 remain unconfirmed — do not assume either. Standard Composer dependency plus Sylius plugin enablement (config/bundles.php, config/packages/) should still apply, with no forking required if the Sylius/PHP axis also matches.

Migration path. Unchanged in principle: this is a payment-method migration, not a code migration. Map existing gateway states to Sylius payment states, decouple order data from the old provider, and run the new gateway in parallel behind a per-channel feature flag so a single store can be rolled back without a deploy.

Compatibility. Tighten the pinning guidance: baseline at v1.0.3 (not v1.0.2) to pick up the Symfony 6 fix. Validate against our Composer lock in a branch, confirm the Sylius plugin interface version, and diff the DI extension for any local overrides of getAlias(). Check whether the plugin requires symfony/http-client or guzzle specifically, and scan for deprecated Symfony APIs beyond the one just fixed.

Sequencing.

  1. License review and code audit (signature verification, secret handling, logging of sensitive data).
  2. Confirm the remaining support matrix (Sylius + PHP) and install v1.0.3 in a clean Sylius skeleton on Symfony 6 with a PayZen sandbox account.
  3. Configure the payment method in the admin UI; run sandbox end-to-end: authorize → capture → refund → cancel.
  4. Validate callback/webhook reliability (retries, idempotency, signature) and failure-state handling in Sylius.
  5. Staging pilot on a low-traffic channel; then production pilot; then full cutover with a rollback runbook.

Operational Impact

Maintenance. Slightly better than before: two releases in the 1.0.x line with an upstream-compatibility fix signals the maintainer is responsive to framework drift, which lowers (but does not eliminate) the "abandoned plugin" scenario. Still expect to carry upgrade work whenever Sylius/Symfony shifts, and pin deliberately at v1.0.3. Budget for periodic review against Sylius deprecations and PayZen API changes; note that patch releases can carry signature-level changes, so read changelogs before bumping.

Support. Effectively vendor-dependent (Kiboko Labs). One external contributor on one PR does not create a community knowledge base — with 0 dependents and 3 stars, issues still fall to the vendor or in-house. Confirm whether a paid support/SLA arrangement exists before committing production traffic.

Scaling. Unchanged: the plugin is stateless, so scale follows PayZen's gateway limits and our handling of callbacks and state transitions. Watch webhook volume at peak, database contention on payment-status updates, and timeouts on long PayZen flows. Keep idempotent callback processing and indexes on order/payment identifiers.

Failure modes.

  • Missed or delayed webhooks → orders stuck in "awaiting payment"; need a reconciliation job against PayZen.
  • Duplicate/out-of-order callbacks → double capture or state corruption; need idempotency keys and state guards.
  • Invalid signature handling → fraud/repudiation risk if verification is weak or absent.
  • Credential leakage in logs; store keys via Sylius/Doctrine encryption or a secrets manager.
  • Currency/locale mismatches in multi-store setups.
  • New: skipping the 1.0.3 upgrade on a Symfony 6 host, or subclassing the DI extension without re-validating the changed getAlias signature → boot-time container errors.
  • Vendor abandonment or license ambiguity — single-maintainer risk; track in the risk register with a documented exit plan (fallback to a direct PayZen integration).

Ramp-up. Roughly unchanged, marginally easier: expect a half-day for a Sylius-fluent engineer to install and configure, plus 1–2 days for a full sandbox pass including callbacks and refunds — the Symfony 6 fix removes a known landmine from that path. Require team familiarity with Sylius payment state machines, the PayZen merchant console, and PSD2/SCA basics. Adoption is still near-zero, so budget extra time for reverse-engineering behavior rather than relying on documentation or community answers.

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.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox