You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shopware 6如何设置商品行最小订单金额?

Shopware 6商品行最小金额规则实现方案

Shopware 6可以实现商品行最小金额限制的需求,具体有两种可行方案:

一、原生后台配置(无需代码)

  • 后台进入设置 > 规则生成器,新建规则:
    • 添加条件:选择「商品总价」,设置为「小于1欧元」,应用范围勾选「购物车/订单」
  • 接着到设置 > 购物车规则,基于上述规则创建新的购物车规则:
    • 设置触发时的提示文案(比如「该商品行最低需满足1欧元订单金额,请至少购买17件」)
    • 规则类型选择「阻止订单提交」或「显示警告」,根据需求配置
  • 若要批量给所有商品设置对应最小购买量:
    • 进入商品列表,批量选中所有商品,点击「批量编辑」
    • 在「库存」标签下设置「最小购买数量」为17(对应0.06€×17≈1.02€,满足1€最低要求)

二、自定义代码扩展(灵活适配复杂逻辑)

如果需要更个性化的验证逻辑,可以通过订阅购物车验证事件实现:

use Shopware\Core\Checkout\Cart\CartValidatorEvent;
use Shopware\Core\Checkout\Cart\Error\Error;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class MinItemRowAmountSubscriber implements EventSubscriberInterface
{
    public static function getSubscribedEvents(): array
    {
        return [
            CartValidatorEvent::class => 'validateMinItemRowAmount',
        ];
    }

    public function validateMinItemRowAmount(CartValidatorEvent $event): void
    {
        $cart = $event->getCart();
        $errors = $event->getErrors();
        $minAmountInCents = 100; // 1欧元换算为分

        foreach ($cart->getLineItems()->getFlat() as $lineItem) {
            $itemTotal = $lineItem->getPrice()->getTotalPrice();
            if ($itemTotal < $minAmountInCents) {
                $errors->add(new Error(
                    'min_item_row_amount_error',
                    '该商品行最低需满足1欧元订单金额,请调整购买数量',
                    []
                ));
            }
        }
    }
}

内容的提问来源于stack exchange,提问作者pim krook

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 14:52:42