webgriffe / sylius-heylight-plugin
Sylius plugin for HeyLight payment gateway (ex PagoLight BNPL and PagoLight PRO)
Installs: 5
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 6
Forks: 0
Open Issues: 1
Type:sylius-plugin
Requires
- php: ^8.2
- guzzlehttp/psr7: ^1.8 || ^2.5
- php-http/discovery: ^1.19
- psr/http-factory: ^1.0
- sylius/sylius: ^1.12
- symfony/webpack-encore-bundle: ^1.17
Requires (Dev)
- behat/behat: ^3.14
- behat/mink-selenium2-driver: ^1.6
- dbrekelmans/bdi: ^1.1
- dmore/behat-chrome-extension: ^1.4
- dmore/chrome-mink-driver: ^2.9
- friends-of-behat/mink: ^1.10
- friends-of-behat/mink-browserkit-driver: ^1.6
- friends-of-behat/mink-debug-extension: ^2.1
- friends-of-behat/mink-extension: ^2.7
- friends-of-behat/page-object-extension: ^0.3
- friends-of-behat/suite-settings-extension: ^1.1
- friends-of-behat/symfony-extension: ^2.5
- friends-of-behat/variadic-extension: ^1.5
- phpspec/phpspec: ^7.5
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.10
- phpstan/phpstan-doctrine: 1.3.69
- phpstan/phpstan-strict-rules: ^1.5
- phpstan/phpstan-webmozart-assert: ^1.2
- phpunit/phpunit: ^10.5
- polishsymfonycommunity/symfony-mocker-container: ^1.0
- robertfausk/behat-panther-extension: ^1.1
- sylius-labs/coding-standard: ^4.3
- sylius-labs/suite-tags-extension: ^0.2
- symfony/browser-kit: ^6.4
- symfony/debug-bundle: ^6.4
- symfony/dotenv: ^6.4
- symfony/flex: ^2.4
- symfony/intl: ^6.4
- symfony/web-profiler-bundle: ^6.4
- vimeo/psalm: ^5.9
This package is auto-updated.
Last update: 2025-02-04 16:55:53 UTC
README
Sylius HeyLight Plugin
Sylius plugin for HeyLight payment gateway (ex PagoLight BNPL and PagoLight PRO).
Installation
-
Run:
composer require webgriffe/sylius-heylight-plugin
-
Add
Webgriffe\SyliusHeylightPlugin\WebgriffeSyliusHeylightPlugin::class => ['all' => true]
to yourconfig/bundles.php
.Normally, the plugin is automatically added to the
config/bundles.php
file by thecomposer require
command. If it is not, you have to add it manually. -
Create a new file config/packages/webgriffe_sylius_heylight_plugin.yaml:
imports: - { resource: "@WebgriffeSyliusHeylightPlugin/config/config.php" }
-
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/shop_routing.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/shop_ajax_routing.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!
-
Add the WebhookToken entity. Create a new file
src/Entity/Payment/WebhookToken.php
with the following content:<?php declare(strict_types=1); namespace App\Entity\Payment; use Doctrine\ORM\Mapping as ORM; use Webgriffe\SyliusHeylightPlugin\Entity\WebhookToken as BaseWebhookToken; /** * @ORM\Entity * @ORM\Table(name="webgriffe_sylius_heylight_webhook_token") */ class WebhookToken extends BaseWebhookToken { }
-
Run:
php bin/console doctrine:migrations:diff php bin/console doctrine:migrations:migrate
-
Run:
php bin/console sylius:install:assets
Or, you can add the entry to your webpack.config.js file:
.addEntry( 'webgriffe-sylius-heylight-entry', './vendor/webgriffe/sylius-heylight-plugin/public/poll_payment.js' )
And then override the template
WebgriffeSyliusHeylightPlugin/after_pay.html.twig
to include the entry:{% block javascripts %} {{ parent() }} <script> window.afterUrl = "{{ afterUrl }}"; window.paymentStatusUrl = "{{ paymentStatusUrl }}"; </script> {{ encore_entry_script_tags('webgriffe-sylius-heylight-entry', null, 'sylius.shop') }} {% endblock %}
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 the gateway. Then, configure the payment method with the required parameters.
Automatically, the plugin will hide the payment method if the currency is not EUR, GBP or CH or if the country is not Italy or Switzerland. HeyLight Financing will also be visible only if the order total amount is greater than 100 EUR.
Contributing
For a comprehensive guide on Sylius Plugins development please go to Sylius documentation, there you will find the Plugin Development Guide, that is full of examples.