custom/plugins/TdsMerware/src/Core/Checkout/Order/Subscriber/OrderWrittenSubscriber.php line 65

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Tds\Merware\Core\Checkout\Order\Subscriber;
  3. use Shopware\Core\Checkout\Order\OrderEvents;
  4. use Shopware\Core\Framework\DataAbstractionLayer\Event\EntityWrittenEvent;
  5. use Shopware\Core\Framework\DataAbstractionLayer\Exception\InconsistentCriteriaIdsException;
  6. use Tds\Merware\Service\Core\LoggerService;
  7. use Tds\Merware\Service\Exchange\Export\OrderService;
  8. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  9. /**
  10.  * Class OrderWrittenSubscriber
  11.  *
  12.  * @package Tds\Merware\Core\Checkout\Order\Subscriber
  13.  */
  14. class OrderWrittenSubscriber implements EventSubscriberInterface
  15. {
  16.     /**
  17.      * @var LoggerService
  18.      */
  19.     private $loggerService;
  20.     /**
  21.      * @var OrderService
  22.      */
  23.     private $orderService;
  24.     /**
  25.      * {@inheritDoc}
  26.      */
  27.     public static function getSubscribedEvents(): array
  28.     {
  29.         return [
  30.             OrderEvents::ORDER_WRITTEN_EVENT => 'onOrderWritten'
  31.         ];
  32.     }
  33.     /**
  34.      * Order constructor.
  35.      *
  36.      * @param LoggerService $loggerService
  37.      * @param OrderService $orderService
  38.      */
  39.     public function __construct(LoggerService $loggerServiceOrderService $orderService)
  40.     {
  41.         $this->loggerService $loggerService;
  42.         $this->orderService $orderService;
  43.     }
  44.     /**
  45.      * Function to subscribe and write order files.
  46.      *
  47.      * @param EntityWrittenEvent $event
  48.      */
  49.     public function onOrderWritten(EntityWrittenEvent $event)
  50.     {
  51.         try {
  52.             $this->orderService->exportOrders($event->getIds());
  53.         } catch (InconsistentCriteriaIdsException $e) {
  54.             $this->loggerService->error(
  55.                 sprintf(
  56.                     'Fehler beim export von Bestellungen: %s',
  57.                     $e->getMessage()
  58.                 )
  59.             );
  60.         }
  61.     }
  62. }