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