# Eigenes Facet fehlt in ProductStream

**URL:** <https://forum.shopware.com/t/eigenes-facet-fehlt-in-productstream/35929>\
**Category:** Programmierung\
**Created:** [11. April 2016 um 16:15 UTC](https://forum.shopware.com/t/eigenes-facet-fehlt-in-productstream/35929 "2016-04-11T16:15:59Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![shyim](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/shyim/32/7681_2.png) [@shyim](https://forum.shopware.com/u/shyim)\
**Post date:** [11. April 2016 um 16:15 UTC](https://forum.shopware.com/t/eigenes-facet-fehlt-in-productstream/35929/1 "2016-04-11T16:15:59Z")

</div>

Hallo,

komischerweise fehlt immer mein eigenes Facet auf dem ProductStream Seiten, Der CriteriaRequestHandler wird aufgerufen und er fügt auch den Facet hinzu, jedoch kommt dieser nie beim FacetHandler an. Ich habe alle Facets ausgedumpt die beim supportsFacet abgefragt werden, meiner fehlt leider nur auf dem Produktstream Seiten.

Ich habe folgende Events verwendet:

- 

```
 Shopware\_SearchBundleDBAL\_Collect\_Facet\_Handlers

```

- 

```
 Shopware\_SearchBundleDBAL\_Collect\_Condition\_Handlers

```

- 

```
 Shopware\_SearchBundle\_Collect\_Criteria\_Request\_Handlers

```

Ich konnte im Kern von Shopware auch kein -\>resetFacets finden :(.

Hat evtl. jemand eine Idee?

mfg,

Shyim

---

<div class="post-metadata">

**Author:** ![Oliver\_Skroblin](https://avatars.discourse-cdn.com/v4/letter/o/6bbea6/32.png) [@Oliver\_Skroblin](https://forum.shopware.com/u/Oliver_Skroblin)\
**Post date:** [12. April 2016 um 05:54 UTC](https://forum.shopware.com/t/eigenes-facet-fehlt-in-productstream/35929/2 "2016-04-12T05:54:26Z")

</div>

Hi,

die Filter der Product Streams müssen ein wenig besonders gehandelt werden, da diese möglicherweise mit den bereits im Product Stream hinterlegten Filter kolidieren würden.

Daher resetet zunächst die&nbsp;\Shopware\Components\ProductStream\CriteriaFactory::createCriteria alle Facetten. Die Facetten für Product Streams werden jedoch anschließend fürs Listing über die&nbsp;\Shopware\Components\ProductStream\FacetFilter Klasse gesetzt.&nbsp;

Diese Klasse kannst du dekorieren um deine eigene Facette in Listings anzuzeigen auch wenn Product Streams verwendet werden.

Solltest du deine Filter Möglichkeit auch bei den Product Streams supporten (Sprich im Backend kann man deinen Filter bei Product Streams&nbsp;auswählen), solltest du dir einmal die Implementierung vom Core ansehen und es genauso machen um keine Kollision mit dem Stream zu bekommen. Sollte das nicht der Fall sein so kannst du deine Facette einfach hinzufügen.

Hoffe das hilft dir weiter.

Gruß Oliver

---

<div class="post-metadata">

**Author:** ![oldschripp](https://avatars.discourse-cdn.com/v4/letter/o/50afbb/32.png) [@oldschripp](https://forum.shopware.com/u/oldschripp)\
**Post date:** [19. Mai 2016 um 09:08 UTC](https://forum.shopware.com/t/eigenes-facet-fehlt-in-productstream/35929/3 "2016-05-19T09:08:55Z")

</div>

Hi, wo genau muss ich ansetzen, um diese Klasse zu „dekorieren“? Gibt es ein kurzes Beispiel, wie man ein Facet hinzufügen kann, nachdem diese resettet wurden?

---

<div class="post-metadata">

**Author:** ![shyim](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/shyim/32/7681_2.png) [@shyim](https://forum.shopware.com/u/shyim)\
**Post date:** [19. Mai 2016 um 20:44 UTC](https://forum.shopware.com/t/eigenes-facet-fehlt-in-productstream/35929/4 "2016-05-19T20:44:30Z")

</div>

@oldschripp‍

Ich hab es via Dekorieren vom&nbsp;Enlight\_Bootstrap\_AfterInitResource\_shopware\_product\_stream.criteria\_factory gelöst.

```
class CriteriaFactory implements CriteriaFactoryInterface
{
    private $parentFactory;
    public function __construct(CriteriaFactoryInterface $parentFactory)
    {
        $this->parentFactory = $parentFactory;
    }
    /**
     * @param Request $request
     * @param ShopContextInterface $context
     *
     * @return Criteria
     */
    public function createCriteria(Request $request, ShopContextInterface $context)
    {
        $criteria = $this->parentFactory->createCriteria($request, $context);
        if (Shopware()->Container()->has('MyFacets')) {
            $facets = Shopware()->Container()->get('MyFacets');
            foreach ($facets as $facet) {
                $criteria->addFacet($facet);
            }
        }
        return $criteria;
    }
}

```

Ich hab meine Facets in den Container gepackt im CriteriaRequestHandler und nach dem resetten füge ich diese wieder hinzu. Wie oben im Beispiel einsehbar. Es gibt bestimmt eine bessere Methode, hatte jedoch in diesem Augenblick einfach keine Lust 🙂

---

<div class="post-metadata">

**Author:** ![oldschripp](https://avatars.discourse-cdn.com/v4/letter/o/50afbb/32.png) [@oldschripp](https://forum.shopware.com/u/oldschripp)\
**Post date:** [20. Mai 2016 um 14:57 UTC](https://forum.shopware.com/t/eigenes-facet-fehlt-in-productstream/35929/5 "2016-05-20T14:57:26Z")

</div>

@Shyim&nbsp;besten Dank, sieht gut aus 🙂
