lineItem->setPayloadValue in event CheckoutConfirmPageLoadedEvent wird nicht gespeichert

Hallo,

ich möchte im Event CheckoutConfirmPageLoadedEvent per lineItem->setPayloadValue speichern.

Leider wird der Wert aber nicht abgespeichert. Auf der folgeseite ist der Payload wieder verloren.

public function onCheckoutConfirmPageLoadedEvent( CheckoutConfirmPageLoadedEvent $event )
{
    $lineItems = $checkoutConfirmPageLoadedEvent->getPage()->getCart()->getLineItems();

    foreach($lineItems as $item){

        $item->setPayloadValue('test', 'test');
    }
}

Der Aufruf des Events funkioniert. Wenn ich einen Dump auf der Confirmationseite mach, ist der Payload nach einem reload auch im LineItem.

Nachdem ich dann aber die Bestellung mache und auf die “Finish-Seite” weitergeleitet werde, ist der Payload wieder verloren.

Hat jemand eine Idee, woran das liegen könnte?

 

Danke sehr!

Kann niemand helfen?

Nach dem PageLoadedEvent wird der Warenkorb nicht erneut in die DB geschrieben. Entweder nutzt Du das LineItemAdded event oder schreibst einen CartProcessor (shopware.cart.processor)

Viele Grüße

1 „Gefällt mir“

O.K. vielen Dank. Ich werde mir den CartProcessor mal ansehen.