ListingProduct erweitern

Hallo, ich möchte gerne bei den Listing Artikeln ebenfalls alle media images haben wie es bei Detail Artikeln der Fall ist. Sehe ich es richtig das ich dazu den kompletten ListProductService mit einem decorator extende und dann eine neue Product-Klasse welche von ListProduct ableitet anlegen muss? Edit: Habe es hinbekommen wen die Lösung interessiert: Unsere Bootstrap muss um den Decorator für den list product service erweitert werden. $this-\>subscribeEvent( 'Enlight\_Bootstrap\_AfterInitResource\_shopware\_storefront.list\_product\_service', 'decorateService' ); public function decorateService() { $coreService = Shopware()-\>Container()-\>get('shopware\_storefront.list\_product\_service'); $mediaService = Shopware()-\>Container()-\>get('shopware\_storefront.media\_service'); $rhinosListService = new RhinosListProductService($coreService, $mediaService); Shopware()-\>Container()-\>set('shopware\_storefront.list\_product\_service', $rhinosListService); } Danach kann man den Service implementieren [code]<?php namespace ShopwarePlugins\RhinosExtendListingProduct\StoreFrontBundle;

use Shopware\Bundle\StoreFrontBundle\Service\ListProductServiceInterface;
use Shopware\Bundle\StoreFrontBundle\Service\MediaServiceInterface;
use Shopware\Bundle\StoreFrontBundle\Struct;

class RhinosListProductService implements ListProductServiceInterface {
private $service;
private $mediaService;

function __construct(ListProductServiceInterface $service, MediaServiceInterface $mediaService) {
    $this->service = $service; $this-\>mediaService = $mediaService; } public function getList(array $numbers, Struct\ProductContextInterface $context) { $products = $this-\>service-\>getList($numbers, $context); $media = $this-\>mediaService-\>getProductsMedia($products, $context); foreach($numbers as $number) { $product = $products[$number]; if(isset($media[$number])) { $attribute = new Struct\Attribute(['images' =\> $media[$number]]); $product-\>addAttribute('rhinos\_plugin\_system', $attribute); } $products[$number] = $product; } return $products; } public function get($number, Struct\ProductContextInterface $context) { $products = $this-\>getList([$number], $context); return array\_shift($products); } } [/code]

Hallo! Vielen Dank schon mal fürs Teilen deiner Lösung. Eine Frage hätte ich. Wie liest du die Daten anschließend im Template aus und gibst diese aus? Für eine Rückmeldung wäre ich dankbar. Viele Grüße Max

[quote=“macxman”]Hallo! Vielen Dank schon mal fürs Teilen deiner Lösung. Eine Frage hätte ich. Wie liest du die Daten anschließend im Template aus und gibst diese aus? Für eine Rückmeldung wäre ich dankbar. Viele Grüße Max[/quote] Schau mal in der var $products. Im Theme mal ausgeben mit {var_dump($products)}

Hi! Danke für deine Antwort. Die $products gibt mir NULL zurück. Das Attribut rhinos_plugin_system ist nicht leer. Da habe ich ein Objekt drin verstehe aber nicht so ganz wie das auslesen kann. Wenn ich auf einzelne Werte aus dem Array zugreifen möchte bekomme ich immer die Fehlermeldung : Cannot use object of type Shopware\Bundle\StoreFrontBundle\Struct\Attribute as array in ... LG Max