# Filterungen nach Eigenschaftsoptionen

**URL:** <https://forum.shopware.com/t/filterungen-nach-eigenschaftsoptionen/102181>\
**Category:** Programmierung\
**Created:** [5. Dezember 2023 um 14:44 UTC](https://forum.shopware.com/t/filterungen-nach-eigenschaftsoptionen/102181 "2023-12-05T14:44:59Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Milad](https://avatars.discourse-cdn.com/v4/letter/m/919ad9/32.png) [@Milad](https://forum.shopware.com/u/Milad)\
**Post date:** [5. Dezember 2023 um 14:44 UTC](https://forum.shopware.com/t/filterungen-nach-eigenschaftsoptionen/102181/1 "2023-12-05T14:44:59Z")

</div>

Hallo,

ich habe Filterungen nach Eigenschaftsoptionen auf der Produktlistenseite und versuche, dies so zu gestalten, dass beispielsweise bei Auswahl einer Herstelleroption nur einige Optionen nach der Größeneigenschaft angezeigt werden.

Dazu habe ich versucht, die Kriterien mit ProductListingCmsElementResolver oder ProductListingCollectFilterEvent zu überschreiben.

Ich habe ein paar Tage daran gearbeitet, leider kann es nicht hinbekommen.

Also die Frage wäre:  
Wie & wo kann die Aggregationsoptionen überschreiben?

Weitere Informationen:  
im Twig Template gibt es ein Foreach für Optionen (property.options):  
_Storefront/storefront/component/listing/filter-panel.html.twig_

```auto
{% sw_include '@Storefront/storefront/component/listing/filter/filter-property-select.html.twig' with {
        elements: property.options,
        sidebar: sidebar,
        name: 'properties',
        displayName: property.translated.name,
        displayType: property.displayType,
        pluginSelector: 'filter-property-select',
        propertyName: property.translated.name
    } %}

```

Ich freue mich auf Ihre Antwort… Danke im Vorab! : )

---

<div class="post-metadata">

**Author:** ![AlexGalax](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/alexgalax/32/9925_2.png) [@AlexGalax](https://forum.shopware.com/u/AlexGalax)\
**Post date:** [6. Dezember 2023 um 05:50 UTC](https://forum.shopware.com/t/filterungen-nach-eigenschaftsoptionen/102181/2 "2023-12-06T05:50:55Z")

</div>

Du kannst in den Admin-Einstellungen unter Produkte → Produkt die Option _„Filteroptionen ohne Ergebnisse deaktivieren“_ setzen. Dann werden nur Filter angezeigt, die auch Ergebnisse haben.

Wenn du unbedingt die Aggegations anpassen musst, dann kanns du die Result-Events nehmen:

```php
public static function getSubscribedEvents()
{
    return [
        ProductListingResultEvent::class => 'onListingResult',
        ProductSearchResultEvent::class => 'onSearchResult',
        ...
    ];
}

public function onListingResult(ProductListingResultEvent $event)
{
    $this->filterResultAggregations($event->getResult()->getAggregations());
}

public function onSearchResult(ProductSearchResultEvent $event)
{
    $this->filterResultAggregations($event->getResult()->getAggregations());
}

private function filterAggregations(AggregationResultCollection $aggregations)
{
    if($aggregations->has('properties')){
        $properties = $aggregations->get('properties');
        ...

```

---

<div class="post-metadata">

**Author:** ![Milad](https://avatars.discourse-cdn.com/v4/letter/m/919ad9/32.png) [@Milad](https://forum.shopware.com/u/Milad)\
**Post date:** [6. Dezember 2023 um 06:27 UTC](https://forum.shopware.com/t/filterungen-nach-eigenschaftsoptionen/102181/3 "2023-12-06T06:27:21Z")

</div>

> [@AlexGalax](#):
>
> `filterResultAggregations`

Vielen Dank für die Antwort!

Ich muss unbedingt die Aggregationen anpassen. Weil ich die Optionen der Eigenschaften manuell auswählen muss.

```auto
private function filterAggregations(AggregationResultCollection $aggregations)
{
    if($aggregations->has('properties')){
        $properties = $aggregations->get('properties');
        ...

```

Das Ergebnis erhalte ich auch aus ProductListingCmsElementResolver.php. Leider weiß ich nicht, wie ich die Optionen entfernen kann.

Ich habe hier beispielsweise 255 Optionen und möchte nur 10 davon anzeigen:

```auto
#elements: array:1 [▼
    "properties" => Shopware\Core\Framework\DataAbstractionLayer\Search\AggregationResult\Metric\EntityResult {#10912 ▼
      #extensions: []
      #name: "properties"
      #entities: Shopware\Core\Content\Property\PropertyGroupCollection {#32447 ▼
        #extensions: []
        #elements: array:8 [▼
          0 => Shopware\Core\Content\Property\PropertyGroupEntity {#32445 ▼
            #extensions: array:2 [▶]
            #_uniqueIdentifier: "56bdc48fe2d5430d9f84a618af066dd5"
            #versionId: null
            #translated: array:4 [▶]
            #createdAt: DateTimeImmutable @1697195048 {#17966 ▶}
            #updatedAt: null
            -_entityName: null
            -_fieldVisibility: null
            #name: "size"
            #displayType: "text"
            #sortingType: "alphanumeric"
            #description: "Size"
            #position: 1
            #filterable: true
            #visibleOnProductDetailPage: true
            #options: Shopware\Core\Content\Property\Aggregate\PropertyGroupOption\PropertyGroupOptionCollection {#30535 ▼
              #extensions: []
              #elements: array:255 [▼
                "eb4b835b72a14081b8978a26267353dd" => Shopware\Core\Content\Property\Aggregate\PropertyGroupOption\PropertyGroupOptionEntity {#31742 …23}
                "443eabd6c0a14046aec2779214a049d0" => Shopware\Core\Content\Property\Aggregate\PropertyGroupOption\PropertyGroupOptionEntity {#24189 …23}
                "51313ec44879451fb40e4907eb810fcf" => Shopware\Core\Content\Property\Aggregate\PropertyGroupOption\PropertyGroupOptionEntity {#24549 …23}
                "5068b558a263406bbc5ff67364125785" => Shopware\Core\Content\Property\Aggregate\PropertyGroupOption\PropertyGroupOptionEntity {#24497 …23}
                "76dc2f20fecd4176ab4c88ac959615b9" => Shopware\Core\Content\Property\Aggregate\PropertyGroupOption\PropertyGroupOptionEntity {#26426 …23}
                "be967dbbf6984f14bd6498d8acb980d3" => Shopware\Core\Content\Property\Aggregate\PropertyGroupOption\PropertyGroupOptionEntity {#29725 …23}
                "368417e4b0d44fbcac107741b58715bc" => Shopware\Core\Content\Property\Aggregate\PropertyGroupOption\PropertyGroupOptionEntity {#23411 …23}
                "1127659168fd44c0b06242f3694a9ead" => Shopware\Core\Content\Property\Aggregate\PropertyGroupOption\PropertyGroupOptionEntity {#21735 …23}
                "d685e76e50cb4132839228f3d0897723" => Shopware\Core\Content\Property\Aggregate\PropertyGroupOption\PropertyGroupOptionEntity {#30589 …23}
....

```
