# Cart Payload erweitern

**URL:** https://forum.shopware.com/t/cart-payload-erweitern/64837
**Category:** Programmierung
**Created:** [19. Februar 2020 um 12:00 UTC](https://forum.shopware.com/t/cart-payload-erweitern/64837 "2020-02-19T12:00:32Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![nicbert6](https://avatars.discourse-cdn.com/v4/letter/n/c67d28/32.png) [@nicbert6](https://forum.shopware.com/u/nicbert6)
#### Post date: [19. Februar 2020 um 12:00 UTC](https://forum.shopware.com/t/cart-payload-erweitern/64837/1 "2020-02-19T12:00:32Z")

</div>

Hallo,

wenn ich mich an das Event&nbsp;LineItemAddedEvent::class =\> ‚onLineItemAdded‘ einhänge, möchte ich ein custom field im Warenkorb ausgeben.

Dies habe ich bis jetzt so gelöst:

```
public function onLineItemAdded(LineItemAddedEvent $event)
    {
        $myCart = $event->getCart();
        $myLineItems = $myCart->getLineItems();

        foreach ($myLineItems as $key => $item) {
            
            if ($product_id == $key && $item->hasPayloadValue('test1') == false) {
                $lineItem->setPayloadValue('test1', 'test1');
            }
        }
    }

```

Leider wird die Variable „test1“ aber nicht in der&nbsp;offcanvas-cart.html.twig ausgegeben.

Weiß jemand Rat?

---

<div class="post-metadata">

### Author: ![mowlwurf](https://avatars.discourse-cdn.com/v4/letter/m/77aa72/32.png) [@mowlwurf](https://forum.shopware.com/u/mowlwurf)
#### Post date: [20. Februar 2020 um 09:31 UTC](https://forum.shopware.com/t/cart-payload-erweitern/64837/2 "2020-02-20T09:31:48Z")

</div>

Hi,

ich habe selbiges Unterfangen wie folgt gelöst

```
/**
     * @return array
     */
    public static function getSubscribedEvents(): array
    {
        return[
            LineItemAddedEvent::class => 'onLineItemAdded',
        ];
    }

    /**
     * @param LineItemAddedEvent $event
     * @throws \Shopware\Core\Checkout\Cart\Exception\InvalidPayloadException
     */
    public function onLineItemAdded(LineItemAddedEvent $event): void
    {
        $lineItem = $event->getLineItem();
        /** @var ProductEntity $product */
        foreach ($this->requestStack->getCurrentRequest()->get('lineItems') as $key => $item) {
            if ($lineItem->getId() == $key) {
                $lineItem->setPayloadValue('test', 'test1');
            }
        }
    }
}

```

Ich schätze mal durch&nbsp;$myLineItems = $myCart-\>getLineItems(); arbeitest Du nur noch auf einer Kopie und veränderst nicht die tatsächliche LineItemCollection in der Cart. Sprich Dir fehlt der Setter um Deine bearbeitete Collection der Cart wieder zuzuweisen.
