setono/sylius-quickpay-plugin
Sylius plugin that integrates the Quickpay payment gateway, letting stores offer Quickpay checkout and payment methods through Sylius's native payment workflow. Configure credentials and payment methods in the admin, then accept card payments at checkout.
Architecture fit. Sylius plugins are Symfony bundles that extend the core through service overrides, form types, and gateway action classes. setono/sylius-quickpay-plugin follows that convention: it registers a payment method factory, a gateway configuration form (API credentials, agreement/merchant settings), and callback routes so Quickpay can notify Sylius of authorizations, captures, and refunds. From a TPM standpoint the shape is correct for the platform — it installs as a Composer dependency into an existing Sylius application and does not require forking the core. The critical unknown is which Sylius payment abstraction it targets: Sylius has been migrating away from Payum toward its own Payment Request / state-machine flow, and a plugin that only supports the legacy path will silently lock the store into older Sylius releases.
Integration feasibility. Mechanically low-effort: composer require, enable the bundle, import routing, set credentials, create a payment method in the admin UI. The real effort is not installation but validation — confirming each payment option Quickpay exposes (card, MobilePay, Klarna, Apple Pay) actually renders and completes in a sandbox, and that SCA/3DS challenge flows return the customer to the correct Sylius order-completion route. Budget days, not hours, for test-matrix work.
Technical risk. Several flags compound:
Key questions. Which Sylius versions are supported, and is Payum or the newer Payment Request flow used? Which Quickpay payment methods and currencies are covered? Is webhook/callback payload signature-verified, and is processing idempotent against duplicate callbacks? Are partial captures and partial refunds supported end-to-end? What is the license, and is there a CI/test suite? Who is the maintainer of record, and is there a paid support path?
Stack fit. Appropriate only for shops already standardizing on Sylius + Symfony on PHP. The plugin adds no new infrastructure — no queue, no sidecar, no separate service. It rides on the same HTTP client and Doctrine entity manager as the host app. That is a genuine advantage: fewer moving parts in the payment path, which is exactly where you want fewer moving parts.
Migration path. For a greenfield Sylius build, adopt it as the native Quickpay connector and skip building a custom gateway action. For an existing store already live on another Quickpay integration (custom code, or a different plugin), do not migrate in place — stand up a second payment method alongside the existing one, route a small traffic slice to it, and only decommission the old one after a full settlement cycle has reconciled cleanly.
Compatibility. The gating factors are the Sylius minor version, the PHP version, and the Symfony major version. Pin the plugin version explicitly in composer.json and verify the constraint matrix resolves against your composer.lock before any code work. Given the low release cadence, expect to either pin Sylius to an older minor or carry a small compatibility patch. Assume from the outset that you may need to fork and maintain — that is the realistic planning baseline for a 3-star, 0-dependent package.
Sequencing.
Maintenance. This is the dominant cost. With 3 stars and no dependents, upstream maintenance is effectively a single-maintainer bet. Plan for the plugin to be vendored or forked into your own namespace, with a named internal owner and a documented patch process. Budget a recurring review each Sylius minor release — the payment abstraction is the most likely thing to break, and it will break at upgrade time, not at runtime.
Support. There is no realistic vendor SLA. Internal Tier-1 support must be able to answer "my payment failed" by reading the Sylius payment state, the Quickpay transaction log, and the callback log side by side. Build that runbook during the pilot, not after the first incident.
Scaling. Throughput is not a concern: Quickpay terminates the transaction and Sylius only handles order state. The plugin will not be the bottleneck at any realistic volume. The scaling risk is operational cardinality — multiple stores, currencies, or Quickpay agreements multiplying the configuration surface, and each combination needing its own verification.
Failure modes to instrument.
Ramp-up. Moderate. An engineer needs working knowledge of Sylius's payment state machine, Symfony service wiring, and Quickpay's transaction model — three domains, none deep, but the intersection is where debugging time goes. Estimate one to two weeks for a competent Symfony developer to reach independent proficiency with this plugin, plus a payments-literate reviewer for the financial-path work. The absence of community documentation and zero dependent projects means that ramp-up cost is entirely yours to absorb and must be written down internally.
How can I help you explore Laravel packages today?