# Produkte aus einem Produktstream auslesen

**URL:** https://forum.shopware.com/t/produkte-aus-einem-produktstream-auslesen/60476
**Category:** Programmierung
**Created:** [17. Juli 2019 um 10:06 UTC](https://forum.shopware.com/t/produkte-aus-einem-produktstream-auslesen/60476 "2019-07-17T10:06:19Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![ruppert](https://avatars.discourse-cdn.com/v4/letter/r/dfb087/32.png) [@ruppert](https://forum.shopware.com/u/ruppert)
#### Post date: [17. Juli 2019 um 10:06 UTC](https://forum.shopware.com/t/produkte-aus-einem-produktstream-auslesen/60476/1 "2019-07-17T10:06:19Z")

</div>

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

---

<div class="post-metadata">

### Author: ![mbdus](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/mbdus/32/12997_2.png) [@mbdus](https://forum.shopware.com/u/mbdus)
#### Post date: [17. Juli 2019 um 11:09 UTC](https://forum.shopware.com/t/produkte-aus-einem-produktstream-auslesen/60476/2 "2019-07-17T11:09:04Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![ruppert](https://avatars.discourse-cdn.com/v4/letter/r/dfb087/32.png) [@ruppert](https://forum.shopware.com/u/ruppert)
#### Post date: [17. Juli 2019 um 13:05 UTC](https://forum.shopware.com/t/produkte-aus-einem-produktstream-auslesen/60476/3 "2019-07-17T13:05:45Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![mbdus](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/mbdus/32/12997_2.png) [@mbdus](https://forum.shopware.com/u/mbdus)
#### Post date: [17. Juli 2019 um 13:29 UTC](https://forum.shopware.com/t/produkte-aus-einem-produktstream-auslesen/60476/4 "2019-07-17T13:29:58Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![ruppert](https://avatars.discourse-cdn.com/v4/letter/r/dfb087/32.png) [@ruppert](https://forum.shopware.com/u/ruppert)
#### Post date: [17. Juli 2019 um 13:33 UTC](https://forum.shopware.com/t/produkte-aus-einem-produktstream-auslesen/60476/5 "2019-07-17T13:33:24Z")

</div>

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

---

<div class="post-metadata">

### Author: ![ruppert](https://avatars.discourse-cdn.com/v4/letter/r/dfb087/32.png) [@ruppert](https://forum.shopware.com/u/ruppert)
#### Post date: [17. Juli 2019 um 13:48 UTC](https://forum.shopware.com/t/produkte-aus-einem-produktstream-auslesen/60476/6 "2019-07-17T13:48:19Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![eBerlin](https://avatars.discourse-cdn.com/v4/letter/e/b38774/32.png) [@eBerlin](https://forum.shopware.com/u/eBerlin)
#### Post date: [18. Mai 2022 um 05:51 UTC](https://forum.shopware.com/t/produkte-aus-einem-produktstream-auslesen/60476/7 "2022-05-18T05:51:28Z")

</div>

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

```auto
$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 );

```
