<?php declare(strict_types=1);
namespace brain\blaco\Subscriber;
use Shopware\Core\Checkout\Cart\Order\CartConvertedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RequestStack;
class CartConvertedSubscriber implements EventSubscriberInterface
{
private RequestStack $requestStack;
public function __construct(RequestStack $requestStack)
{
$this->requestStack = $requestStack;
}
public static function getSubscribedEvents(): array
{
return [
CartConvertedEvent::class => 'addCustomFieldsToOrder'
];
}
public function addCustomFieldsToOrder(CartConvertedEvent $event): void
{
$orderData = $event->getConvertedCart();
$orderCustomFields = $orderData['customFields'] ?? [];
$customParcelLocker = $this->requestStack->getCurrentRequest()->request->get('scontrinoCheckbox');
$customLocker = $this->requestStack->getCurrentRequest()->request->get('easypack-map-value');
if ($customParcelLocker == 'on') {
$orderCustomFields['scontrino_checkbox'] = true;
}
else {
$orderCustomFields['scontrino_checkbox'] = false;
}
if (!empty($customLocker)){
$orderCustomFields['migration_blacoapi_order_inPost_name'] = $customLocker;
}
$orderData['customFields'] = $orderCustomFields;
$event->setConvertedCart($orderData);
}
}