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

Shopware 6中促销代码未找到提示消息修改问题

修改Shopware促销代码未找到提示消息的方案

针对你遇到的修改"Promotion with code {code} not found!"提示无效的问题,以下是可行的解决步骤:

1. 正确覆盖Snippet(推荐方式)

这个提示对应的snippet key是promotion-not-found,若之前修改无效,可能是路径或方式错误:

  • 不要直接修改核心文件,请通过自定义主题或插件覆盖:
    • 主题路径:src/Resources/snippet/[你的语言目录,比如en-GB]/messages.json
    • 插件路径:src/Resources/snippet/[你的语言目录]/messages.json
    • 在文件中添加:
      {
        "promotion-not-found": "自定义提示文本:促销代码 {{ promotionCode }} 不存在,请检查!"
      }
      
    • 注意保留{{ promotionCode }}变量以动态显示用户输入的代码

2. 拦截异常替换消息(snippet失效时的备用方案)

如果snippet覆盖仍无效,可能是异常消息被硬编码,可通过事件订阅器拦截替换:

  • 创建插件的事件订阅类:
    use Shopware\Core\Framework\Event\ExceptionEvent;
    use Shopware\Core\Checkout\Promotion\Exception\PromotionNotFoundException;
    use Symfony\Component\EventDispatcher\EventSubscriberInterface;
    
    class PromotionExceptionSubscriber implements EventSubscriberInterface
    {
        public static function getSubscribedEvents(): array
        {
            return [
                ExceptionEvent::class => 'onException',
            ];
        }
    
        public function onException(ExceptionEvent $event): void
        {
            $exception = $event->getException();
            
            if ($exception instanceof PromotionNotFoundException) {
                $customMessage = sprintf('促销代码 %s 无效,请确认后重试!', $exception->getPromotionCode());
                $event->setException(new PromotionNotFoundException($exception->getPromotionCode(), $customMessage));
            }
        }
    }
    
  • 在插件的services.xml中注册该订阅器:
    <service id="YourPlugin\Subscriber\PromotionExceptionSubscriber">
        <tag name="kernel.event_subscriber"/>
    </service>
    

3. 必做:清除缓存验证

修改完成后,必须清除Shopware缓存:

  • 后台操作:进入「设置」→「系统」→「缓存管理」,点击清除缓存
  • CLI命令:执行bin/console cache:clear(需服务器终端权限)
  • 测试输入错误促销代码,确认提示已更新

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:33:24