Hallo,
das Shopware-Standard-Plugin "LastArticles" schreibt als Artikelnamen die Artikel inkl. Variantenbezeichnung in die DB.
Ich versuche grade mich da reinzuhängen, da wir hier nur den Artikelnamen ohne die Variantenbezeichnung stehen haben wollen.
In "Shopware_Plugins_Frontend_LastArticles_Bootstrap" gibt es in der Methode setLastArticleById() ein notify-Event, wo ich allerdings nur an die Artikel-ID rankomme. Den DB-Eintrag updaten geht auch nicht, da das Event schon vor dem DB-Insert ausgeführt wird. Mittels after-Hook habe ich auch versucht, aber der scheint gar nicht zu greifen, bzw. bin ich mir nicht sicher, ob Hooks in Methoden der Bootstrap überhaupt möglich sind? Hat jemand einen Tipp, wie ich den Artikelnamen hier überschreiben kann, am besten bevor der Insert geschieht, müsste also irgendwie an die $article rankommen.
public function setLastArticleById($articleId)
{
$article = $this->getArticleData((int) $articleId);
Shopware()->Session()->sLastArticle = $articleId;
$sessionId = Shopware()->Session()->get('sessionId');
if (empty($sessionId) || empty($article['articleName']) || empty($articleId)) {
return;
}
Shopware()->Events()->notify('Shopware_Modules_Articles_Before_SetLastArticle', array(
'subject' => Shopware()->Modules()->Articles(),
'article' => $articleId
));
return Shopware()->Db()->query('
INSERT INTO s_emarketing_lastarticles
(img, name, articleID, sessionID, time, userID, shopID)
VALUES
(?, ?, ?, ?, NOW(), ?, ?)
ON DUPLICATE KEY UPDATE time=NOW(), userID=VALUES(userID)
', array(
(string) $article['image'],
(string) $article['articleName'],
$articleId,
$sessionId,
(int) Shopware()->Session()->sUserId,
(int) Shopware()->Shop()->getId()
));
}
Danke und Gruss