# Suche im Backend erweitern

**URL:** <https://forum.shopware.com/t/suche-im-backend-erweitern/30416>\
**Category:** Programmierung\
**Created:** [11. September 2015 um 11:54 UTC](https://forum.shopware.com/t/suche-im-backend-erweitern/30416 "2015-09-11T11:54:51Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![alexv](https://avatars.discourse-cdn.com/v4/letter/a/ce73a5/32.png) [@alexv](https://forum.shopware.com/u/alexv)\
**Post date:** [11. September 2015 um 11:54 UTC](https://forum.shopware.com/t/suche-im-backend-erweitern/30416/1 "2015-09-11T11:54:51Z")

</div>

Guten Tag, wir würden gerne die Artikelsuche im Backend um die Suche nach der Herstellernummer erweitern. Kann da einer weiterhelfen. Viele Grüße

---

<div class="post-metadata">

**Author:** ![AndyB](https://avatars.discourse-cdn.com/v4/letter/a/96bed5/32.png) [@AndyB](https://forum.shopware.com/u/AndyB)\
**Post date:** [15. September 2017 um 11:46 UTC](https://forum.shopware.com/t/suche-im-backend-erweitern/30416/2 "2017-09-15T11:46:32Z")

</div>

Hi hattest du das gelöst mit der Backend Suche? Wenn ja wie?

---

<div class="post-metadata">

**Author:** ![AndyB](https://avatars.discourse-cdn.com/v4/letter/a/96bed5/32.png) [@AndyB](https://forum.shopware.com/u/AndyB)\
**Post date:** [15. September 2017 um 12:17 UTC](https://forum.shopware.com/t/suche-im-backend-erweitern/30416/3 "2017-09-15T12:17:28Z")

</div>

Ok, habe es schon quick und dirty mit einer Core Änderung hinbekommen. Jetzt geht zumindest schon mal oben im blauen Header im Backend auch Suchen nach Herstellernummer und EAN 😉

Wenn einer das schöner gelöst hat bitte mal posten! Das brauchen sicherlich viele andere auch.  
&nbsp;

```
    public function getArticles($search)
    {
        $search2 = Shopware()->Db()->quote("$search%");
        $search = Shopware()->Db()->quote("%$search%");

        $sql = "
            SELECT DISTINCT
                a.id,
                a.name,
                a.description_long,
                a.description,
                IFNULL(d.ordernumber, m.ordernumber) as ordernumber
            FROM s_articles as a
            JOIN s_articles_details as m
            ON m.id = a.main_detail_id
            LEFT JOIN s_articles_details as d
            ON a.id = d.articleID
            AND d.ordernumber LIKE $search2
            LEFT JOIN s_articles_translations AS t
            ON a.id=t.articleID
            LEFT JOIN s_articles_supplier AS s
            ON a.supplierID=s.id
            WHERE ( a.name LIKE $search
                OR m.suppliernumber LIKE $search // hier!
                OR m.ean LIKE $search // und hier!
                OR t.name LIKE $search
                OR s.name LIKE $search
                OR d.id IS NOT NULL
            )
        ";
        $sql = Shopware()->Db()->limit($sql, 5);
        return Shopware()->Db()->fetchAll($sql);
    }

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![KMUdo](https://avatars.discourse-cdn.com/v4/letter/k/f4b2a3/32.png) [@KMUdo](https://forum.shopware.com/u/KMUdo)\
**Post date:** [30. Oktober 2017 um 15:42 UTC](https://forum.shopware.com/t/suche-im-backend-erweitern/30416/4 "2017-10-30T15:42:31Z")

</div>

Hallo zusammen

Wir haben ein Plugin für dies erstellt.  
[http://store.shopware.com/detail/index/sArticle/164344/number/KMUdo33689034565&nbsp;](http://store.shopware.com/detail/index/sArticle/164344/number/KMUdo33689034565)

Im Backend kann mit diesem Plugin nach der Herstellernummer und EAN gesucht werden.

Bei Fragen meldet Euch einfach bei uns.

Grüsse aus der Schweiz&nbsp; ![Wearing-Sunglasses](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/301eaa4db0af1251d93dae7904e5b71a4b15e729.png "Wearing-Sunglasses")

---

<div class="post-metadata">

**Author:** ![brettvormkopp](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/brettvormkopp/32/7788_2.png) [@brettvormkopp](https://forum.shopware.com/u/brettvormkopp)\
**Post date:** [27. März 2020 um 10:14 UTC](https://forum.shopware.com/t/suche-im-backend-erweitern/30416/5 "2020-03-27T10:14:47Z")

</div>

Hat jemand eine Idee wie es in SW 5.6 funktioniert? Da steht, dass die Funktion Deprecated ist und mit 5.7 entfernt wird?

---

<div class="post-metadata">

**Author:** ![AndyB](https://avatars.discourse-cdn.com/v4/letter/a/96bed5/32.png) [@AndyB](https://forum.shopware.com/u/AndyB)\
**Post date:** [10. Dezember 2020 um 08:54 UTC](https://forum.shopware.com/t/suche-im-backend-erweitern/30416/6 "2020-12-10T08:54:47Z")

</div>

Das würde mich auch interessieren!&nbsp;

Wo muss ich was in Shopware 5.6.9.erweitern um im Backend nach EAN suchen zu können?

Die alte Funktion einfach zu erweitern geht leider nicht.&nbsp;

```
public function getArticles($search)
    {
        trigger_error(sprintf('%s:%s is deprecated since Shopware 5.5.8 and will be removed in 5.7. Use the ProductRepository instead.', __CLASS__ , __METHOD__ ), E_USER_DEPRECATED);

        /** @var \Doctrine\DBAL\Query\QueryBuilder $query */
        $query = $this->container->get('dbal_connection')->createQueryBuilder();

        $query->select([
            'article.id',
            'article.name',
            'article.description_long',
            'article.description',
            'variant.ordernumber',
        ]);
        $query->from('s_articles', 'article');
        $query->innerJoin('article', 's_articles_details', 'variant', 'variant.articleID = article.id');
        $query->leftJoin('article', 's_articles_translations', 'translation', 'article.id= translation.articleID');
        $query->leftJoin('article', 's_articles_supplier', 'manufacturer', 'article.supplierID = manufacturer.id');

        $builder = $this->container->get('shopware.model.search_builder');
        $builder->addSearchTerm(
            $query,
            $search,
            [
                'article.name^3',
                'variant.ordernumber^2',
                'translation.name^1',
                'manufacturer.name^1',
                's_articles_details.ean^1',
            ]
        );
        $query->addGroupBy('article.id');
        $query->setFirstResult(0);
        $query->setMaxResults(5);

        return $query->execute()->fetchAll(PDO::FETCH_ASSOC);
    }

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![AndyB](https://avatars.discourse-cdn.com/v4/letter/a/96bed5/32.png) [@AndyB](https://forum.shopware.com/u/AndyB)\
**Post date:** [11. Dezember 2020 um 10:47 UTC](https://forum.shopware.com/t/suche-im-backend-erweitern/30416/7 "2020-12-11T10:47:28Z")

</div>

Niemand der helfen kann?&nbsp;

> [@AndyB schrieb:](https://forum.shopware.com/profile/23261/AndyB "AndyB")
> 
> Das würde mich auch interessieren!&nbsp;
> 
> Wo muss ich was in Shopware 5.6.9.erweitern um im Backend nach EAN suchen zu können?
> 
> Die alte Funktion einfach zu erweitern geht leider nicht.&nbsp;
> 
> public function getArticles($search)  
> {  
> trigger\_error(sprintf(‚%s:%s is deprecated since Shopware 5.5.8 and will be removed in 5.7. Use the ProductRepository instead.‘, **CLASS** , **METHOD** ), E\_USER\_DEPRECATED);
> 
> /\*\* @var \Doctrine\DBAL\Query\QueryBuilder $query \*/  
> $query = $this-\>container-\>get(‚dbal\_connection‘)-\>createQueryBuilder();
> 
> $query-\>select([  
> ‚article.id‘,  
> ‚article.name‘,  
> ‚article.description\_long‘,  
> ‚article.description‘,  
> ‚variant.ordernumber‘,  
> ]);  
> $query-\>from(‚s\_articles‘, ‚article‘);  
> $query-\>innerJoin(‚article‘, ‚s\_articles\_details‘, ‚variant‘, ‚variant.articleID = article.id‘);  
> $query-\>leftJoin(‚article‘, ‚s\_articles\_translations‘, ‚translation‘, ‚article.id= translation.articleID‘);  
> $query-\>leftJoin(‚article‘, ‚s\_articles\_supplier‘, ‚manufacturer‘, ‚article.supplierID = manufacturer.id‘);
> 
> $builder = $this-\>container-\>get(‚shopware.model.search\_builder‘);  
> $builder-\>addSearchTerm(  
> $query,  
> $search,  
> [  
> ‚article.name^3‘,  
> ‚variant.ordernumber^2‘,  
> ‚translation.name^1‘,  
> ‚manufacturer.name^1‘,  
> ‚s\_articles\_details.ean^1‘,  
> ]  
> );  
> $query-\>addGroupBy(‚article.id‘);  
> $query-\>setFirstResult(0);  
> $query-\>setMaxResults(5);
> 
> return $query-\>execute()-\>fetchAll(PDO::FETCH\_ASSOC);  
> }
> 
> &nbsp;
