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.
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:
sylius/sylius; integration work is configuration plus custom gateway factories. This is a platform decision, not a package decision.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
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.Key questions
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
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.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
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
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.
How can I help you explore Laravel packages today?