<?php
namespace Nextag\Checkout\Subscriber;
use Shopware\Core\Checkout\Cart\Event\BeforeLineItemAddedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RequestStack;
class LineItemAdded implements EventSubscriberInterface
{
private $requestStack;
public function __construct(RequestStack $requestStack)
{
$this->requestStack = $requestStack;
}
public static function getSubscribedEvents()
{
return [
BeforeLineItemAddedEvent::class => 'onLineItemAdded'
];
}
public function onLineItemAdded(BeforeLineItemAddedEvent $event)
{
$lineItem = $event->getLineItem();
$lineItems = $this->requestStack->getCurrentRequest()->get('lineItems');
if($lineItems === null) {
return;
}
foreach ($lineItems as $key => $item) {
if ($lineItem->getReferencedId() == $key && isset($item['customData'])) {
$lineItem->setPayloadValue('customData', $item['customData']);
}
}
}
}