nedac / sylius-minimum-order-value-plugin
使用这个Sylius插件可以为每个渠道设置一个最低订单金额。
Requires
- php: ^7.4 || ^8.0
- sylius/sylius: >=1.10.2 <1.11.0
Requires (Dev)
- behat/behat: ^3.8
- dmore/chrome-mink-driver: ^2.7
- friends-of-behat/mink-extension: ^2.4
- friends-of-behat/page-object-extension: ^0.3
- friendsofsymfony/oauth-server-bundle: ^1.6 || >2.0.0-alpha.0 ^2.0@dev
- matthiasnoback/symfony-config-test: ^4.2
- matthiasnoback/symfony-dependency-injection-test: ^4.2
- mockery/mockery: ^1.4
- phpstan/extension-installer: ^1.0
- phpstan/phpstan: ^0.12
- phpstan/phpstan-doctrine: ^0.12
- phpstan/phpstan-strict-rules: ^0.12.0
- phpstan/phpstan-webmozart-assert: ^0.12
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.5
README
此插件为每个渠道添加了配置最低订单金额的选项。
配置了最低订单金额后,如果购物车中所有项目的总价低于配置的最低金额,则无法结账。
管理员配置
作为管理员登录并导航到渠道配置,可以配置最低订单金额。
选择编辑现有渠道或添加新渠道
此插件为添加/编辑面板添加了一个分段,可用于设置基础货币中所需的最低订单金额。
默认情况下,开关设置为关闭位置,输入最低订单金额的字段被禁用。要配置所需的值,请使用开关启用最低订单金额,并在字段中输入值。
访客会看到什么?
当访问商店且购物车中未添加足够的商品时,他们无法进行结账。
结账按钮被禁用,并显示一条消息,提供更多当前状态的信息。
当点击购物车小部件按钮时,结账按钮被隐藏。
如果访客尝试跳过结账流程(例如手动输入URL),访客将被自动重定向到购物车摘要页面。
它是如何工作的?
从技术上来说,此插件做了几件事情。它为渠道实体添加了一个可选字段,并通过管理员系统配置该字段的值。
此值由MinimumOrderValueReached类使用,该类被配置为“sylius_order_checkout”状态机的所有转换的守卫。
通过覆盖“sylius.resolver.checkout”服务并禁用原始服务,该插件能够在守卫阻止转换时将访客重定向到购物车摘要页面。
覆盖该服务还意味着需要稍微不同地配置该服务(仅适用于您有自定义的结账解析器配置)
以前,结账解析器可以通过“sylius_shop”键配置,现在需要通过“nedac_sylius_minimum_order_value”键配置
nedac_sylius_minimum_order_value: checkout_resolver: pattern: /checkout/.+ route_map: empty_order: route: sylius_shop_cart_summary cart: route: sylius_shop_checkout_address addressed: route: sylius_shop_checkout_select_shipping shipping_selected: route: sylius_shop_checkout_select_payment shipping_skipped: route: sylius_shop_checkout_select_payment payment_selected: route: sylius_shop_checkout_complete payment_skipped: route: sylius_shop_checkout_complete
这是此插件在src/Resources/config/config.yaml中添加的默认配置。可以在应用程序级别覆盖,就像任何Symfony捆绑包配置一样。
请参阅官方Sylius文档了解如何配置结账解析器,如果需要的话。
支持的Sylius版本
注意: 此插件需要PHP 7.4或更高版本
安装
-
使用composer安装
composer require nedac/sylius-minimum-order-value-plugin
-
生成并运行数据库迁移
bin/console doctrine:migrations:diff bin/console doctrine:migrations:migrate
-
安装资产
bin/console sylius:install:assets
flex配方应负责启用捆绑包、复制配置文件以及复制需要覆盖的模板。很可能您已经覆盖了一个或多个模板。在这种情况下,您需要手动编辑/合并这些模板与在src/Resources/templates中找到的模板。





