An open API service indexing awesome lists of open source software.

https://github.com/webgriffe/syliusheylightplugin


https://github.com/webgriffe/syliusheylightplugin

Last synced: 4 months ago
JSON representation

Awesome Lists containing this project

README

          






Sylius Logo.


Sylius HeyLight Plugin

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

## Installation

1. Run:
```bash
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:
```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:
```yaml
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:
```bash
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](https://docs.sylius.com/plugins-development-guide/test-application).

### Traditional

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

```bash
(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:

```bash
symfony server:ca:install
symfony server:start -d
```

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

```bash
vendor/bin/phpunit
```

- Behat (non-JS scenarios)

```bash
vendor/bin/behat --strict --tags="~@javascript&&~@mink:chromedriver"
```

- Behat (JS scenarios)

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

2. Start Headless Chrome:

```bash
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`:

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

4. Run Behat:

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

- Static Analysis

- PHPStan

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

- Psalm

```bash
vendor/bin/psalm
```

- Coding Standard

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

### Opening Sylius with your plugin

- Using `test` environment:

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

- Using `dev` environment:

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