Hallo,
ich brauche im Checkout den Herstellernamen und erweitere deshalb den Payload:
/**
* Handles the stuff, that happens in both checkout pages
*
* @param CheckoutCartPageLoadedEvent|CheckoutConfirmPageLoadedEvent $event
*/
private function onCheckoutPagesRefresh ($event)
{
//do something in the checkout
$myLineItems = $event->getPage()->getCart()->getLineItems();
foreach ($myLineItems as $lineItem) {
$product = $this->getProductById($lineItem->getReferencedId(), $event->getContext());
if ($product->getManufacturer()) $lineItem->setPayloadValue('manufacturerName', $product->getManufacturer()->getName());
}
}
private function getProductById($productId, $context)
{
$product = $this->productRepository->search( (new Criteria([$productId]))->addAssociation('manufacturer'), $context )->getEntities()->first();
return $product;
}
Grundsätzlich klappt dass soweit gut. Wenn ich allerdings auf eine andere Sprache umschalte, liefert $product->getManufacturer()->getName()
eine leere Zeichenkette. Wenn ich $product->getManufacturer()
debugge, ist der Name dort auch leer, es gibt aber ein translated Object, dass den Herstellernamen enthält.
Hat jemand einen Tipp, wie ich daran kommen kann?
Viele Grüße, Frank