mangoweb-sylius / sylius-payment-restrictions-plugin
Payment restriction plugin for Sylius
Installs: 14 571
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 4
Forks: 1
Open Issues: 1
Type:sylius-plugin
Requires
- php: ^7.3
- sylius/sylius: ^1.7.0
Requires (Dev)
- behat/behat: ^3.4
- behat/mink: ^1.7@dev
- behat/mink-browserkit-driver: ^1.3
- behat/mink-extension: ^2.2
- behat/mink-selenium2-driver: ^1.3
- friends-of-behat/page-object-extension: ^0.3
- friends-of-behat/suite-settings-extension: ^1.0
- friends-of-behat/symfony-extension: ^2.0
- friends-of-behat/variadic-extension: ^1.1
- lakion/mink-debug-extension: ^1.2.3
- phpspec/phpspec: ^6.0
- phpstan/phpstan: ^0.12.0
- phpstan/phpstan-doctrine: ^0.12.0
- phpstan/phpstan-strict-rules: ^0.12.0
- phpstan/phpstan-symfony: ^0.12.4
- phpstan/phpstan-webmozart-assert: ^0.12.0
- phpunit/phpunit: ^8.0
- sensiolabs/security-checker: ^6.0
- sylius-labs/coding-standard: ^3.1
- symfony/browser-kit: ^4.4
- symfony/debug-bundle: ^4.4
- symfony/dotenv: ^4.4
- symfony/intl: ^4.4
- symfony/web-profiler-bundle: ^4.4
- symfony/web-server-bundle: ^4.4
Conflicts
- symfony/browser-kit: 4.1.8
- symfony/dependency-injection: 4.1.8
- symfony/dom-crawler: 4.1.8
- symfony/routing: 4.1.8
- symfony/symfony: 4.1.8
This package is auto-updated.
Last update: 2021-11-09 09:11:32 UTC
README
Payment Restrictions Plugin
Features
- Restrict payment method by zone. This enables to limit selected payment methods to specific zones or areas from the delivery address.
- Restrict payment method by shipping method - this means that it can disable specific shipment-payment combinations.
Installation
-
Run
$ composer require mangoweb-sylius/sylius-payment-restrictions-plugin
. -
Add plugin class to your
config/bundles.php
:return [ ... MangoSylius\PaymentRestrictionPlugin\MangoSyliusPaymentRestrictionPlugin::class => ['all' => true], ];
-
Your Entity
PaymentMethod
has to implement\MangoSylius\PaymentRestrictionPlugin\Model\PaymentMethodRestrictionInterface
. You can use TraitMangoSylius\PaymentRestrictionPlugin\Model\PaymentMethodRestrictionTrait
.<?php declare(strict_types=1); namespace App\Entity\Payment; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\ORM\Mapping as ORM; use Sylius\Component\Core\Model\Payment as BasePayment; use MangoSylius\PaymentRestrictionPlugin\Model\PaymentMethodRestrictionInterface; use MangoSylius\PaymentRestrictionPlugin\Model\PaymentMethodRestrictionTrait; /** * @ORM\Entity * @ORM\Table(name="sylius_payment") */ class PaymentMethod extends BasePayment implements PaymentMethodRestrictionInterface { use PaymentMethodRestrictionTrait; public function __construct() { parent::__construct(); $this->shippingMethods = new ArrayCollection(); } }
-
Change
@SyliusAdmin/PaymentMethod/_form.html.twig
.... <div class="ui segment"> <h4 class="ui dividing header">{{ 'sylius.ui.details'|trans }}</h4> {{ form_errors(form) }} <div class="three fields"> {{ form_row(form.code) }} {{ form_row(form.zone) }} {{ form_row(form.position) }} </div> {{ form_row(form.enabled) }} <div class="two fields"> {{ form_row(form.channels) }} {{ form_row(form.shippingMethods) }} </div> </div> ...
-
Create and run doctrine database migrations.
For guide to use your own entity see Sylius docs - Customizing Models
Development
Usage
- Develop your plugin in
/src
- See
bin/
for useful commands
Testing
After your changes you must ensure that the tests are still passing.
$ composer install
$ bin/console doctrine:schema:create -e test
$ bin/behat
$ bin/phpstan.sh
$ bin/ecs.sh
License
This library is under the MIT license.
Credits
Developed by manGoweb.