我需要能够编写一个插件,获取订单,产品,等等,每当有新订单,在DrupalCommerce 2X创建产品。 但我似乎无法弄清楚如何商务部要我去做。 我没有看到任何*事件文件,这将使我的数据。
它看起来像商务部要我创建一个单独的事件流插件,会增加步骤我想,但我似乎无法找到关于实现我自己的事件流程的文档。
你能引导我跑我的代码的正确道路创建订单或产品时? 我在正确的道路上? 您可以指向事件/ EventSubscriber流程开发文档?
我需要能够编写一个插件,获取订单,产品,等等,每当有新订单,在DrupalCommerce 2X创建产品。 但我似乎无法弄清楚如何商务部要我去做。 我没有看到任何*事件文件,这将使我的数据。
它看起来像商务部要我创建一个单独的事件流插件,会增加步骤我想,但我似乎无法找到关于实现我自己的事件流程的文档。
你能引导我跑我的代码的正确道路创建订单或产品时? 我在正确的道路上? 您可以指向事件/ EventSubscriber流程开发文档?
订单完成后,系统调用commerce_order.place.post_transition。 所以,你需要创建完成结帐事件。
反应转换
实施例 - 反应顺序“地点”过渡。
// mymodule/src/EventSubscriber/MyModuleEventSubscriber.php
namespace Drupal\my_module\EventSubscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Drupal\state_machine\Event\WorkflowTransitionEvent;
class MyModuleEventSubscriber implements EventSubscriberInterface {
public static function getSubscribedEvents() {
// The format for adding a state machine event to subscribe to is:
// {group}.{transition key}.pre_transition or {group}.{transition key}.post_transition
// depending on when you want to react.
$events = ['commerce_order.place.post_transition' => 'onOrderPlace'];
return $events;
}
public function onOrderPlace(WorkflowTransitionEvent $event) {
// @todo Write code that will run when the subscribed event fires.
}
}
告诉Drupal的关于您的活动用户
您的活动用户应该加入{}模块在.services.yml你的模块的基本目录。
下面将上一节中注册事件的用户:
# mymodule.services.yml
services:
my_module_event_subscriber:
class: '\Drupal\my_module\EventSubscriber\MyModuleEventSubscriber'
tags:
- { name: 'event_subscriber' }
欲了解更多参考审查下列网址: https://docs.drupalcommerce.org/commerce2/developer-guide/orders/react-to-workflow-transitions#reacting-to-transitions