Suche im Backend erweitern

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

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

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 :wink:

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

    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);
    }

 

Hallo zusammen

Wir haben ein Plugin für dies erstellt.
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  Wearing-Sunglasses

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

Das würde mich auch interessieren! 

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. 

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);
    }

 

Niemand der helfen kann? 

@AndyB schrieb:

Das würde mich auch interessieren! 

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. 

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);
}