custom/plugins/TigerConnect/src/Core/Content/Flow/Dispatching/Action/OrderExportAction.php line 50

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace TigerMedia\TigerConnect\Core\Content\Flow\Dispatching\Action;
  3. use Shopware\Core\Checkout\Cart\Event\CheckoutOrderPlacedEvent;
  4. use Shopware\Core\Content\Flow\Dispatching\Action\FlowAction;
  5. use Shopware\Core\Content\Flow\Dispatching\Aware\OrderTransactionAware;
  6. use Shopware\Core\Framework\Event\FlowEvent;
  7. use Shopware\Core\Framework\Event\OrderAware;
  8. use Symfony\Component\Messenger\MessageBusInterface;
  9. use TigerMedia\TigerConnect\Core\Content\Logger\LoggerDefinition;
  10. use TigerMedia\TigerConnect\Exception\OrderException;
  11. use TigerMedia\TigerConnect\Helper\OrderHelper;
  12. use TigerMedia\TigerConnect\MessageQueue\OrderDataMessage;
  13. class OrderExportAction extends FlowAction
  14. {
  15.     const ACTION_NAME 'action.tiger_connect.order.export';
  16.     public function __construct(
  17.         private readonly MessageBusInterface $messageBus,
  18.         private readonly OrderHelper $orderHelper
  19.     )
  20.     {
  21.     }
  22.     public function requirements(): array
  23.     {
  24.         return [OrderAware::class, OrderTransactionAware::class];
  25.     }
  26.     public static function getName(): string
  27.     {
  28.         return self::ACTION_NAME;
  29.     }
  30.     /**
  31.      * @inheritDoc
  32.      */
  33.     public static function getSubscribedEvents(): iterable
  34.     {
  35.         return [
  36.             self::getName() => 'handle',
  37.         ];
  38.     }
  39.     /**
  40.      * @throws OrderException
  41.      */
  42.     public function handle(FlowEvent $event): void
  43.     {
  44.         /** @var CheckoutOrderPlacedEvent $orderEvent */
  45.         $orderEvent $event->getEvent();
  46.         $order $orderEvent->getOrder();
  47.         $this->orderHelper->addToLogger($order->getOrderNumber(), "Starting flow action for Order [{$order->getOrderNumber()}]."LoggerDefinition::LOG_INFO$event->getContext());
  48.         $this->orderHelper->addToLogger($order->getOrderNumber(), "Starting dispatch for Order [{$order->getOrderNumber()}]."LoggerDefinition::LOG_INFO$event->getContext());
  49.         $this->messageBus->dispatch(new OrderDataMessage($order->getOrderNumber(), $event->getContext()));
  50.         $this->orderHelper->addToLogger($order->getOrderNumber(), "Dispatched queue for Order [{$order->getOrderNumber()}]."LoggerDefinition::LOG_INFO$event->getContext());
  51.     }
  52. }