Hallo,
Wir versuchen, alle Varianten (mit Konfigurator values) in einem Listing über ein Plugin abzurufen. Gibt es eine Methode, die wir direkt verwenden können, um diese Daten zu erhalten?
Zum Hinzufügen von Daten verwenden wir normalerweise diese Art von Code im Plugin aber $article ist ein array.
Wir können es erreichen, indem wir dbase-queries hinzufügen, aber wir fragen uns, ob wir es einfacher machen können.
public function onPostDispatchListing(Enlight_Event_EventArgs $args)
{
// get config
$config = $this->container->get('shopware.plugin.cached_config_reader')->getByPluginName($this->getName(), $this->container->get('Shop'));
// get class
$sArticles = $args->getSubject();
// get current article
$article = $args->getReturn();
$article['extraData'] = 'lorem ipsum';
return $article;
}
Vielleicht is est mochlich via ein Service?
public function getList(array $numbers, ProductContextInterface $context)
{
$products = $this->service->getList($numbers, $context);
$productContext = $this->contextService->getShopContext();
return array_map(
function (ListProduct $product) use ($productContext) {
$variants = $product->getVARIANTS();
if (!$variants)
{
$product->addAttribute('myData', new Attribute([]));
}
else {
$product->addAttribute('myData', new Attribute(['variants' => $variants]));
}
return $product;
},
$products
);
}
Aber welcher method brauchen wir fur $variants = $product->getVARIANTS(); ?
Danke!!