# Backendbestellung Artikelsuche erweitern

**URL:** <https://forum.shopware.com/t/backendbestellung-artikelsuche-erweitern/45245>\
**Category:** Programmierung\
**Created:** [14. April 2017 um 12:16 UTC](https://forum.shopware.com/t/backendbestellung-artikelsuche-erweitern/45245 "2017-04-14T12:16:08Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![KevinS86](https://avatars.discourse-cdn.com/v4/letter/k/67e7ee/32.png) [@KevinS86](https://forum.shopware.com/u/KevinS86)\
**Post date:** [14. April 2017 um 12:16 UTC](https://forum.shopware.com/t/backendbestellung-artikelsuche-erweitern/45245/1 "2017-04-14T12:16:08Z")

</div>

Hey Zusammen,

ich versuche gerade das Backendbestellungsplugin&nbsp;[GitHub - shopwareLabs/SwagBackendOrder: plugin which allows you to create orders via backend module](https://github.com/shopwareLabs/SwagBackendOrder) mal wieder etwas anzupassen. Ich möchte die Suche erweitern um die Möglichkeit auch nachdem Hersteller zu suchen.&nbsp;  
Hierfür habe ich den&nbsp;getProductQueryBuilder etwas angepasst. Und einen weiteren Join auf den Hersteller mitaufgenommen.

```
 /**
     * @param string $search
     * @param string $groupKey
     * @return \Doctrine\ORM\QueryBuilder|\Shopware\Components\Model\QueryBuilder
     */
    public function getProductQueryBuilder($search, $groupKey = 'EK')
    {
        $builder = $this->modelManager->createQueryBuilder();
        /**
         * query to search for article variants or the article ordernumber
         * the query concats the article name and the additional text field for the search
         */
        $builder->select(
            'articles.id AS articleId,
            details.number,
            articles.name,
            details.id,
            details.inStock,
            articles.taxId,
            prices.price,
            details.additionalText,
            tax.tax,
            articles.supplierId,
            sp.id'
        );

        $builder->from(Article::class, 'articles')
                ->leftJoin('articles.details', 'details')
                ->leftJoin('details.prices', 'prices')
                ->leftJoin('articles.tax', 'tax')
                ->leftJoin(
                    Supplier::class,
                    'sp',
                    Expr\Join::WITH,
                    'articles.supplierId = sp.id'
                )
                ->where(
                    $builder->expr()->like(
                        $builder->expr()->concat(
                            'articles.name',
                            $builder->expr()->concat(
                                $builder->expr()->literal(' '),
                                'details.additionalText'
                            )
                        ),
                        $builder->expr()->literal($search)
                    )
                )
                ->orWhere('details.number LIKE :number')
                ->orWhere('sp.name LIKE :number')
                ->andWhere('articles.active = 1')
                ->andWhere('prices.customerGroupKey = :groupkey')
                ->setParameter('number', $search)
                ->setParameter('groupkey', $groupKey)
                ->orderBy('details.number')
                ->groupBy('details.number')
                ->setMaxResults(20);

        //Log the current query
        Shopware()->PluginLogger()->info($builder->getQuery()->getSQL());

        return $builder;
    }

```

Laut Logging klappt das auch meine Query enthält alle erwarteten Elemente.&nbsp;

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/4/4580cc4ff235b75a348ff3b8fedb716c341dbb6c.jpeg)

Dennoch zeigt mir die SearchBox wesentlich weniger Elemente an. Ich finde aktuell keine Möglichkeit herauszufinden, in welcher JS das Eindampfen der Liste stattfindet. Hier bekomme ich nämlich nur 2 Elemente angezeigt.

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/9/92b7d1a9e5640e7973dd88364bd4ea62c62ccf00.jpeg)

Hat hier eventuell jemand eine Idee für mich?&nbsp;

Liebe Grüße

Kevin

---

<div class="post-metadata">

**Author:** ![KevinS86](https://avatars.discourse-cdn.com/v4/letter/k/67e7ee/32.png) [@KevinS86](https://forum.shopware.com/u/KevinS86)\
**Post date:** [20. April 2017 um 20:32 UTC](https://forum.shopware.com/t/backendbestellung-artikelsuche-erweitern/45245/2 "2017-04-20T20:32:43Z")

</div>

Hey nochmals,

so habe das Problem nun lösen können. Mal wieder selbst Schuld gewesen.&nbsp;

Mein Select im getProductQueryBuilder war nicht korrekt, sodass im Result-Objekt identische ID´s für die Artikel vergeben wurde und er diese automatisiert in der Search-Komponente herausfilter.&nbsp;

Mein Select vorher:&nbsp;

```
        $builder->select(
            'articles.id AS articleId,
            details.number,
            articles.name,
            details.id,
            details.inStock,
            articles.taxId,
            prices.price,
            details.additionalText,
            tax.tax,
            articles.supplierId,
            sp.id'
        );

```

Der letzte Part sp.id war hier ausschlaggebend. Habe das angepasst auf nachfolgendes Select und nun kommen die entsprechenden Werte.

```
        $builder->select(
            'articles.id AS articleId,
            details.number,
            articles.name,
            details.id,
            details.inStock,
            articles.taxId,
            prices.price,
            details.additionalText,
            tax.tax,
            articles.supplierId,
            sp.id as supplierID'
        );

```

Schönen Abend euch und liebe Grüße

Kevin
