Hallo, ich würde gerne bei den Artikel (Mouse Over) schon in der Liste die verfügbaren Größen/Farben anzeigen, so wie es bei den meisten professionellen Shops gemacht wird. Wie kann ich das bewerkstelligen, jemand eine Idee? Gibt es Variablen die das ausgeben? Danke.
Hat keiner eine Idee? Das muss doch möglich sein!
Hallo, das Plugin http://store.shopware.de/sonstiges/arti … im-listing geht in die Richtung. Vielleicht hilft das schon weiter… Viele Grüße,
Hallo Herr Schlüter, vielen Dank. Aber ich benötige nur die bestellbaren Varianten Kombinationen (Größe/Farbe) als String. Gibt es dazu eine Variable die im Listing aufrufbar ist?
Hallo brainson, das ist recht einfach über ein Plugin zu bewerkstelligen. Hier einmal ein beispielhafter Aufbau. <?php class Shopware_Plugins_Frontend_TestPlugin_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
public function install()
{
$this->subscribeEvent( 'Shopware\_Modules\_Articles\_sGetArticlesByCategory\_FilterLoopEnd', 'onPostDispatchListing' ); return true; } public function onPostDispatchListing(Enlight\_Event\_EventArgs $args) { $article = $args-\>getReturn(); $configgroup = $this-\>getArticleConfigurator($article['articleID']); $article["sArticleConfig"] = $configgroup; return $article; } private function getArticleConfigurator($articleID) { $sql = "SELECT DISTINCT acg.id, acg.name as group\_name, acg.description, aco.name FROM s\_articles\_details ad LEFT JOIN s\_article\_configurator\_option\_relations acor ON ad.id = acor.article\_id LEFT JOIN s\_article\_configurator\_options aco ON acor.option\_id = aco.id LEFT JOIN s\_article\_configurator\_groups acg ON aco.group\_id = acg.id WHERE ad.articleID = ? ORDER BY acg.id"; $variantarticles = Shopware()-\>Db()-\>fetchAll($sql, array($articleID)); if (empty($variantarticles)) return false; foreach ($variantarticles as $vak =\> $vav){ $groupkey = $vav['id']; $tmparray[$groupkey]['groupname'] = $vav['group\_name']; $tmparray[$groupkey]['groupdesc'] = $vav['description']; $tmparray[$groupkey]['values'][] = $vav['name']; } return $tmparray; } }
Im Listing steht dann ein neuer Array Key im sArticle Block mit dem Namen “sArticleConfig”. Sie können dann z.B. in der Template Datei “box_article.tpl” durch eine separate Smarty Foreach Schleife die entsprechenden Daten abgreifen. Ich hoffe, dass Ihnen dieses Beispielplugin weiterhelfen kann. Mit freundlichen Grüßen, Philipp von Wedel - BEON GmbH
Hallo, man hätte das Plain SQL ja auch vermutlich mit dem QueryBuilder erstellen können. Persönlich finde ich diesen Weg aber auch irgendwie sympathischer, die Frage ist, was der Nachteil davon sein könnte? Gruß, Michael
wie würde die ausgabe in der templatedatei aussehen? danke!
Mach mal im Template ein … {$sArticle.sArticleConfig|@print\_r}
Dann bekommste die Struktur des Arrays, das durchlaufen werden kann.
ok soweit so gut.