# lineItem: Ändern nicht möglich? Nur Menge (quantity)...

**URL:** <https://forum.shopware.com/t/lineitem-andern-nicht-moglich-nur-menge-quantity/62503>\
**Category:** Programmierung\
**Created:** [20. Oktober 2019 um 17:01 UTC](https://forum.shopware.com/t/lineitem-andern-nicht-moglich-nur-menge-quantity/62503 "2019-10-20T17:01:35Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Moorleiche](https://avatars.discourse-cdn.com/v4/letter/m/6f9a4e/32.png) [@Moorleiche](https://forum.shopware.com/u/Moorleiche)\
**Post date:** [20. Oktober 2019 um 17:01 UTC](https://forum.shopware.com/t/lineitem-andern-nicht-moglich-nur-menge-quantity/62503/1 "2019-10-20T17:01:35Z")

</div>

Hey,

für einen Produktkonfigurator möchte ich das nachträgliche Anpassen der Konfiguration ermöglichen. Jedoch scheint es hier einen fiesen Bug zu geben?

$lineItem-\>setLabel(‚ABCDEFG‘); // Geht nicht  
$lineItem-\>setQuantity(123);&nbsp;// Geht

Ich habe mich an das Beispiel des Storefront API Controllers gehalten:

[https://github.com/shopware/platform/blob/c649e8fb8071ce57113134ede8168caa5a353012/src/Core/Checkout/Cart/SalesChannel/SalesChannelCartController.php#L219](https://github.com/shopware/platform/blob/c649e8fb8071ce57113134ede8168caa5a353012/src/Core/Checkout/Cart/SalesChannel/SalesChannelCartController.php#L219)

Mein Bsp Controller:

```
/**
     * @Route("/bla/checkout/line-item/update/{id}", name="bla.checkout.line-item.update", defaults={"XmlHttpRequest": true}, methods={"POST"})
     */
    public function updateLineItem(Cart $cart, string $id, Request $request, SalesChannelContext $salesChannelContext): Response
    {
        try {
            $quantity = $request->get('quantity');

            if ($quantity === null) {
                throw new \InvalidArgumentException('quantity field is required');
            }

            if (!$cart->has($id)) {
                throw new LineItemNotFoundException($id);
            }

            $lineItem = $cart->get($id);
            //$lineItem = $cart->getLineItems()->get($id);

            $lineItem->setLabel('ABCDEFG'); // geht nicht
            $lineItem->setPayloadValue('bla', json_decode($request->get('bla'), true)); // geht nicht
            $lineItem->setQuantity((int) $quantity); // geht

            $cart = $this->cartService->recalculate($cart, $salesChannelContext);

            //$cart = $this->cartService->changeQuantity($cart, $id, (int) $quantity, $salesChannelContext);

            if (!$this->traceErrors($cart)) {
                $this->addFlash('success', $this->trans('checkout.cartUpdateSuccess'));
            }
        } catch (\Exception $exception) {
            $this->addFlash('danger', $this->trans('error.message-default'));
        }

        return $this->createActionResponse($request);
    }

```

Bis auf die Menge kann ich im WK nichts updaten, finde auch keine Ansätze oder Beispiele dazu - bis auf dem API Controller. Funktioniert halt nur nicht. Ist das ein Bug oder bin ich einfach zu blöd? 😉

---

<div class="post-metadata">

**Author:** ![develissimo](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/develissimo/32/12974_2.png) [@develissimo](https://forum.shopware.com/u/develissimo)\
**Post date:** [16. August 2020 um 18:54 UTC](https://forum.shopware.com/t/lineitem-andern-nicht-moglich-nur-menge-quantity/62503/2 "2020-08-16T18:54:38Z")

</div>

push&nbsp;

**$lineItem-\>setLabel(‘ABCDEFG’); // Geht nicht!**

$lineItem-\>setQuantity(123);&nbsp;// Geht

```
 $lineItem-\>setStackable(true); //Geht $lineItem-\>setRemovable(true); //Geht

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![shyim](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/shyim/32/7681_2.png) [@shyim](https://forum.shopware.com/u/shyim)\
**Post date:** [16. August 2020 um 21:24 UTC](https://forum.shopware.com/t/lineitem-andern-nicht-moglich-nur-menge-quantity/62503/3 "2020-08-16T21:24:32Z")

</div>

Der ProductProcessor passt es an. Du musst dich nach dem hängen

---

<div class="post-metadata">

**Author:** ![develissimo](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/develissimo/32/12974_2.png) [@develissimo](https://forum.shopware.com/u/develissimo)\
**Post date:** [17. August 2020 um 08:11 UTC](https://forum.shopware.com/t/lineitem-andern-nicht-moglich-nur-menge-quantity/62503/4 "2020-08-17T08:11:44Z")

</div>

@Shyim du meinst den “ProductCartProcessor”, ich schau mal ob es hier ein Event gibt worauf ich mich anhängen kann.

Danke einstweilen! Lg

&nbsp;

&nbsp;

---

<div class="post-metadata">

**Author:** ![develissimo](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/develissimo/32/12974_2.png) [@develissimo](https://forum.shopware.com/u/develissimo)\
**Post date:** [17. August 2020 um 09:39 UTC](https://forum.shopware.com/t/lineitem-andern-nicht-moglich-nur-menge-quantity/62503/5 "2020-08-17T09:39:23Z")

</div>

```
 LineItemAddedEvent kann hier helfen.

```

LineItemAddedSubscriber anlegen und in services.xml registrieren!

&nbsp;

Auszug aus LineItemAddedSubscriber.php

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

public function onLineItemAdded(LineItemAddedEvent $event): void
{
$lineItem = $event->getLineItem();
$lineItem->setPayload(['key' => $value]);
$lineItem->setLabel('Mein Custom Design');

```

&nbsp;

hier als Referenz ein&nbsp;services.xml Eintrag:

&nbsp;
