Skip to content

Add Sylius 1.14 support - #23

Merged
senghe merged 3 commits into
1.xfrom
feature/sylius-1.14-ing-pay-rebranding
Oct 5, 2026
Merged

senghe merged 3 commits into
1.xfrom
feature/sylius-1.14-ing-pay-rebranding

Conversation

@liszkapawel

@liszkapawel liszkapawel commented Oct 1, 2026 •

Copy link
Copy Markdown
Collaborator

Adds Sylius 1.14 to the 1.x line, which stopped at ~1.13.0. The 2.x and 3.x releases are a
Sylius 2.0 rewrite, so there is no upgrade path for shops that are on 1.x.

Nothing is renamed: namespaces, service ids, routes, the imoje gateway factory name and the
gateway configuration fields are untouched, so this is a drop-in upgrade with no data migration.

Changes

  • php ^8.1 and sylius/sylius ~1.13.0 || ~1.14.0. Sylius 1.12 and PHP 8.0 support are dropped,
    matching how the other BitBag plugins moved onto the 1.14 line. The symfony dev dependencies move
    from ^6.0 to ^6.4, which is what Sylius 1.14 requires.
  • CI matrix on php 8.1-8.3 and sylius ~1.13.0/~1.14.0, following
    SyliusShippingExportPlugin v3.2.0.
  • No source change was required for 1.14 itself. RegisterGatewayConfigTypePass is identical
    across 1.12, 1.13 and 1.14, the sylius.gateway_configuration_type tag is unchanged,
    payum/payum-bundle stays at ^2.5, and every Payum\Core\* class the plugin uses is still
    provided after 1.13 replaced the payum/payum metapackage with payum/offline.

Fixes to the existing pipeline

Both were already failing on v1.0.3, verified by running them against that tag:

  • NotifyActionSpec constructed NotifyAction with 2 of its 5 arguments, breaking 5 of 43
    examples.
  • NotifyAction dereferenced five nullable values unguarded in the payment.status === 'error'
    branch, producing 6 PHPStan errors.

Composer 2.9+ also refuses to install api-platform/core and enshrined/svg-sanitize, both pinned
by Sylius 1.x with no advisory-free release in range, and the resolver pairs
squizlabs/php_codesniffer 4.0 with incompatible slevomat sniffs on some matrix legs. Both are
unrelated to this change, but no dependency resolution succeeds without them.

Verification

Tested on PHP 8.1 and MySQL 8 on the plugin test application against Sylius 1.13.17 and 1.14.20,
and on a clean sylius/sylius-standard 1.14.6 with the plugin installed via Composer.

In each one: the container builds, the gateway registers as imoje, a payment method is created
through the admin UI, all five configuration fields render and round-trip, Payum builds the gateway
from the stored config, and POST /payment/imoje/notify is routed.

@liszkapawel
liszkapawel force-pushed the feature/sylius-1.14-ing-pay-rebranding branch from 790f5de to 94720cd Compare October 5, 2026 06:41
@liszkapawel liszkapawel changed the title Rebrand imoje to ING Pay and add Sylius 1.14 support Add Sylius 1.14 support Oct 5, 2026
- sylius/sylius ~1.13.0 || ~1.14.0 and php ^8.1, dropping Sylius 1.12 and PHP 8.0
- CI matrix updated accordingly
- branch-alias points at the 1.x branch instead of a master branch that does not exist
- allow installing api-platform/core and enshrined/svg-sanitize, which Sylius 1.x
  pins and Composer 2.9+ blocks over security advisories
- pin squizlabs/php_codesniffer to the 3.x line, as 4.0 is not compatible with the
  slevomat sniffs the resolver pairs it with
- fix NotifyActionSpec constructor arguments and 6 PHPStan errors in NotifyAction,
  both already failing on v1.0.3

The plugin's namespaces, service ids, routes, gateway factory name and
configuration fields are unchanged, so no application or database change is
required.
@liszkapawel
liszkapawel force-pushed the feature/sylius-1.14-ing-pay-rebranding branch from 94720cd to bf04e77 Compare October 5, 2026 07:05
@liszkapawel liszkapawel closed this Oct 5, 2026
@liszkapawel liszkapawel reopened this Oct 5, 2026
symfony server:ca:install installs the CA into the system trust store and
then exits 1 because no browser NSS database exists at that point, which
failed every job in the matrix. The step only mattered for Behat over the
HTTPS base url, and this workflow runs no Behat step, nor does the plugin
define any suites.
The test application ships no yarn.lock, so yarn resolves the newest sass,
which requires node >=20.19.0 and fails every node 18 job. Node 18 reached
end of life in April 2025.
@senghe
senghe merged commit ad6e639 into 1.x Oct 5, 2026
72 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants