Produkte aus einem Produktstream auslesen

Hallo Zusammen,

ich würde gerne verstehen wie ich aus einem gegebenen Product-Stream mit der id X alle Artikeln auslesen kann.

Ich habe dazu folgenden Shopware Code gefunden:

$context = $this->container->get('shopware_storefront.context_service')->getShopContext();
$criteria = $this->container->get('shopware_product_stream.criteria_factory')
            ->createCriteria($this->Request(), $context);
$this->container->get('shopware_product_stream.repository')->prepareCriteria($criteria, $streamId);
$products = $this->container->get('shopware_search.product_search')->search($criteria, $context);
$convertedProducts = $this->container->get('legacy_struct_converter')
            ->convertListProductStructList($products->getProducts());

In meinem Fall habe ich aber keinen Request. Ich möchte nur alle Artikel des Streams auslesen. Brauche ich dafür einen Request? Falls ja, wozu? Und geht es auch ohne?

Wäre für alle Hinwese sehr dankbar!

Schöne Grüße,

Nikolaj Ruppert

In einer Kategorie geht das über die KategorieID. In einer Einkaufswelt über die ElementID. Damit kann man dann an die streamId gelangen. Ein Request wird aber benötigt.

Danke, aber mein Usecase hat nichts mit Kategrien oder Einkaufswelten zutun. Ein Productstream errechnet doch auf die eine oder andere Weise eine Artikelmenge. Diese Artikelmenge hätte ich gerne.

Ja, aber irgendwie muss man an die streamId ran kommen. Im Backend wird die streamId direkt übergeben. Im Frontend wird diese über die Kategorie oder Einkaufswelt ausgelesen.

Ich habe die StreamId. Ich muss nur die Artikeln ein bestimten Streams auslesen.

Das hier scheint zu funktionieren:

$streamId = 1;
$context = Shopware()->Container()->get( 'shopware_storefront.context_service' )->getShopContext();
$criteria = new Criteria();
Shopware()->Container()->get( 'shopware_product_stream.repository' )->prepareCriteria ( $criteria, $streamId );
$products = Shopware()->Container()->get( 'shopware_search.product_search' )->search ( $criteria, $context );

Also der Unterschied zum oberen Codesnippet ist, dass eine “leere” Criteria übergeben wird.

Bei mir geht das nicht, solange ich kein Limit definiere…
Ich mcöhte allerdings alle Artikel erhalten. Seit ihr ebenfalls auf das Problem gestoßen ?
Vg

$streamId = 108;
            $context = Shopware()->Container()->get( 'shopware_storefront.context_service' )->getShopContext();
            $criteria = new Criteria();
            $criteria->limit(12);
            Shopware()->Container()->get( 'shopware_product_stream.repository' )->prepareCriteria ( $criteria, $streamId );
            $productResult = Shopware()->Container()->get( 'shopware_search.product_search' )->search ( $criteria, $context );