<?php
namespace App\EventListener;
use App\Services\MailService;
use Pimcore\Event\Model\Ecommerce\SendConfirmationMailEvent;
use Pimcore\Log\ApplicationLogger;
class ConfirmationMailListener
{
public function __construct(protected MailService $mailService, protected ApplicationLogger $applicationLogger)
{
}
public function onSendConfirmationMail(SendConfirmationMailEvent $e)
{
$e->setSkipDefaultBehaviour(true);
$order = $e->getOrder();
try {
if ($this->mailService->sendConfirmationMail($order, ['to' => $order->getCustomerEMail()])) {
$order->setProperty('confirmationEmailSent', 'bool', true);
$order->save();
}
} catch (\Throwable $exception) {
$this->applicationLogger->error('could not send Confirmation Mail: ' . $exception, ['component' => 'ConfirmationMailListener', 'relatedObject' => $order]);
}
}
}