3brs/sylius-payment-fee-plugin

Sylius 支付额外费用插件

安装次数: 2,654

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 5

开放问题: 6

类型:sylius-plugin

v1.1.0 2024-01-05 09:14 UTC

README

支付费用插件

功能

  • 对支付方式收取额外费用
  • 典型用法: 货到付款
  • 税费以与运费税费相同的方式实现

安装

  1. 运行 composer require 3brs/sylius-payment-fee-plugin

  2. 将插件类添加到您的 config/bundles.php

    return [
       ...
       ThreeBRS\SyliusPaymentFeePlugin\ThreeBRSSyliusPaymentFeePlugin::class => ['all' => true],
    ];
  3. 您的实体 PaymentMethod 必须实现 \ThreeBRS\SyliusPaymentFeePlugin\Model\PaymentMethodWithFeeInterface。您可以使用特质 ThreeBRS\SyliusPaymentFeePlugin\Model\PaymentMethodWithFeeTrait

有关如何使用自己的实体,请参阅 Sylius 文档 - 自定义模型

管理员

  1. @ThreeBRSSyliusPaymentFeePlugin/Admin/_form.html.twig 包含到 @SyliusAdmin/PaymentMethod/_form.html.twig 中。
{# ... #}

{% include '@ThreeBRSSyliusPaymentFeePlugin/Admin/_form.html.twig' %}
  1. @ThreeBRSSyliusPaymentFeePlugin/Admin/_order_show.html.twig 包含到 @AdminBundle/Order/Show/Summary/_totals.html.twig 中。
{# ... #}

{% include '@ThreeBRSSyliusPaymentFeePlugin/Admin/_order_show.html.twig' %}

商店

  1. @ThreeBRSSyliusPaymentFeePlugin/Shop/Checkout/SelectPayment/_choice.html.twig 包含到 @ShopBundle/Checkout/SelectPayment/_choice.html.twig 中。
{# ... #}

{% include '@ThreeBRSSyliusPaymentFeePlugin/Shop/Checkout/SelectPayment/_choice.html.twig' %}
  1. 将变量费用 {% 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 %}
  1. @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} %}
  1. 创建并运行 doctrine 数据库迁移
    bin/console doctrine:migrations:diff
    bin/console doctrine:migrations:migrate

开发

用法

  • /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

  1. 安装 symfony CLI 命令: https://symfony.com.cn/download
    • 提示:对于 Docker(使用 Ubuntu)使用 Debian/Ubuntu — 基于 APT 的 Linux 安装步骤,作为 root 用户,并且不需要 sudo 命令
      • 您可能需要首先安装 curl,如下所示: apt-get update && apt-get install curl --yes
  2. 运行应用
(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 许可证的约束。

致谢

3BRS 开发
manGoweb 分支。