webgriffe/sylius-heylight-plugin

Sylius plugin for HeyLight payment gateway (ex PagoLight BNPL and PagoLight PRO)

Installs: 2 765

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 4

Forks: 0

Open Issues: 1

Type:sylius-plugin

pkg:composer/webgriffe/sylius-heylight-plugin

This package is auto-updated.

Last update: 2026-01-22 14:08:11 UTC


README

Sylius Logo.

Sylius HeyLight Plugin

Sylius plugin for HeyLight payment gateway (ex PagoLight BNPL and PagoLight PRO).

Installation

  1. Run:

    composer require webgriffe/sylius-heylight-plugin
  2. Add Webgriffe\SyliusHeylightPlugin\WebgriffeSyliusHeylightPlugin::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_heylight_plugin.yaml:

    imports:
        - { resource: "@WebgriffeSyliusHeylightPlugin/config/config.php" }
  4. Import the routes needed for cancelling the payments. Add the following to your config/routes.yaml file:

    webgriffe_sylius_heylight_plugin_shop:
        resource: "@WebgriffeSyliusHeylightPlugin/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_heylight_plugin_ajax:
        resource: "@WebgriffeSyliusHeylightPlugin/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

Access to the admin panel and go to the Payment methods section. Create a new payment method and select HeyLight BNPL or HeyLight Financing as gateway. Then, configure the payment method with the required parameters.

Contributing

For a comprehensive guide on Sylius Plugins development please go to Sylius documentation, there you will find the Plugin Development Guide - it's a great place to start.

For more information about the Test Application included in the skeleton, please refer to the Sylius documentation.

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.

  1. Run your local server:

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

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

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.

    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
    1. 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
    1. 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

  • 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