mews/pos-bundle
mews/pos-bundle is a PHP package for integrating Mews POS into your application. It provides bundle configuration and service wiring to connect point-of-sale workflows, sync POS data, and support hospitality property integrations with less boilerplate. Suitable for Symfony projects needing Mews POS...
IyzicoPos, PayTrPos, and Param3DHostPos gateways alongside the existing bank virtual POS integrations. This turns "which payment providers can we support?" from an engineering scoping exercise into a config exercise — relevant for roadmap items like adding a new PSP, supporting 3D Host payments, or offering local payment methods in Turkey.enc_key → secret_key in credentials config is a naming change, but it's a good moment to audit how payment credentials are stored, rotated, and injected (env vs. config cache vs. secret manager).gateway_3d is no longer mandatory for KuveytPos / VakifKatilimPos / PayFlexCPV4Pos (derived from payment_api), and lang / test_mode are now configured per-gateway rather than per-bank. Fewer required keys = simpler onboarding checklists and fewer misconfiguration support tickets.lang and test_mode supports products that route different traffic (or different currencies/regions) to different acquirers, which is a common requirement for conversion optimization and failover.test_mode (deprecated since 1.2.0) and the AccountFactory class is a signal the library is doing housekeeping — relevant when deciding whether to keep betting on it long-term.Consider adopting / upgrading when:
Mews\Pos\Gateways\* → Mews\Pos\Gateway\*, gateway renames EstPos/EstV3Pos → AssecoPos, PosNet → PosNetPos, PayForAccount → PayForPosAccount, AccountFactory deleted, config key renames and removals).Look elsewhere / defer when:
For executives: This is a mature PHP/Laravel library that lets us talk to Turkish banks and payment providers through one consistent interface, instead of building and maintaining a separate integration for each one. The new 2.0 release expands provider coverage (adds Iyzico, PayTr, and dedicated 3D Host support) and simplifies configuration, which shortens the lead time to launch new payment options and reduces the risk of misconfiguration in production. It also aligns us with supported PHP/Symfony versions, which is a security and maintainability win. The trade-off is a one-time, well-documented upgrade: it's a major version with breaking renames, so it needs to be planned as engineering work rather than a routine dependency bump.
For engineering: v2.0.0 is a breaking release — PHP >= 8.0, Symfony >= 5.4, namespace moves to Mews\Pos\Gateway\*, renamed gateways (AssecoPos, PosNetPos), AccountFactory removed, PayForAccount replaced by PayForPosAccount, and config restructured (enc_key → secret_key, payment_model removed, lang/test_mode moved under gateway_configs, payment_api_2 removed in favor of the new Param3DHostPos). An UPGRADE-2.0.md guide ships with the release and should be the migration checklist. Benefits on the other side: three new gateways, per-gateway lang/test_mode, and fewer mandatory endpoint keys for Kuveyt/Vakıf Katılım/PayFlex.
Recommendation: Treat the 2.0.0 upgrade as a scoped, scheduled initiative (config migration, import rewrites, regression tests across all live gateways) rather than an incidental bump, and pin to ^2.0 once validated. If we are still on PHP 7.4, the PHP upgrade is the critical path and should be sequenced first.
How can I help you explore Laravel packages today?