<?php
namespace HatslogicFraudOrderDetector\Subscriber;
use Shopware\Core\Checkout\Cart\Event\CheckoutOrderPlacedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use HatslogicFraudOrderDetector\Services\FraudOrderScoreSave;
class OrderSubscriber implements EventSubscriberInterface
{
/**
* this order id
*
* @var string
*/
protected $orderId;
/**
* FraudOrderScoreSave service
*
* @var FraudOrderScoreSave
*/
protected $fraudOrderScoreSave;
/**
* construct
*
*/
public function __construct(FraudOrderScoreSave $fraudOrderScoreSave)
{
$this->fraudOrderScoreSave = $fraudOrderScoreSave;
}
/**
* getSubscribedEvents
*
* @return array
*/
public static function getSubscribedEvents(): array
{
return [
CheckoutOrderPlacedEvent::class => 'onOrderPlaced'
];
}
/**
* event on order placed
*
* @param CheckoutOrderPlacedEvent $event
* @return void
*/
public function onOrderPlaced(CheckoutOrderPlacedEvent $event): void
{
$this->orderId = $event->getOrder()->getId();
$this->fraudOrderScoreSave->orderId = $this->orderId;
$this->fraudOrderScoreSave->save();
}
}