nedac/sylius-minimum-order-value-plugin

使用这个Sylius插件可以为每个渠道设置一个最低订单金额。

1.1.0 2021-09-07 11:04 UTC

This package is auto-updated.

Last update: 2024-09-14 16:55:44 UTC


README

此插件为每个渠道添加了配置最低订单金额的选项。

配置了最低订单金额后,如果购物车中所有项目的总价低于配置的最低金额,则无法结账。

管理员配置

作为管理员登录并导航到渠道配置,可以配置最低订单金额。

admin_menu

选择编辑现有渠道或添加新渠道

admin_channel_overview

此插件为添加/编辑面板添加了一个分段,可用于设置基础货币中所需的最低订单金额。

admin_channel_details

默认情况下,开关设置为关闭位置,输入最低订单金额的字段被禁用。要配置所需的值,请使用开关启用最低订单金额,并在字段中输入值。

访客会看到什么?

当访问商店且购物车中未添加足够的商品时,他们无法进行结账。

shop_cart_summary

结账按钮被禁用,并显示一条消息,提供更多当前状态的信息。

shop_minimum_order_value_message

当点击购物车小部件按钮时,结账按钮被隐藏。

shop_cart_widget

如果访客尝试跳过结账流程(例如手动输入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或更高版本

安装

  1. 使用composer安装

    composer require nedac/sylius-minimum-order-value-plugin
  2. 生成并运行数据库迁移

    bin/console doctrine:migrations:diff
    bin/console doctrine:migrations:migrate
  3. 安装资产

    bin/console sylius:install:assets

flex配方应负责启用捆绑包、复制配置文件以及复制需要覆盖的模板。很可能您已经覆盖了一个或多个模板。在这种情况下,您需要手动编辑/合并这些模板与在src/Resources/templates中找到的模板。