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

Shopware 6:Flow Builder特定触发器下邮件模板变量异常

Shopware 6.4.9.0 Flow Builder邮件模板变量缺失问题排查

问题根源分析

  • 触发器上下文数据差异:checkout.order.placed触发时,订单处于创建完成状态,Shopware核心会完整加载订单关联的currency、addresses等关联实体并传入模板上下文;而checkout.order.payment_method.changed触发器默认仅加载订单基础字段,未预加载这些关联数据,导致模板中对应变量为null。
  • 版本特性问题:Shopware 6.4.9.0属于6.4.x早期稳定版,确实存在部分Flow触发器上下文数据不完整的已知问题,后续版本(如6.4.10及以上)修复了这类关联数据预加载的逻辑。

排查步骤

  1. 验证是否为核心bug

    • 搭建一个无任何第三方插件的干净Shopware 6.4.9.0环境,复现你的场景:用checkout.order.payment_method.changed触发器搭配订单确认邮件模板。
    • 如果同样出现currency和addresses为null的情况,即可确定是Shopware核心版本的bug。
  2. 排查插件冲突

    • 若干净环境下问题消失,说明是第三方插件导致。逐个禁用已安装的插件,每次禁用后测试场景,定位到修改了Flow触发器上下文或订单数据传递逻辑的插件。

临时解决方案

如果暂时无法升级版本,可通过自定义插件补充触发器的上下文数据:

  • 创建一个自定义插件,监听checkout.order.payment_method.changed对应的Flow事件,在事件处理中手动预加载订单的currency和addresses关联数据,示例代码片段:
public function onPaymentMethodChanged(OrderPaymentMethodChangedEvent $event): void
{
    $order = $event->getOrder();
    // 预加载关联数据
    $order->getCurrency();
    $order->getAddresses();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 10:06:20