/** * Event listener function of the Shopware_Modules_Articles_SetLastArticle event. * This event is fired after a user visit an article detail page. * This listener function is used to increment the counter value of * the s_articles_similar_shown_ro table. * * @param Enlight_Event_EventArgs $arguments * @return mixed */ public function beforeSetLastArticle(Enlight_Event_EventArgs $arguments) { if (Shopware()->Session()->Bot || !$this->isSimilarShownActivated()) { return $arguments->getReturn(); } $articleId = $arguments->getArticle(); $sql = "SELECT COUNT(id)\n FROM s_emarketing_lastarticles\n WHERE sessionID = :sessionId\n AND articleID = :articleId"; $alreadyViewed = Shopware()->Db()->fetchOne($sql, array('sessionId' => Shopware()->SessionID(), 'articleId' => $articleId)); if ($alreadyViewed > 0) { return $arguments->getReturn(); } $sql = "\n SELECT\n articleID as articleId\n FROM s_emarketing_lastarticles\n WHERE sessionID = :sessionId\n AND articleID != :articleId\n "; $articles = Shopware()->Db()->fetchCol($sql, array('sessionId' => Shopware()->SessionID(), 'articleId' => $articleId)); foreach ($articles as $id) { $this->SimilarShown()->refreshSimilarShown($articleId, $id); $this->SimilarShown()->refreshSimilarShown($id, $articleId); } return $arguments->getReturn(); }
/** * add "add to basket" tracking * @param Enlight_Event_EventArgs $arguments * @return boolean */ public function addToBasket(Enlight_Event_EventArgs $arguments) { if ($this->Config()->get('boxalino_tracking_enabled')) { $article = $arguments->getArticle(); $price = $arguments->getPrice(); Shopware_Plugins_Frontend_Boxalino_EventReporter::reportAddToBasket($article['articledetailsID'], $arguments->getQuantity(), $price['price'], Shopware()->Shop()->getCurrency()); } return $arguments->getReturn(); }