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

https://github.com/webgriffe/syliuspausepayplugin

Sylius plugin for PausePay payment gateway
https://github.com/webgriffe/syliuspausepayplugin

Last synced: 4 months ago
JSON representation

Sylius plugin for PausePay payment gateway

Awesome Lists containing this project

README

          





Sylius PausePay Plugin

Sylius plugin for PausePay payment method.

## Installation

1. Run:
```bash
composer require webgriffe/sylius-pausepay-plugin
```

2. Add `Webgriffe\SyliusPausePayPlugin\WebgriffeSyliusPausePayPlugin::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_pausepay_plugin.yaml:
```yaml
imports:
- { resource: "@WebgriffeSyliusPausePayPlugin/config/config.php" }
```

4. Create a new file config/routes/webgriffe_sylius_pausepay_plugin.yaml:
```yaml
webgriffe_sylius_pausepay_plugin_shop:
resource: "@WebgriffeSyliusPausePayPlugin/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_pausepay_plugin_index:
resource: "@WebgriffeSyliusPausePayPlugin/config/routes/index.php"

webgriffe_sylius_pausepay_plugin_payum:
resource: "@WebgriffeSyliusPausePayPlugin/config/routes/payum.php"

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

5. Add the PaymentOrder entity. Create a new file `src/Entity/Payment/PaymentOrder.php` with the following content:
```php

window.afterUrl = "{{ afterUrl }}";
window.paymentStatusUrl = "{{ paymentStatusUrl }}";

{{ encore_entry_script_tags('webgriffe-sylius-pausepay-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 `PausePay`
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, that is full of examples.

### Quickstart Installation

#### Traditional

1. Run `composer create-project sylius/plugin-skeleton ProjectName`.

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

```bash
$ (cd tests/Application && yarn install)
$ (cd tests/Application && yarn build)
$ (cd tests/Application && APP_ENV=test bin/console assets:install public)

$ (cd tests/Application && APP_ENV=test bin/console doctrine:database:create)
$ (cd tests/Application && APP_ENV=test bin/console doctrine:schema:create)
```

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

#### Docker

1. Execute `docker compose up -d`

2. Initialize plugin `docker compose exec app make init`

3. See your browser `open localhost`

## Usage

#### Running plugin tests

- PHPUnit

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

- PHPSpec

```bash
vendor/bin/phpspec run
```

- Behat (non-JS scenarios)

```bash
vendor/bin/behat --strict --tags="~@javascript"
```

- 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 --dir=tests/Application/public --daemon
```

4. Run Behat:

```bash
vendor/bin/behat --strict --tags="@javascript"
```

- Static Analysis

- Psalm

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

- PHPStan

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

- Coding Standard

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

#### Opening Sylius with your plugin

- Using `test` environment:

```bash
(cd tests/Application && APP_ENV=test bin/console sylius:fixtures:load)
(cd tests/Application && APP_ENV=test bin/console server:run -d public)
```

- Using `dev` environment:

```bash
(cd tests/Application && APP_ENV=dev bin/console sylius:fixtures:load)
(cd tests/Application && APP_ENV=dev bin/console server:run -d public)
```