# Eigene Filter / Attribute

**URL:** https://forum.shopware.com/t/eigene-filter-attribute/26036
**Category:** Programmierung
**Created:** [3. April 2015 um 14:38 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036 "2015-04-03T14:38:28Z")
**Posts on this page:** 20
**Page:** 2

<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: [24. Juli 2015 um 08:13 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/21 "2015-07-24T08:13:33Z")

</div>

Hallo Benjamin, danke für deine Info. Dein Beispiel ist ja in Verbindung mit einem Min und Max Wert. Bei mir ist es so, dass ich nur einen Zahlenwert habe, und ich immer alle Artikel welche größergleich sind möchte. ` foreach ($attribute as $key=\>$attr) { if ($request-\>has($key)) { $params = $request-\>getParams(); $searchParams = explode('|', $params[$key]); if ($key == 'attr15') { $criteria-\>addCondition( new ProductAttributeCondition( $key, ProductAttributeCondition::OPERATOR\_GTE, $searchParams ) ); } else { $criteria-\>addCondition( new ProductAttributeCondition( $key, ProductAttributeCondition::OPERATOR\_IN, $searchParams ) ); } } $criteria-\>addFacet(new ProductAttributeFacet( $key, //attribute field ProductAttributeFacet::MODE\_VALUE\_LIST\_RESULT, //filter facet $key, //form name $attr //filter label )); } ` Hast du das auch mal probiert? Ich probiere im Gegenzug mal deinen Code, obwohl ich keinen Slider will, sondern ein LIST. Danke dir.

---

<div class="post-metadata">

### Author: ![Benjamin\_Cremer](https://avatars.discourse-cdn.com/v4/letter/b/a8b319/32.png) [@Benjamin\_Cremer](https://forum.shopware.com/u/Benjamin_Cremer)
#### Post date: [24. Juli 2015 um 08:26 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/22 "2015-07-24T08:26:29Z")

</div>

Hallo ottscho, ich verstehe noch nicht ganz was du mit deinem Code erreichen willst. Du iterierst über sämtliche Attribute und legst dort jeweils eine Facet an, für attr15 gibt es dann noch einmal eine Außnahme… Bitte beschreibe doch mal unabhängig vom Code wie deine Daten aussehen und was du erreichen möchtest. Viele Grüße, Benjamin :shopware:

---

<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: [24. Juli 2015 um 10:23 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/23 "2015-07-24T10:23:03Z")

</div>

ja genau, ich habe mehrere Attribute welche alle mit dem Operator IN laufen, außer attr15. Dieses soll mit größergleich laufen. Hier der Inhalt von $attribute: array(27) { [„attr7“]=\> string(6) „Breite“ [„attr8“]=\> string(5) „Höhe“ [„attr3“]=\> string(6) „Bauart“ [„attr9“]=\> string(5) „Felge“ [„attr15“]=\> string(6) „GESCHW“ } Die Attribut Filter Breite bis felge funktionieren einwandfrei. Der Filter GESCHW funktioniert alleine auch. Aber sobald ich einen 2. Filter dazu auswähle wird dieser nicht übernommen. ` foreach ($attribute as $key=\>$attr) { if ($request-\>has($key)) { $param = $request-\>getParam($key); $searchParams = explode('|', $param); if ($key == 'attr15') { $criteria-\>addCondition( new ProductAttributeCondition( $key, ProductAttributeCondition::OPERATOR\_GTE, $param ) ); } else { $criteria-\>addCondition( new ProductAttributeCondition( $key, ProductAttributeCondition::OPERATOR\_IN, $searchParams ) ); } } $criteria-\>addFacet(new ProductAttributeFacet( $key, //attribute field ProductAttributeFacet::MODE\_RADIO\_LIST\_RESULT, //filter facet $key, //form name $attr //filter label )); } ` Schau mal hier: [http://demoshop1.ottscho1.timmeserver.de/reifen/](http://demoshop1.ottscho1.timmeserver.de/reifen/) Ruft du die URL direkt mir Paramater auf: [http://demoshop1.ottscho1.timmeserver.d … attr15=240](http://demoshop1.ottscho1.timmeserver.de/reifen/?p=1&o=1&n=12&attr15=240) So wird dieser gesetzt. Wenn du nun noch die Breite dazu wählst, wird der Geschwindigkeitsparameter nicht übernommen, da dieser nicht auf checked gesetzt ist.

---

<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: [28. Juli 2015 um 07:30 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/24 "2015-07-28T07:30:23Z")

</div>

Benjamin, konntest du es dir noch mal anschauen?

---

<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 15:55 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/25 "2015-08-24T15:55:24Z")

</div>

> [@Benjamin Cremer](#):
>
> Hallo, an dem Suchproblem sind wir schon dran. Deine Probleme mit den Operatoren kann ich nicht ganz nachvollziehen. Folgender Beispielcode funktioniert für mich so wie erwartet. ` use Enlight\_Controller\_Request\_RequestHttp as Request; use Shopware\Bundle\SearchBundle\Condition\ProductAttributeCondition; use Shopware\Bundle\SearchBundle\Criteria; use Shopware\Bundle\SearchBundle\CriteriaRequestHandlerInterface; use Shopware\Bundle\SearchBundle\Facet\ProductAttributeFacet; use Shopware\Bundle\StoreFrontBundle\Struct\ShopContextInterface; class CriteriaRequestHandler implements CriteriaRequestHandlerInterface { public function handleRequest( Request $request, Criteria $criteria, ShopContextInterface $context ) { if ($request-\>has('minproductAttributesForm')) { $param = $request-\>getParam('minproductAttributesForm'); $criteria-\>addCondition( new ProductAttributeCondition( 'attr1', ProductAttributeCondition::OPERATOR\_GTE, $param ) ); } if ($request-\>has('maxproductAttributesForm')) { $param = $request-\>getParam('maxproductAttributesForm'); $criteria-\>addCondition( new ProductAttributeCondition( 'attr1', ProductAttributeCondition::OPERATOR\_LTE, $param ) ); } $criteria-\>addFacet(new ProductAttributeFacet( 'attr1', ProductAttributeFacet::MODE\_RANGE\_RESULT, 'productAttributesForm', 'RangeSlider' )); } } ` Viele Grüße, Benjamin Cremer :shopware:

---

<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: [25. August 2015 um 08:54 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/26 "2015-08-25T08:54:17Z")

</div>

\*push\* wäre echt wichtig Hier wäre der link zum Shop: [agadon.com](https://www.agadon.com/) Danke :shopware:

---

<div class="post-metadata">

### Author: ![Simon\_Baumer](https://avatars.discourse-cdn.com/v4/letter/s/8e7dd6/32.png) [@Simon\_Baumer](https://forum.shopware.com/u/Simon_Baumer)
#### Post date: [9. September 2015 um 10:33 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/27 "2015-09-09T10:33:41Z")

</div>

[quote=“Mario Fehr”]\*push\* wäre echt wichtig Hier wäre der link zum Shop: [agadon.com](https://www.agadon.com/) Danke :shopware:[/quote] Guten Tag Mario, besteht das Problem noch? Wenn ja könntest du ein Ticket unter [jira.shopware.de](http://jira.shopware.de) anlegen? Gruß, Simon Bäumer

---

<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: [9. September 2015 um 11:02 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/28 "2015-09-09T11:02:33Z")

</div>

> [@Simon Bäumer](#):
>
> [quote=„Mario Fehr“]\*push\* wäre echt wichtig Hier wäre der link zum Shop: [agadon.com](https://www.agadon.com/) Danke :shopware:[/quote] Guten Tag Mario, besteht das Problem noch? Wenn ja könntest du ein Ticket unter [jira.shopware.de](http://jira.shopware.de) anlegen? Gruß, Simon Bäumer

---

<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: [15. September 2015 um 09:01 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/29 "2015-09-15T09:01:29Z")

</div>

> [@Simon Bäumer](#):
>
> [quote=„Mario Fehr“]\*push\* wäre echt wichtig Hier wäre der link zum Shop: [agadon.com](https://www.agadon.com/) Danke :shopware:[/quote] Guten Tag Mario, besteht das Problem noch? Wenn ja könntest du ein Ticket unter [jira.shopware.de](http://jira.shopware.de) anlegen? Gruß, Simon Bäumer[/quote] So Antwort von meinem Ticket: [quote]Hallo, über den Bugtracker, können wir leider keinen Entwicklersupport anbieten. Bitte wenden Sie sich an das Forum oder an den Support, oder falls verfügbar den offiziellen Entwicklersupport.

---

<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: [16. September 2015 um 12:06 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/30 "2015-09-16T12:06:48Z")

</div>

Hallo Community, da ich, wie vorgeschlagen, mit dem Ticket bei [jira.shopware.de](http://jira.shopware.de) nicht weitergekommen bin. Melde ich mich hier nochmal. Ich habe das attribute example Plugin verwendet und die CriteriaRequestHandler.php angepasst: [code]\<?php namespace ShopwarePlugins\SwagAttributeFilter;  
use Enlight\_Controller\_Request\_RequestHttp as Request;  
use Shopware\Bundle\SearchBundle\Condition\ProductAttributeCondition;  
use Shopware\Bundle\SearchBundle\Criteria;  
use Shopware\Bundle\SearchBundle\CriteriaRequestHandlerInterface;  
use Shopware\Bundle\SearchBundle\Facet\ProductAttributeFacet;  
use Shopware\Bundle\StoreFrontBundle\Struct\ShopContextInterface;

class CriteriaRequestHandler implements CriteriaRequestHandlerInterface  
{  
public function handleRequest(  
Request $request,  
Criteria $criteria,  
ShopContextInterface $context  
) {  
if ($request-\>has(‚minproductAttributesForm‘)) { $param = $request-\>getParam(‚minproductAttributesForm‘); $criteria-\>addCondition( new ProductAttributeCondition( ‚attr10‘, ProductAttributeCondition::OPERATOR\_GTE, $param ) ); } if ($request-\>has(‚maxproductAttributesForm‘)) { $param = $request-\>getParam(‚maxproductAttributesForm‘); $criteria-\>addCondition( new ProductAttributeCondition( ‚attr10‘, ProductAttributeCondition::OPERATOR\_LTE, $param ) ); } $criteria-\>addFacet(new ProductAttributeFacet( ‚attr10‘, ProductAttributeFacet::MODE\_RANGE\_RESULT, ‚productAttributesForm‘, ‚Leistung‘ )); } }[/code] Ich hab das Plugin heute deinstalliert und nochmal neu installiert. Nun bewegt sich der Range Slider überhaupt, ansonsten hatte ich die Fehler siehe weiter oben. Ich hätte gerne auch noch ein Feedback was ich beim Ticket falsch gemacht habe. Danke

---

<div class="post-metadata">

### Author: ![DeTi](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@DeTi](https://forum.shopware.com/u/DeTi)
#### Post date: [21. September 2015 um 13:18 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/31 "2015-09-21T13:18:00Z")

</div>

Hallo Zusammen! Ich habe hierzu mal eine andere Frage. So wie ich das sehe, kann man mit diesem Beispielplugin zusätzlich im Frontend filtern, wenn bei Artikeln ein Wert für das entsprechende Artikel-Attribut hinterlegt ist. Sagen wir attr1 hat “Haus” oder “Garten” als Wert. Soweit geht das ja. Wie sieht das aus, wenn ich einen Artikel habe, der bei “Haus” und “Garten” gefiltert werden soll? Ich habe versucht das über die Pipe zu lösen (attr1 = “Haus|Garten”), da ich es so im Plugin-Code gesehen hatte. Funktioniert allerdings nicht. Der Shop legt dann einen Filterwert “Haus|Garten” an, anstatt einen “Haus” und einen “Garten”. Auch mit Komma oder Leerzeichen klappt es nicht. Ich vermute mal, man muss an anderer Stelle etwas anpassen. Jemand eine Idee wie man das löst, oder sehe ich nur die Lösung nicht? Grüße DeTi

---

<div class="post-metadata">

### Author: ![mzuggal](https://avatars.discourse-cdn.com/v4/letter/m/9de0a6/32.png) [@mzuggal](https://forum.shopware.com/u/mzuggal)
#### Post date: [1. Februar 2016 um 15:20 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/32 "2016-02-01T15:20:45Z")

</div>

\*push\*

&nbsp;

---

<div class="post-metadata">

### Author: ![mzuggal](https://avatars.discourse-cdn.com/v4/letter/m/9de0a6/32.png) [@mzuggal](https://forum.shopware.com/u/mzuggal)
#### Post date: [3. Februar 2016 um 14:31 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/33 "2016-02-03T14:31:14Z")

</div>

Hallo,

ich habe gerade den CriteriaRequestHandler Code angepasst (von Mario Fehr).

```
has('minleistung') || $request->getParam('maxleistung')) {
            $parammin = $request->getParam('minleistung');
            $parammax = $request->getParam('maxleistung');
            $criteria->addCondition(
                new ProductAttributeCondition(
                    'attr10',
                    ProductAttributeCondition::OPERATOR_BETWEEN,
                    array('min'=>$parammin, 'max'=>$parammax)
                )
            );
        }

 
        $criteria->addFacet(new ProductAttributeFacet(
            'attr10',
            ProductAttributeFacet::MODE_RANGE_RESULT,
            'leistung',
            'Leistung',
            'frontend/listing/filter/facet-leistung.tpl'
        ));
    }
}

```

Das Problem liegt daran, dass der max und min-Parameter nicht getrennt mitgegeben werden müssen, sonder zusammen als Array. Der Operator ist dan OPERATOR\_BETWEEN. Somit sparst du dir auch die sepperate Abfrage ob max/min gesetzt ist. Zudem habe ich noch ein eigenes Template angegeben, damit ich dem Leistungsregler “Watt” anhängen kann, siehe:&nbsp;[http://screenshots.ideefix.eu/2016-02-03\_1531.png](http://screenshots.ideefix.eu/2016-02-03_1531.png)

&nbsp;

---

<div class="post-metadata">

### Author: ![Simon\_Baumer](https://avatars.discourse-cdn.com/v4/letter/s/8e7dd6/32.png) [@Simon\_Baumer](https://forum.shopware.com/u/Simon_Baumer)
#### Post date: [18. Mai 2016 um 12:37 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/34 "2016-05-18T12:37:40Z")

</div>

Hey Zusammen,

da das Beispielplugin anscheinend im Zuge des neuen Forums hier als Anhang abhanden gekommen ist liegt kann dieses jederzeit über Github bezogen:  
[https://github.com/shopware/devdocs/tree/master/exampleplugins/Frontend/SwagAttributeFilter](https://github.com/shopware/devdocs/tree/master/exampleplugins/Frontend/SwagAttributeFilter)

Grüße,  
Simon

---

<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: [25. Mai 2016 um 08:44 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/35 "2016-05-25T08:44:38Z")

</div>

Ich habe hier immer noch ein Problem mit dem OPERATOR\_GT.  
Das Beispiel von Simon wurde abgeändert.

&nbsp;

```
if ($request->has('productAttributesForm')) {
	$params = $request->getParams();
	$searchParams = explode('|', $params['productAttributesForm']);

	$criteria->addCondition(
		new ProductAttributeCondition(
			'attr5',
			ProductAttributeCondition::OPERATOR_GT,
			(int)$params['productAttributesForm']
		)
	);
}

$criteria->addFacet(new ProductAttributeFacet(
	'attr5', //attribute field
	ProductAttributeFacet::MODE_RADIO_LIST_RESULT, //filter facet
	'productAttributesForm', //form name
	'attributes' //filter label
));

```

&nbsp;

Der Filter funktioniert und macht das was er will. Zeige ich mir aber die Artikel-Ergebnisse an, so wird der Filter wohl nicht korrekt übergeben.

Bei den aktiven Filter steht dieser nun, aber die Auswahlbox ist nicht mit meiner Selektion vordefiniert. In der URL steht aber mein Parameter.  
Das Ganz hat zu folge, das bei einer neuen Filterung mein Filter nicht mehr berücksichtig wird.

Hat dazu jemand eine Idee? Wo liegt der Fehler?

Danke  
Gruß  
Ottscho

---

<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: [30. Mai 2016 um 06:46 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/36 "2016-05-30T06:46:58Z")

</div>

Ich muss hier noch mal hoch schieben…

---

<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: [3. Juni 2016 um 08:56 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/37 "2016-06-03T08:56:20Z")

</div>

@shopware‍

Könnt ihr dies bitte noch mal anschauen? Ich bin mir ziemlich sicher, dass der OPERATOR\_GT nicht richtig funktioniert.

Der Wert wird nach dem Filter nicht übernommen!

&nbsp;

---

<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: [3. Juni 2016 um 09:05 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/38 "2016-06-03T09:05:05Z")

</div>

&nbsp;

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/3/315f5f23d15f03306c41979f64aa69eeb3d46426.png)

&nbsp;

Diese Filterung geht! Klickt man nun auf Produkte anzeigen passt soweit auch alles und es werden nur noch die korrekten Artikel angezeigt. Klicke ich jetzt aber einen Eigenschaften Filter dazu, so wird mein Filter wieder entfernt / gelöscht!

&nbsp;

---

<div class="post-metadata">

### Author: ![dobrock](https://avatars.discourse-cdn.com/v4/letter/d/7cd45c/32.png) [@dobrock](https://forum.shopware.com/u/dobrock)
#### Post date: [10. August 2016 um 12:49 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/39 "2016-08-10T12:49:15Z")

</div>

Hallo allerseits,

das Plugin von Github hat geholfen - danke!

In welcher Datei kann ich den Hersteller-Filter ausbauen? Ich habe nur zwei Hersteller im Sortiment, so dass diese Filtermöglichkeit keinen Sinn macht.&nbsp;

Ich habe in frontend/listing/ schon alles durchsucht, jedoch keinen Verweis gefunden, der auf den Hersteller-Filter verweist.

Wer weiß was? 🙂

Danke

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/77703d7937646ea67fdee6b3fbef7574035bf6b3.jpeg)

---

<div class="post-metadata">

### Author: ![puhas](https://avatars.discourse-cdn.com/v4/letter/p/b38774/32.png) [@puhas](https://forum.shopware.com/u/puhas)
#### Post date: [10. August 2016 um 13:12 UTC](https://forum.shopware.com/t/eigene-filter-attribute/26036/40 "2016-08-10T13:12:12Z")

</div>

> [@dobrock schrieb:](https://forum.shopware.com/profile/21479/dobrock "dobrock")
> 
> In welcher Datei kann ich den Hersteller-Filter ausbauen? Ich habe nur zwei Hersteller im Sortiment, so dass diese Filtermöglichkeit keinen Sinn macht.

Der Hersteller-Filter ist erstmal ein Standardfilter und hat afaik nichts mit diesem Plugin zu tun (?)

Deaktivieren sollte deshalb über das Backend möglich sein: Einstellungen -\> Cache/Performance -\> Einstellungen -\> Allgemein -\> Filter -\> Hersteller Filter anzeigen

&nbsp;

[Vorherige Seite](https://forum.shopware.com/t/eigene-filter-attribute/26036.md?page=1)

[Nächste Seite](https://forum.shopware.com/t/eigene-filter-attribute/26036.md?page=3)
