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); // Geht
Ich habe mich an das Beispiel des Storefront API Controllers gehalten:
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?