akawakaweb / customer-reorder-plugin
Sylius 插件,允许客户重新下单
Requires
- php: ^8.0
- sylius/sylius: ^1.11.2
Requires (Dev)
- behat/behat: ^3.6.1
- behat/mink-selenium2-driver: ^1.4
- dmore/behat-chrome-extension: ^1.3
- dmore/chrome-mink-driver: ^2.7
- friends-of-behat/mink: ^1.8
- friends-of-behat/mink-browserkit-driver: ^1.4
- friends-of-behat/mink-debug-extension: ^2.0.0
- 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
- friendsofsymfony/oauth-server-bundle: ^1.6 || >2.0.0-alpha.0 ^2.0@dev
- phpspec/phpspec: ^7.0
- phpstan/extension-installer: ^1.0
- phpstan/phpstan: 0.12.99
- phpstan/phpstan-doctrine: 0.12.33
- phpstan/phpstan-strict-rules: ^0.12.0
- phpstan/phpstan-webmozart-assert: 0.12.12
- phpunit/phpunit: ^9.5
- polishsymfonycommunity/symfony-mocker-container: ^1.0
- sensiolabs/security-checker: ^6.0
- sylius-labs/coding-standard: ^4.0
- symfony/browser-kit: ^5.4
- symfony/debug-bundle: ^5.4
- symfony/dotenv: ^5.4
- symfony/intl: ^5.4
- symfony/web-profiler-bundle: ^5.4
- vimeo/psalm: 4.7.1
This package is auto-updated.
Last update: 2024-09-10 19:06:14 UTC
README
⚠️ 注意! 此存储库已被弃用,Sylius 团队将不再维护或开发它。您仍然可以使用它与兼容的 Sylius 版本,但请自行承担风险,因为不会修复其中的任何错误。
客户重新下单插件
此插件允许客户重新下单之前已下单的订单。
商业价值
插件允许客户重新下单任何已下单的订单。一旦点击“重新下单”按钮,就会创建一个新购物车,其中包含从先前订单中选取的商品。如果由于某些原因无法完全满足重新下单,客户将被通知影响订单的每一项情况(例如,促销不再可用或商品价格差异)。
重新下单过程完成后,新创建的订单将像任何其他订单一样列在历史记录中。
安装
注意!
此安装说明假设您正在使用 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
。
贡献:安装
传统
-
运行
composer create-project sylius/customer-reorder-plugin ProjectName
。 -
从插件骨架根目录,运行以下命令
$ (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/.env
和 tests/Application/.env.test
中配置您的数据库凭据。
Docker
-
执行
docker compose up -d
-
初始化插件
docker compose exec app make init
-
在浏览器中打开
open localhost
使用
运行插件测试
-
PHPUnit
vendor/bin/phpunit
-
PHPSpec
vendor/bin/phpspec run
-
Behat(非JS场景)
vendor/bin/behat --strict --tags="~@javascript"
-
Behat(JS场景)
-
启动无头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
- 安装SSL证书(只需安装一次)并在
127.0.0.1:8080
上运行测试应用程序的web服务器
symfony server:ca:install APP_ENV=test symfony server:start --port=8080 --dir=tests/Application/public --daemon
- 运行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