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

Payum Bundle Laravel Package

sylius/payum-bundle

Sylius PayumBundle integrates the Payum payment abstraction with Sylius, enabling configurable payment gateways, secure capture and authorization workflows, and seamless checkout payment processing for Symfony-based e-commerce stores.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit sylius/payum-bundle is a Symfony bundle, not a framework-agnostic library, and its fit with a Laravel stack is effectively zero. It wires the Payum payment abstraction into Sylius's e-commerce domain model — Payment, PaymentMethod, GatewayConfig, encrypted gateway credentials, a payment state machine, and admin/checkout UI hooks — and it hard-depends on Sylius's resource registry and core bundles. A Laravel application has no bundle concept, no service-provider registration path, and no way to satisfy those dependencies without installing Sylius itself.

The reusable asset sits one layer down: payum/payum core is framework-agnostic and supplies the genuinely valuable concepts — gateway factories, authorize/capture/refund action pipelines, secure token-based payment links, and pluggable storage. That is available without this bundle and is the correct target if the goal is a uniform multi-gateway abstraction inside Laravel.

Integration feasibility Two viable paths, neither of which consumes this package directly:

  1. Adopt Sylius wholesale as a separate Symfony service. The bundle arrives for free as a transitive dependency of sylius/sylius; integration work is configuration plus custom gateway factories. This is a platform decision, not a package decision.
  2. Use payum/payum core inside Laravel, implementing StorageInterface against Eloquent and re-building what Sylius gives you for free: credential encryption, gateway configuration UI, payment state transitions, and token lifecycle. Feasible for a senior team, but a multi-week build, not an install.

If payment coverage is limited to a hosted-checkout provider or two, Laravel-native options (Cashier, Omnipay, vendor SDKs) reach the same outcome with far less surface area. Payum earns its complexity only when many providers must share authorize/capture/refund semantics.

Technical risk

  • Relevance risk high, code risk low. The package is small, stable, MIT-licensed, and only has value inside Sylius.
  • Read-only repository. This is a monorepo subtree split with no independent issue tracker or release cadence. Every fix, security included, arrives only via a Sylius core release; you inherit Sylius's release train and breaking-change policy.
  • Metric caveat. 11 stars and 0 dependents understate real usage — it is pulled transitively and the dependents counter cannot see that. The 0.355 score correctly reads as "low standalone opportunity," not "unhealthy."
  • Strategic transition. Sylius has been introducing its own PaymentRequest abstraction and is moving away from Payum long term. Treat this as a supported-but-transitional bridge and confirm deprecation status against the target Sylius major.
  • Knowledge concentration. Payum's conceptual model (gateway → factory → action → request/reply → token → storage) is steep; few engineers can debug a stuck payment state machine under production pressure.

Key questions

  • Are we adopting Sylius, or evaluating this as a Laravel payment library? If the latter, the answer is no — stop here.
  • Which flows are in scope (hosted redirect, direct API, authorize-then-capture, partial refunds, SCA/3DS2, webhooks), and which have maintained Payum gateway factories versus needing custom ones?
  • What is our PCI scope, and does a hosted-page/tokenized model satisfy it?
  • Who owns upgrades when Sylius ships a major that changes payment or state-machine contracts?
  • Is multi-store, multi-currency, or per-region gateway configuration required? Sylius models this well; a Laravel rebuild would not.

Integration Approach

Stack fit Poor as a direct dependency in Laravel; acceptable only as part of a Sylius deployment. Inside Sylius the bundle is already present — integration is registering gateway factories, configuring sylius_payum gateways, and extending the payment state machine. In Laravel, treat it as a reference implementation: study how Sylius structures gateway config, credential encryption, and token handling, then port the patterns, not the code.

Migration path

  • Greenfield Laravel: do not adopt. Choose payum/payum core only if a uniform multi-gateway abstraction is a hard requirement; otherwise vendor SDKs or Omnipay. Build storage adapter and token middleware yourself.
  • Sylius → Laravel replatform: the bundle is the thing being left behind. Inventory the Payum actions and gateway factories actually in use — that inventory is the migration scope. Payments usually move last; use a strangler boundary (Sylius owns capture, Laravel owns the rest) before cutover.
  • Laravel → Sylius for commerce: the bundle arrives automatically; run a gateway-parity spike before committing.
  • Hybrid (recommended for Laravel-first orgs needing Sylius payment breadth): keep Sylius as an internal payments service behind an API, containing the Symfony footprint.

Compatibility Laravel and Symfony can coexist in one PHP runtime but not in one application container. Any hybrid must be two deployables communicating over HTTP or a queue, never a shared autoloader. Pin the Sylius major explicitly and record the implied PHP and Symfony floors in the dependency policy — they will gate unrelated upgrades.

Sequencing

  1. Confirm the platform decision (Sylius vs. Laravel-native); everything downstream depends on it.
  2. Spike gateway parity against the real provider list, including refunds and 3DS/SCA. 3prove credential encryption and key rotation before any live traffic.
  3. Build token lifecycle and webhook idempotency; test replay and out-of-order delivery.
  4. Only then wire checkout UI and admin configuration.
  5. Run parallel processing against the incumbent provider in test mode before cutover.

Operational Impact

Maintenance Effectively zero independent maintenance — the read-only split means you track sylius/sylius. Budget for annual Sylius majors with meaningful breaking changes to admin UI and, historically, bundle structure, plus Payum gateway packages drifting behind provider API versions. The real maintenance load is provider API churn, not this package.

Support No first-party support; community channels run through the Sylius monorepo. Commercial options exist via Sylius and agency partners — worth pricing if payments are revenue-critical. Internal support requires at least one engineer fluent in Payum's action pipeline; that is a hiring and retention consideration, not a footnote.

Scaling Payment volume is rarely the bottleneck; state persistence is. Token tables, gateway-config lookups, and payment-state transitions churn on every checkout retry and webhook, so watch indexing and lock contention on those tables. The state machine also serializes poorly across horizontally scaled workers unless capture and refund transitions are made idempotent and safely retryable.

Failure modes

  • Silent state divergence: a webhook lands out of order or twice, and the Sylius payment state no longer matches the PSP. Idempotency keys and reconciliation reporting are mandatory, not optional.
  • Stuck payments: an exception mid-action leaves a payment in a non-terminal state with no automatic recovery path. Plan an operator runbook and an admin re-drive mechanism.
  • Credential exposure: gateway credentials are encrypted at rest but decrypted in-process; key rotation without downtime needs a designed procedure.
  • Upgrade breakage: a Sylius major changes payment contracts and the state machine while the team is mid-quarter — this is the most likely unplanned-work source.
  • Provider deprecation: a Payum gateway package goes stale against a PSP API version with no maintainer, forcing an in-house factory on a deadline.

Ramp-up Assume weeks, not days, for a competent Symfony engineer to become productive on Payum semantics, and longer for anyone owning gateway factories or debugging production payment failures. The bundle's own API surface is small; the cost is entirely conceptual. Front-load a single engineer as owner, document the action pipeline and token lifecycle for the team, and treat that documentation as a deliverable — with a low bus factor on payment code, it is the difference between a contained incident and an outage.

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.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core