必须以某种方式/某处执行流触发器,对吧?但我不知道怎么做。这些文档在这方面既缺乏又过时。
我的触发器显示在 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
,对吧?
$this->eventDispatcher->dispatch(new OrderSentEvent($order, $context), 'name.goes.here');
…成功了。找不到事件订阅者,因为如果您不提供名称作为第二个参数,则将使用完整的类名称,但 Flow Builder 显然使用自定义名称。