3brs / sylius-payment-fee-plugin
Sylius 支付额外费用插件
v1.1.0
2024-01-05 09:14 UTC
Requires
- php: ^8.0
- sylius/sylius: ^1.11|^1.12
Requires (Dev)
- behat/behat: ^3.9.0
- behat/mink-selenium2-driver: ^1.4
- dmore/behat-chrome-extension: ^1.3
- dmore/chrome-mink-driver: ^2.7
- friends-of-behat/mink: ^1.10
- friends-of-behat/mink-browserkit-driver: ^1.4
- friends-of-behat/mink-debug-extension: ^2.1
- friends-of-behat/mink-extension: ^2.4
- friends-of-behat/page-object-extension: ^0.3
- friends-of-behat/suite-settings-extension: ^1.0
- friends-of-behat/symfony-extension: ^2.1
- friends-of-behat/variadic-extension: ^1.3
- php-http/message-factory: ^1.0.0
- phpstan/phpstan: ^1.8.1
- phpstan/phpstan-doctrine: 1.3.37
- phpstan/phpstan-strict-rules: ^1.3.0
- phpstan/phpstan-symfony: ^1.3
- phpstan/phpstan-webmozart-assert: ^1.2.0
- phpunit/phpunit: ^9.5
- polishsymfonycommunity/symfony-mocker-container: ^1.0
- rector/rector: ^0.18.12
- sylius-labs/coding-standard: ^4.2
- symfony/browser-kit: ^5.4 || ^6.0
- symfony/debug-bundle: ^5.4 || ^6.0
- symfony/dotenv: ^5.4 || ^6.0
- symfony/flex: ^2.2.2
- symfony/framework-bundle: ^5.4 || ^6.0
- symfony/http-foundation: ^5.4 || ^6.0
- symfony/http-kernel: ^5.4 || ^6.0
- symfony/intl: ^5.4 || ^6.0
- symfony/web-profiler-bundle: ^5.4 || ^6.0
Conflicts
- babdev/pagerfanta-bundle: <3.6.1
- doctrine/collections: <1.7.0
- doctrine/dbal: <2.13.3
- doctrine/doctrine-bundle: <2.4.2
- friendsofsymfony/rest-bundle: <3.1.0
- jms/serializer-bundle: <4.2.0
- knplabs/knp-menu: <3.3.0
- lexik/jwt-authentication-bundle: <2.12
- masterminds/html5: <2.7.5
- polishsymfonycommunity/symfony-mocker-container: <1.0.6
- sylius/resource-bundle: <1.10.0
- symfony/css-selector: <4.4.24
- symfony/framework-bundle: >=6.1.0 <6.1.4|6.2.8
- symfony/mime: <5.4.0
- symfony/web-link: <5.3.0
- symplify/easy-coding-standard: <10.2.0
- twig/twig: <2.14.7
- webmozart/assert: <1.11.0
- willdurand/negotiation: <3.0
This package is auto-updated.
Last update: 2024-08-30 01:39:37 UTC
README
支付费用插件
功能
- 对支付方式收取额外费用
- 典型用法: 货到付款
- 税费以与运费税费相同的方式实现
安装
-
运行
composer require 3brs/sylius-payment-fee-plugin
-
将插件类添加到您的
config/bundles.php
return [ ... ThreeBRS\SyliusPaymentFeePlugin\ThreeBRSSyliusPaymentFeePlugin::class => ['all' => true], ];
-
您的实体
PaymentMethod
必须实现\ThreeBRS\SyliusPaymentFeePlugin\Model\PaymentMethodWithFeeInterface
。您可以使用特质ThreeBRS\SyliusPaymentFeePlugin\Model\PaymentMethodWithFeeTrait
。- 查看 测试 PaymentMethod 以获取灵感
有关如何使用自己的实体,请参阅 Sylius 文档 - 自定义模型
管理员
- 将
@ThreeBRSSyliusPaymentFeePlugin/Admin/_form.html.twig
包含到@SyliusAdmin/PaymentMethod/_form.html.twig
中。
{# ... #} {% include '@ThreeBRSSyliusPaymentFeePlugin/Admin/_form.html.twig' %}
- 将
@ThreeBRSSyliusPaymentFeePlugin/Admin/_order_show.html.twig
包含到@AdminBundle/Order/Show/Summary/_totals.html.twig
中。
{# ... #} {% include '@ThreeBRSSyliusPaymentFeePlugin/Admin/_order_show.html.twig' %}
商店
- 将
@ThreeBRSSyliusPaymentFeePlugin/Shop/Checkout/SelectPayment/_choice.html.twig
包含到@ShopBundle/Checkout/SelectPayment/_choice.html.twig
中。
{# ... #} {% include '@ThreeBRSSyliusPaymentFeePlugin/Shop/Checkout/SelectPayment/_choice.html.twig' %}
- 将变量费用
{% set fee = form.method.vars.payment_costs[choice_form.vars.value] %}
添加到@ShopBundle/Checkout/SelectPayment/_payment.html.twig
中的foreach
。
{# ... #} {% for key, choice_form in form.method %} {% set fee = form.method.vars.payment_costs[choice_form.vars.value] %} {% include '@SyliusShop/Checkout/SelectPayment/_choice.html.twig' with {'form': choice_form, 'method': form.method.vars.choices[key].data} %} {% else %} {% include '@SyliusShop/Checkout/SelectPayment/_unavailable.html.twig' %} {% endfor %}
- 将
@ThreeBRSSyliusPaymentFeePlugin/Shop/Common/Order/Table/_payment.html.twig
包含到@ShopBundle/Common/Order/Table/_totals.html.twig
中。
{# ... #} <tr> {% include '@SyliusShop/Common/Order/Table/_shipping.html.twig' with {'order': order} %} </tr> {% include '@ThreeBRSSyliusPaymentFeePlugin/Shop/Common/Order/Table/_payment.html.twig' with {'order': order} %}
- 创建并运行 doctrine 数据库迁移
bin/console doctrine:migrations:diff bin/console doctrine:migrations:migrate
- 有关如何使用自己的实体,请参阅 Sylius 文档 - 自定义模型
开发
用法
- 在
/src
中修改插件 - 查看
bin/
目录以获取有用的命令
测试
更改后,您必须确保测试仍然通过。
composer install bin/console doctrine:database:create --if-not-exists --env=test bin/console doctrine:schema:update --complete --force --env=test yarn --cwd tests/Application install yarn --cwd tests/Application build bin/behat bin/phpstan.sh bin/ecs.sh vendor/bin/phpspec run
使用您的插件打开 Sylius
- 安装 symfony CLI 命令: https://symfony.com.cn/download
- 提示:对于 Docker(使用 Ubuntu)使用 Debian/Ubuntu — 基于 APT 的 Linux 安装步骤,作为
root
用户,并且不需要sudo
命令- 您可能需要首先安装
curl
,如下所示:apt-get update && apt-get install curl --yes
- 您可能需要首先安装
- 提示:对于 Docker(使用 Ubuntu)使用 Debian/Ubuntu — 基于 APT 的 Linux 安装步骤,作为
- 运行应用
(cd tests/Application && APP_ENV=test bin/console sylius:fixtures:load) (cd tests/Application && APP_ENV=test symfony server:start --dir=public --port=8080)
- 如果您需要,将
APP_ENV
更改为dev
许可证
此库受 MIT 许可证的约束。