# Filtern nach Maßen

**URL:** <https://forum.shopware.com/t/filtern-nach-massen/29686>\
**Category:** Allgemein\
**Created:** [17. August 2015 um 08:23 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686 "2015-08-17T08:23:42Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![JeZe](https://avatars.discourse-cdn.com/v4/letter/j/dec6dc/32.png) [@JeZe](https://forum.shopware.com/u/JeZe)\
**Post date:** [17. August 2015 um 08:23 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/1 "2015-08-17T08:23:42Z")

</div>

Ich muss einen Filter erstellen, wo man nach Höhe/Länge/Breite eines Produkts filtern können soll. Die Werte sind bei allen Produkten gepflegt. a) Wie bekomme ich diese Werte überhaupt in einen Filter ohne sie redundant über Eigenschaften nachzubilden (da müsste ich ja für jedes Maß eine Option anlegen, oder mache ich einen Denkfehler!?)? b) die intuitivste Lösung wären meines Erachtens drei Slider wie beim Preisflter (Höhe/Länge/Breite). Allerdings habe ich das noch bei keinem Shop so geshen, obwohl es auf der Hand liegt. Irgendeine Möglichkeit das zu realisieren? Im Vorraus besten Dank!

---

<div class="post-metadata">

**Author:** ![DanielNogel](https://avatars.discourse-cdn.com/v4/letter/d/96bed5/32.png) [@DanielNogel](https://forum.shopware.com/u/DanielNogel)\
**Post date:** [17. August 2015 um 10:39 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/2 "2015-08-17T10:39:56Z")

</div>

Hi, die grundsätzliche Doku dazu finde sich hier: [https://developers.shopware.com/develop … ch-bundle/](https://developers.shopware.com/developers-guide/shopware-5-search-bundle/) Wollte da aus Dokumentationsgründen eh nochmal ein kleines Beispiel bauen, das findest du im Anhang. Ist natürlich nur zur Veranschaulichung, kann / wird sicher noch Fehler enthalten. Vom grundsätzlichen Vorgehen sollte das aber einleuchtend sein, denke ich. Daniel

---

<div class="post-metadata">

**Author:** ![JeZe](https://avatars.discourse-cdn.com/v4/letter/j/dec6dc/32.png) [@JeZe](https://forum.shopware.com/u/JeZe)\
**Post date:** [17. August 2015 um 13:23 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/3 "2015-08-17T13:23:03Z")

</div>

Super - das ist auf jeden Fall mal gutes Material, mit dem ich mich beschäftigen kann und was ich vor allem auch nicht über Google gefunden habe. Vielen Dank!

---

<div class="post-metadata">

**Author:** ![JeZe](https://avatars.discourse-cdn.com/v4/letter/j/dec6dc/32.png) [@JeZe](https://forum.shopware.com/u/JeZe)\
**Post date:** [17. August 2015 um 19:21 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/4 "2015-08-17T19:21:55Z")

</div>

Das funktioniert perfekt! Vielen Dank! Das einzige, was mich noch interessieren würde ist, wo die Facet-Label „width“, „height“ und „length“ initial hergeholt werden. Ein kleiner Hinweis diesbzgl. würde mich freuen. 🙂

---

<div class="post-metadata">

**Author:** ![DanielNogel](https://avatars.discourse-cdn.com/v4/letter/d/96bed5/32.png) [@DanielNogel](https://forum.shopware.com/u/DanielNogel)\
**Post date:** [17. August 2015 um 20:14 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/5 "2015-08-17T20:14:58Z")

</div>

Hi, Im DimensionFacetHandler müsstest du das Snippet hier finden ` return new RangeFacetResult( $facet-\>getName(), $criteria-\>hasCondition($facet-\>getName()), $facet-\>getName(), $min, $max, $min, $max, $facet-\>getName() . '\_min', $facet-\>getName() . '\_max'` Da kannst du deine Textbausteine rein bringen. Übersetzung geht über den Shopware Snippet Manager, das ist jetzt am Handy aber schwer zu zeigen 🙂 Daniel Gesendet von meinem SM-N910F mit Tapatalk

---

<div class="post-metadata">

**Author:** ![JeZe](https://avatars.discourse-cdn.com/v4/letter/j/dec6dc/32.png) [@JeZe](https://forum.shopware.com/u/JeZe)\
**Post date:** [17. August 2015 um 20:56 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/6 "2015-08-17T20:56:03Z")

</div>

Hab’s. Funktioniert prima. Danke!

---

<div class="post-metadata">

**Author:** ![Mario\_Fehr](https://avatars.discourse-cdn.com/v4/letter/m/7ab992/32.png) [@Mario\_Fehr](https://forum.shopware.com/u/Mario_Fehr)\
**Post date:** [20. August 2015 um 11:48 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/7 "2015-08-20T11:48:56Z")

</div>

[quote=“Daniel Nögel”]Hi, Im DimensionFacetHandler müsstest du das Snippet hier finden ` return new RangeFacetResult( $facet-\>getName(), $criteria-\>hasCondition($facet-\>getName()), $facet-\>getName(), $min, $max, $min, $max, $facet-\>getName() . '\_min', $facet-\>getName() . '\_max'` Da kannst du deine Textbausteine rein bringen. Übersetzung geht über den Shopware Snippet Manager, das ist jetzt am Handy aber schwer zu zeigen 🙂 Daniel Gesendet von meinem SM-N910F mit Tapatalk[/quote] Ich verstehe nicht ganz wie ich die Textbausteine in DimensionFacetHandler einbauen soll. Kann mir bitte jemand einen Tipp geben?

---

<div class="post-metadata">

**Author:** ![Mario\_Fehr](https://avatars.discourse-cdn.com/v4/letter/m/7ab992/32.png) [@Mario\_Fehr](https://forum.shopware.com/u/Mario_Fehr)\
**Post date:** [21. August 2015 um 12:13 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/8 "2015-08-21T12:13:55Z")

</div>

Keiner eine Idee?

---

<div class="post-metadata">

**Author:** ![DanielNogel](https://avatars.discourse-cdn.com/v4/letter/d/96bed5/32.png) [@DanielNogel](https://forum.shopware.com/u/DanielNogel)\
**Post date:** [21. August 2015 um 21:21 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/9 "2015-08-21T21:21:06Z")

</div>

Hi, der kurze Weg ist: `Shopware()-\>Snippets()-\>getNamespace('dein/namespace')-\>get('snippetName')` Dann kannst du das über das Textbausteine-Modul verwalten. Besten Gruß, Daniel

---

<div class="post-metadata">

**Author:** ![JeZe](https://avatars.discourse-cdn.com/v4/letter/j/dec6dc/32.png) [@JeZe](https://forum.shopware.com/u/JeZe)\
**Post date:** [22. August 2015 um 02:01 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/10 "2015-08-22T02:01:20Z")

</div>

> [@Mario Fehr](#):
>
> [quote=„Daniel Nögel“]Hi, Im DimensionFacetHandler müsstest du das Snippet hier finden ` return new RangeFacetResult( $facet-\>getName(), $criteria-\>hasCondition($facet-\>getName()), $facet-\>getName(), $min, $max, $min, $max, $facet-\>getName() . '\_min', $facet-\>getName() . '\_max'` Da kannst du deine Textbausteine rein bringen. Übersetzung geht über den Shopware Snippet Manager, das ist jetzt am Handy aber schwer zu zeigen 🙂 Daniel Gesendet von meinem SM-N910F mit Tapatalk[/quote] Ich verstehe nicht ganz wie ich die Textbausteine in DimensionFacetHandler einbauen soll. Kann mir bitte jemand einen Tipp geben?

---

<div class="post-metadata">

**Author:** ![JeZe](https://avatars.discourse-cdn.com/v4/letter/j/dec6dc/32.png) [@JeZe](https://forum.shopware.com/u/JeZe)\
**Post date:** [22. August 2015 um 02:05 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/11 "2015-08-22T02:05:52Z")

</div>

Ich habe jetzt irgendwie das Problem, dass sich der Slider seine Position nicht merkt, nachdem die Artikel gefiltert wurden. Allerdings meine ich, dass dies bereits funktioniert hätte. Irgendeine Idee?

---

<div class="post-metadata">

**Author:** ![Mario\_Fehr](https://avatars.discourse-cdn.com/v4/letter/m/7ab992/32.png) [@Mario\_Fehr](https://forum.shopware.com/u/Mario_Fehr)\
**Post date:** [24. August 2015 um 16:59 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/12 "2015-08-24T16:59:56Z")

</div>

Danke, ihr habt mir sehr geholfen. Meine Lösung sieht nun so aus: `switch ($facet-\>getName()) { case "height": $label = Shopware()-\>Snippets()-\>getNamespace('engine/Shopware/Plugins/Local/Frontend/SwagDimensionFilter')-\>get('height'); break; case "width": $label = Shopware()-\>Snippets()-\>getNamespace('engine/Shopware/Plugins/Local/Frontend/SwagDimensionFilter')-\>get('width'); break; case "length": $label = Shopware()-\>Snippets()-\>getNamespace('engine/Shopware/Plugins/Local/Frontend/SwagDimensionFilter')-\>get('length'); break; } return new RangeFacetResult( $facet-\>getName(), $criteria-\>hasCondition($facet-\>getName()), $label, $min, $max, $min, $max, $facet-\>getName() . '\_min', $facet-\>getName() . '\_max' );` @JeZe: Also bei mir funktioniert das noch siehe:

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/8/864431d88d32be883ce9097cedb6433ce6bc5097.png)

---

<div class="post-metadata">

**Author:** ![JeZe](https://avatars.discourse-cdn.com/v4/letter/j/dec6dc/32.png) [@JeZe](https://forum.shopware.com/u/JeZe)\
**Post date:** [24. August 2015 um 21:46 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/13 "2015-08-24T21:46:07Z")

</div>

Was passiert, wenn Du in dem gezigten Zustand auf “Produkte anzeigen” klickst? Dann behält der Filter bei mir nicht den Wert. Und meines Erachtens kann er das auch nicht mit folgendem Code: `return new RangeFacetResult( $facet-\>getName(), // facetName $criteria-\>hasCondition($facet-\>getName()), // active $facet-\>getName(), // label $min, // slider min $max, // slider max $min, // active min $max, // active max $facet-\>getName() . '\_min', // min field name $facet-\>getName() . '\_max' // max field name );` Dem obigen Code zufolge ist der aktive Min- und Max-Wert immer gleich dem absoluten Min- und Max-Wert (Parameter 4-7) oder sehe ich das falsch? Wo bekomme ich denn den aktiven min bzw. max-Wert her?

---

<div class="post-metadata">

**Author:** ![Mario\_Fehr](https://avatars.discourse-cdn.com/v4/letter/m/7ab992/32.png) [@Mario\_Fehr](https://forum.shopware.com/u/Mario_Fehr)\
**Post date:** [24. August 2015 um 22:30 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/14 "2015-08-24T22:30:59Z")

</div>

Da hast du recht, habe ich übersehen. Vordem klick auf den Button:

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/4/42157f4730dcc52dbc682059085cf58f11fa14f4.png) und dannach: ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/e/e230fbe1c2206df8a352e4ec1e4f03a3ea979883.png)

---

<div class="post-metadata">

**Author:** ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)\
**Post date:** [9. Juni 2016 um 12:02 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/15 "2016-06-09T12:02:31Z")

</div>

> [@Daniel Nögel schrieb:](https://forum.shopware.com/profile/4010/Daniel%20N%C3%B6gel "Daniel%20N%C3%B6gel")
> 
> Hi,
> 
> die grundsätzliche Doku dazu finde sich hier:
> 
> [https://developers.shopware.com/develop … ch-bundle/](https://developers.shopware.com/developers-guide/shopware-5-search-bundle/?_ga=1.97328861.37122817.1430139119)
> 
> Wollte da aus Dokumentationsgründen eh nochmal ein kleines Beispiel bauen, das findest du im Anhang. Ist natürlich nur zur Veranschaulichung, kann / wird sicher noch Fehler enthalten.
> 
> Vom grundsätzlichen Vorgehen sollte das aber einleuchtend sein, denke ich.
> 
> Daniel

könntest du den Anhang wieder zur Verfügungstellen? Dieser ist wohl im Zuge des neuen Forums verschollen. Danke

---

<div class="post-metadata">

**Author:** ![bluewolf](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/bluewolf/32/7886_2.png) [@bluewolf](https://forum.shopware.com/u/bluewolf)\
**Post date:** [14. Oktober 2016 um 15:31 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/16 "2016-10-14T15:31:25Z")

</div>

Hi, hier meine Ergänzungen:

FacetHandler:

```
    public function generateFacet(
        FacetInterface $facet,
        Criteria $criteria,
        Struct\ShopContextInterface $context
    ) {

        list($min, $max) = $this->getMinAndMaxValues($facet, $criteria, $context);
        
        /** get label */
        
        switch ($facet->getName()) {
            case "height":
            $label = Shopware()->Snippets()->getNamespace('frontend/listing/facet_labels')->get('DFheight');
            break;
            case "width":
            $label = Shopware()->Snippets()->getNamespace('frontend/listing/facet_labels')->get('DFwidth');
            break;
            case "length":
            $label = Shopware()->Snippets()->getNamespace('frontend/listing/facet_labels')->get('DFlength');
            break;
        }
        
        /** get filter settings after "show articles" */
        if ($condition = $criteria->getCondition($facet->getName())) {
            $activeMin = $condition->getMin();
            $activeMax = $condition->getMax();
        }

        /** if = show filter if there is more than one article & min != max */
 if ($min > 0 && $min != $max) {
     return new RangeFacetResult(
         $facet->getName(),
         $criteria->hasCondition($facet->getName()),
         $label,
         (float) $min,
         (float) $max,
         (float) $activeMin,
         (float) $activeMax,
         $facet->getName() . '_min',
         $facet->getName() . '_max'
     );
 }
 return false;
    }

```

&nbsp;

Die Snippets: in “mein\_plugin/Snippets/frontend/listing/facet\_labels.ini”

```
[en_GB]
DFwidth = "width"
DFheight = "height"
DFlength = "length"
[de_DE]
DFwidth = "Breite"
DFheight = "Höhe"
DFlength = "Länge"

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![phil123](https://avatars.discourse-cdn.com/v4/letter/p/5f9b8f/32.png) [@phil123](https://forum.shopware.com/u/phil123)\
**Post date:** [17. Oktober 2016 um 13:29 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/17 "2016-10-17T13:29:55Z")

</div>

> [@Daniel Nögel schrieb:](https://forum.shopware.com/profile/4010/Daniel%20N%C3%B6gel "Daniel%20N%C3%B6gel")

> Hi,
> 
> die grundsätzliche Doku dazu finde sich hier:
> 
> [https://developers.shopware.com/develop … ch-bundle/](https://developers.shopware.com/developers-guide/shopware-5-search-bundle/)
> 
> Wollte da aus Dokumentationsgründen eh nochmal ein kleines Beispiel bauen, das findest du im Anhang. Ist natürlich nur zur Veranschaulichung, kann / wird sicher noch Fehler enthalten.
> 
> Vom grundsätzlichen Vorgehen sollte das aber einleuchtend sein, denke ich.
> 
> Daniel

Da schließe ich mich an. Gibt es den Anhang noch?

---

<div class="post-metadata">

**Author:** ![bluewolf](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/bluewolf/32/7886_2.png) [@bluewolf](https://forum.shopware.com/u/bluewolf)\
**Post date:** [17. Oktober 2016 um 13:36 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/18 "2016-10-17T13:36:02Z")

</div>

Ja - am Ende des [Artikels](https://developers.shopware.com/developers-guide/shopware-5-search-bundle/?_ga=1.6117744.273887823.1476191744#productsearch-decorator)

---

<div class="post-metadata">

**Author:** ![phil123](https://avatars.discourse-cdn.com/v4/letter/p/5f9b8f/32.png) [@phil123](https://forum.shopware.com/u/phil123)\
**Post date:** [19. Oktober 2016 um 12:44 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/19 "2016-10-19T12:44:23Z")

</div>

> [@bluewolf schrieb:](https://forum.shopware.com/profile/2759/bluewolf "bluewolf")
> 
> Ja - am Ende des [Artikels](https://developers.shopware.com/developers-guide/shopware-5-search-bundle/?_ga=1.6117744.273887823.1476191744#productsearch-decorator)

Hi, in dem Anhang finde ich die Passagen nicht, auf die sich oben bezogen wird. Weder der DimensionFacetHandler noch das Snippet mit dem RangeFacetResult lässt sich finden.

---

<div class="post-metadata">

**Author:** ![bluewolf](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/bluewolf/32/7886_2.png) [@bluewolf](https://forum.shopware.com/u/bluewolf)\
**Post date:** [19. Oktober 2016 um 15:27 UTC](https://forum.shopware.com/t/filtern-nach-massen/29686/20 "2016-10-19T15:27:38Z")

</div>

Wei es sich da um einen Umbau des Beispiels handelt.Der Download erstellt ja nur den Filter für ESD-Produkte.  
Für die Maße muss das alles umgebaut werden, da ja auch andere Daten aus der Datenbank gefragt sind.

&nbsp;

[Nächste Seite](https://forum.shopware.com/t/filtern-nach-massen/29686.md?page=2)
