<?php declare(strict_types=1);
namespace NrbnSenertec\Subscriber;
use Shopware\Core\Checkout\Cart\Order\CartConvertedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RequestStack;
class OrderSubscriber 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) {
$orderData = $event->getConvertedCart();
$orderCustomFields = $orderData['customFields'] ?? [];
$nrbn_comment_shipping = $this->requestStack->getCurrentRequest()->request->get('nrbn_comment_shipping');
$nrbn_shipping_date = $this->requestStack->getCurrentRequest()->request->get('nrbn_shipping_date');
$nrbn_shipping_complete = $this->requestStack->getCurrentRequest()->request->get('nrbn_shipping_complete');
$nrbn_subject_commission = $this->requestStack->getCurrentRequest()->request->get('nrbn_subject_commission');
if ($nrbn_comment_shipping){
$orderCustomFields['nrbn_orderattributes_comment_shipping'] = $nrbn_comment_shipping;
}
if ($nrbn_shipping_date){
$orderCustomFields['nrbn_orderattributes_shipping_date'] = $nrbn_shipping_date;
}
if ($nrbn_shipping_complete){
$orderCustomFields['nrbn_orderattributes_shipping_complete'] = (bool) $nrbn_shipping_complete;
}
if ($nrbn_subject_commission){
$orderCustomFields['nrbn_subject_commission'] = $nrbn_subject_commission;
}
$orderData['customFields'] = $orderCustomFields;
$event->setConvertedCart($orderData);
}
}