如何从 Shopware >=6.5 中的插件执行自定义流程触发器?

问题描述 投票:0回答:1

必须以某种方式/某处执行流触发器,对吧?但我不知道怎么做。这些文档在这方面既缺乏又过时。

我的触发器显示在 Flow Builder 中,因此我可以为其分配一个操作,例如向订单添加标签。但是如果我然后尝试在我的插件中的某处执行类似的事件:

$this->eventDispatcher->dispatch(new OrderSentEvent($order, $context));

…事件调度程序似乎不知道如何处理它 因为

${dispatcher}->hasListeners($eventName)
是空的,所以它最终会出现在
orphanedEvents
属性中。事件类定义如下:

class OrderSentEvent extends Symfony\Contracts\EventDispatcher\Event implements Shopware\Core\Framework\Event\OrderAware{}

我错过了什么?这是我遵循的过时指南:https://developer.shopware.com/docs/guides/plugins/plugins/framework/flow/add-flow-builder-trigger.html

例如,在 v6.5 中不再有

BusinessEventInterface
,我不知道该怎么做。我的印象是,如果我只是使用现有的
OrderAware
,我就不必创建自己的
Storer
,对吧?

php symfony events shopware shopware6
1个回答
0
投票
$this->eventDispatcher->dispatch(new OrderSentEvent($order, $context), 'name.goes.here');

…成功了。找不到事件订阅者,因为如果您不提供名称作为第二个参数,则将使用完整的类名称,但 Flow Builder 显然使用自定义名称。

© www.soinside.com 2019 - 2024. All rights reserved.