akawakaweb/customer-reorder-plugin

Sylius 插件,允许客户重新下单

安装量: 1,159

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 25

类型:sylius-plugin


README

⚠️ 注意! 此存储库已被弃用,Sylius 团队将不再维护或开发它。您仍然可以使用它与兼容的 Sylius 版本,但请自行承担风险,因为不会修复其中的任何错误。

客户重新下单插件

此插件允许客户重新下单之前已下单的订单。

Screenshot showing the customer's orders page with reorder buttons

商业价值

插件允许客户重新下单任何已下单的订单。一旦点击“重新下单”按钮,就会创建一个新购物车,其中包含从先前订单中选取的商品。如果由于某些原因无法完全满足重新下单,客户将被通知影响订单的每一项情况(例如,促销不再可用或商品价格差异)。

重新下单过程完成后,新创建的订单将像任何其他订单一样列在历史记录中。

安装

注意!

此安装说明假设您正在使用 Symfony Flex。如果您不这样做,请参阅 旧版安装说明。然而,我们强烈建议您使用 Symfony Flex,它更快! :)

要安装插件,只需使用 composer 添加依赖

composer require sylius/customer-reorder-plugin

请记住,使用 composer config extra.symfony.allow-contrib true 或在插件安装过程中允许社区食谱

扩展点

客户重新下单插件基于两个过程

  • 重新下单处理
  • 重新下单资格检查

它们都基于 Symfony 的编译器通过,并在 services.xml 文件中配置。

重新下单处理和资格检查是独立的过程 - 一旦使用处理器(标记为 sylius_customer_reorder_plugin.reorder_processor 的服务)创建重新下单,创建的实体就会传递给资格检查器(标记为 sylius_customer_reorder_plugin.eligibility_checker 的服务)。

因此,可以通过添加实现 ReorderEligibilityChecker 并标记为 sylius_customer_reorder_plugin.eligibility_checker 的服务或实现 ReorderProcessor 并标记为 sylius_customer_reorder_plugin.reorder_processor 的服务来分别扩展这两个过程。

重新下单按钮布局和点击它时执行的操作都在 reorder.html.twig 模板中定义,该模板在 config.yml 文件中声明。

此外,由于订单是一个资源,其大部分配置都放在 *.yml 文件中。在不使用插件的情况下,订单有 显示支付 操作。添加 重新下单 操作需要在 config.yml 文件中扩展与订单相关的行为。

有关资源的更多信息,请参阅此处: http://docs.sylius.com/en/1.2/components_and_bundles/bundles/SyliusResourceBundle/index.html

安全问题

如果您认为您发现了一个安全问题,请不要使用问题跟踪器并不要公开发布。相反,所有安全问题都必须发送到 security@sylius.com

贡献:安装

传统

  1. 运行 composer create-project sylius/customer-reorder-plugin ProjectName

  2. 从插件骨架根目录,运行以下命令

    $ (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)

要设置插件数据库,请确保在 tests/Application/.envtests/Application/.env.test 中配置您的数据库凭据。

Docker

  1. 执行 docker compose up -d

  2. 初始化插件 docker compose exec app make init

  3. 在浏览器中打开 open localhost

使用

运行插件测试

  • PHPUnit

    vendor/bin/phpunit
  • PHPSpec

    vendor/bin/phpspec run
  • Behat(非JS场景)

    vendor/bin/behat --strict --tags="~@javascript"
  • Behat(JS场景)

    1. 安装Symfony CLI命令.

    2. 启动无头Chrome

    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
    1. 安装SSL证书(只需安装一次)并在127.0.0.1:8080上运行测试应用程序的web服务器
    symfony server:ca:install
    APP_ENV=test symfony server:start --port=8080 --dir=tests/Application/public --daemon
    1. 运行Behat
    vendor/bin/behat --strict --tags="@javascript"
  • 静态分析

    • Psalms

      vendor/bin/psalm
    • PHPStan

      vendor/bin/phpstan analyse -c phpstan.neon -l max src/  
  • 编码标准

    vendor/bin/ecs check