PHPackages                             webgriffe/sylius-nexi-plugin - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. webgriffe/sylius-nexi-plugin

ActiveSylius-plugin[Payment Processing](/categories/payments)

webgriffe/sylius-nexi-plugin
============================

Nexi payment plugin for Sylius.

v4.0.2(1mo ago)234.3k—0%[1 issues](https://github.com/webgriffe/SyliusNexiPlugin/issues)MITPHPPHP ^8.2CI passing

Since Nov 29Pushed 1mo agoCompare

[ Source](https://github.com/webgriffe/SyliusNexiPlugin)[ Packagist](https://packagist.org/packages/webgriffe/sylius-nexi-plugin)[ RSS](/packages/webgriffe-sylius-nexi-plugin/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (38)Versions (17)Used By (0)

 [    ![Sylius Logo.](https://camo.githubusercontent.com/ea9dddc934264aa7ec01cf3202c500f3d8b04448bce2571bdc74230efddda88f/68747470733a2f2f6d656469612e73796c6975732e636f6d2f73796c6975732d6c6f676f2d3830302e706e67)  ](https://sylius.com)

Sylius Nexi Plugin
==================

[](#sylius-nexi-plugin)

The *SyliusNexiPlugin* provides an integration between [Sylius](https://sylius.com/) and [Nexi XPay](https://developer.nexi.it/it/servizio-ecommerce) payment gateway. This plugin implements the [Hosted Payment Page](https://developer.nexi.it/it/modalita-di-integrazione/hosted-payment-page) integration method.

> Note! This plugin is only compatible with the Nexi configuration which allows only one payment per request. It is therefore not possible to retry the payment several times on the Nexi checkout, so make sure that your Nexi gateway is configured to not allow payment retry (you'll have to ask to Nexi customer care for this)!

Installation
------------

[](#installation)

1. Run:

    ```
    composer require webgriffe/sylius-nexi-plugin
    ```
2. Add `Webgriffe\SyliusNexiPlugin\WebgriffeSyliusNexiPlugin::class => ['all' => true]` to your `config/bundles.php`.

    Normally, the plugin is automatically added to the `config/bundles.php` file by the `composer require` command. If it is not, you have to add it manually.
3. Create a new file config/packages/webgriffe\_sylius\_nexi\_plugin.yaml:

    ```
    imports:
        - { resource: "@WebgriffeSyliusNexiPlugin/config/config.php" }
    ```
4. Import the routes needed. Add the following to your config/routes.yaml file:

    ```
    webgriffe_sylius_nexi_plugin_shop:
        resource: "@WebgriffeSyliusNexiPlugin/config/routes/shop.php"
        prefix: /{_locale}
        requirements:
            _locale: ^[A-Za-z]{2,4}(_([A-Za-z]{4}|[0-9]{3}))?(_([A-Za-z]{2}|[0-9]{3}))?$

    webgriffe_sylius_nexi_plugin_ajax:
        resource: "@WebgriffeSyliusNexiPlugin/config/routes/shop_ajax.php"

    sylius_shop_payum_cancel:
        resource: "@PayumBundle/Resources/config/routing/cancel.xml"
    ```

    **NB:** The file shop\_routing needs to be after the prefix \_locale, so that messages can be displayed in the right language. You should also include the cancel routes from the Payum bundle if you do not have it already!
5. Run:

    ```
    php bin/console sylius:install:assets
    ```

Usage
-----

[](#usage)

Go in your Sylius admin panel and create a new payment method. Choose `Nexi Gateway` as the payment gateway and fill the required fields. You can also enable the *Sandbox* mode if you want to test the integration with the [Nexi test environment](https://developer.nexi.it/it/area-test/introduzione).

Contributing
------------

[](#contributing)

For a comprehensive guide on Sylius Plugins development please go to Sylius documentation, there you will find the [Plugin Development Guide](https://docs.sylius.com/plugins-development-guide/how-to-create-a-plugin-for-sylius) - it's a great place to start.

For more information about the **Test Application** included in the skeleton, please refer to the [Sylius documentation](https://docs.sylius.com/plugins-development-guide/test-application).

### Traditional

[](#traditional)

1. From the plugin skeleton root directory, run the following commands:

    ```
    (cd vendor/sylius/test-application && yarn install)
    (cd vendor/sylius/test-application && yarn build)
    vendor/bin/console assets:install

    vendor/bin/console doctrine:database:create
    vendor/bin/console doctrine:migrations:migrate -n
    # Optionally load data fixtures
    vendor/bin/console sylius:fixtures:load -n
    ```

To be able to set up a plugin's database, remember to configure your database credentials in `tests/TestApplication/.env` and `tests/TestApplication/.env.test`.

2. Run your local server:

    ```
    symfony server:ca:install
    symfony server:start -d
    ```
3. Open your browser and navigate to `https://localhost:8000`.

### Docker

[](#docker)

1. Execute `make init` to initialize the container and install the dependencies.
2. Execute `make database-init` to create the database and run migrations.
3. (Optional) Execute `make load-fixtures` to load the fixtures.
4. Your app is available at `http://localhost`.

Usage
-----

[](#usage-1)

### Running plugin tests

[](#running-plugin-tests)

- PHPUnit

    ```
    vendor/bin/phpunit
    ```
- Behat (non-JS scenarios)

    ```
    vendor/bin/behat --strict --tags="~@javascript&&~@mink:chromedriver"
    ```
- Behat (JS scenarios)

    1. [Install Symfony CLI command](https://symfony.com/download).
    2. Start Headless Chrome:

    ```
    google-chrome-stable --enable-automation --disable-background-networking --no-default-browser-check --no-first-run --disable-popup-blocking --disable-default-apps --allow-insecure-localhost --disable-translate --disable-extensions --no-sandbox --enable-features=Metal --headless --remote-debugging-port=9222 --window-size=2880,1800 --proxy-server='direct://' --proxy-bypass-list='*' http://127.0.0.1
    ```

    3. Install SSL certificates (only once needed) and run test application's webserver on `127.0.0.1:8080`:

    ```
    symfony server:ca:install
    APP_ENV=test symfony server:start --port=8080 --daemon
    ```

    4. Run Behat:

    ```
    vendor/bin/behat --strict --tags="@javascript,@mink:chromedriver"
    ```
- Static Analysis

    - PHPStan

        ```
        vendor/bin/phpstan analyse -c phpstan.neon -l max src/
        ```
    - Psalm

        ```
        vendor/bin/psalm
        ```
- Coding Standard

    ```
    vendor/bin/ecs check
    ```

### Opening Sylius with your plugin

[](#opening-sylius-with-your-plugin)

- Using `test` environment:

    ```
    APP_ENV=test vendor/bin/console vendor/bin/console sylius:fixtures:load -n
    APP_ENV=test symfony server:start -d
    ```
- Using `dev` environment:

    ```
    vendor/bin/console vendor/bin/console sylius:fixtures:load -n
    symfony server:start -d
    ```

###  Health Score

53

—

FairBetter than 96% of packages

Maintenance86

Actively maintained with recent releases

Popularity31

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity70

Established project with proven stability

 Bus Factor1

Top contributor holds 87.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~112 days

Recently: every ~17 days

Total

15

Last Release

53d ago

Major Versions

v0.4.0 → v1.0.0-BETA.12022-12-06

v1.1.0 → v2.0.02026-01-09

v2.0.0 → v3.0.02026-01-14

v3.0.0 → v4.0.02026-01-22

PHP version history (4 changes)v0.1.0PHP ^7.4 || ^8.0

v0.2.0PHP ^8.0

v1.1.0PHP ^8.1

v4.0.0PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/eca104631fd7f6aff6d399ca16458c4d9814770756af0ecca22ffe2b1c5704d3?d=identicon)[mmenozzi](/maintainers/mmenozzi)

---

Top Contributors

[![lruozzi9](https://avatars.githubusercontent.com/u/26346480?v=4)](https://github.com/lruozzi9 "lruozzi9 (94 commits)")[![mmenozzi](https://avatars.githubusercontent.com/u/1199914?v=4)](https://github.com/mmenozzi "mmenozzi (11 commits)")[![lamasfoker](https://avatars.githubusercontent.com/u/12940668?v=4)](https://github.com/lamasfoker "lamasfoker (1 commits)")[![LucaGallinari](https://avatars.githubusercontent.com/u/5822554?v=4)](https://github.com/LucaGallinari "LucaGallinari (1 commits)")

---

Tags

nexisyliussyliussylius-pluginnexi

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Psalm

Type Coverage Yes

### Embed Badge

![Health badge](/badges/webgriffe-sylius-nexi-plugin/health.svg)

```
[![Health](https://phpackages.com/badges/webgriffe-sylius-nexi-plugin/health.svg)](https://phpackages.com/packages/webgriffe-sylius-nexi-plugin)
```

###  Alternatives

[sylius/invoicing-plugin

Invoicing plugin for Sylius.

901.0M2](/packages/sylius-invoicing-plugin)[sylius/paypal-plugin

PayPal plugin for Sylius.

451.4M4](/packages/sylius-paypal-plugin)[flux-se/sylius-payum-stripe-plugin

Payum Stripe gateways plugin for Sylius.

61342.2k](/packages/flux-se-sylius-payum-stripe-plugin)[bitbag/przelewy24-plugin

Przelewy24 payment plugin for Sylius applications.

1931.7k](/packages/bitbag-przelewy24-plugin)[bitbag/sylius-adyen-plugin

BitBag Adyen plug-in for Sylius.

1249.9k](/packages/bitbag-sylius-adyen-plugin)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
