# Funktion einer Klasse mit einem Plugin überschreiben (SearchTermPreProcessor)

**URL:** <https://forum.shopware.com/t/funktion-einer-klasse-mit-einem-plugin-uberschreiben-searchtermpreprocessor/45007>\
**Category:** Programmierung\
**Created:** [4. April 2017 um 16:30 UTC](https://forum.shopware.com/t/funktion-einer-klasse-mit-einem-plugin-uberschreiben-searchtermpreprocessor/45007 "2017-04-04T16:30:29Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![m.engel](https://avatars.discourse-cdn.com/v4/letter/m/f1d935/32.png) [@m.engel](https://forum.shopware.com/u/m.engel)\
**Post date:** [4. April 2017 um 16:30 UTC](https://forum.shopware.com/t/funktion-einer-klasse-mit-einem-plugin-uberschreiben-searchtermpreprocessor/45007/1 "2017-04-04T16:30:29Z")

</div>

in der Klasse SearchTermPreProcessor  
/engine/Shopware/Bundle/SearchBundle/SearchTermPreProcessor.php

ersetzt die Funktion process() leider die / aus den Suchbegriffen, nun hat unser Kunde aber Originalteilenummern in denen / enthalten sind und die suche ohne diese erzeugt nur unsinnige Ergebnisse.

Diese nicht zu ersetzen führt im Shopfrontend auch nur dazu das der Textlink „alle Ergebnisse Anzeigen“ eine Fehlerhafte url aufbaut, die suche per klick auf die Lupe oder aber das Absenden per Enter funktioniert weiterhin.

Daher würden wir gerne diese Funktion mit einem Plugin überschreiben um dieses Verhalten zu unterbinden. Und dannach den Link „alle Ergebnisse Anzeigen“ fixen. Allerdings finde ich in der Dokumentation keinen Hinweis darauf wie eine solche Klasse überschrieben werden kann&nbsp;

```
 $this-\>subscribeEvent( 'SearchTermPreProcessor::process::replace', 'TEST' );

```

führte leider auch zu keinem Ergebniss.  
&nbsp;

---

<div class="post-metadata">

**Author:** ![t2oh4e](https://avatars.discourse-cdn.com/v4/letter/t/a5b964/32.png) [@t2oh4e](https://forum.shopware.com/u/t2oh4e)\
**Post date:** [4. April 2017 um 16:47 UTC](https://forum.shopware.com/t/funktion-einer-klasse-mit-einem-plugin-uberschreiben-searchtermpreprocessor/45007/2 "2017-04-04T16:47:06Z")

</div>

Das Zauberwort das du suchst ist in diesem Fall „Services dekorieren“.

Eine Anleitung dazu: [Service extensions](https://developers.shopware.com/developers-guide/shopware-5-core-service-extensions/#decorating-an-existing-service)

Oder hier für das 5.2er Pluginsystem: [https://developers.shopware.com/developers-guide/plugin-system/#decorate-a-service](https://developers.shopware.com/developers-guide/plugin-system/#decorate-a-service)

Die Service ID für den SearchTermPreProcessor ist shopware\_search.search\_term\_pre\_processor
