Hallo, gibt es eine Möglichkeit in der ajax_add_article.tpl die Artikel Attribute zu verwenden? im Artikel Listing klappt das ja wunderbar, aber ich möchte bei bestimmten Artikeln, über ein Artikelattribut, einen Zusatztext ausgeben lassen, der erscheint, wenn der Artikel erfolgreich in den Warenkorb gelegt wurde. Leider bislang ohne Erfolg… Danke schonmal! LG Leif
Niemand 'ne Idee?
*push*
Ich bin leider immer noch nicht weiter gekommen. Würde mich freuen, wenn vielleicht jemand von Shopware etwas dazu sagen könnte :happy:
Den einzigen Wiki-Artikel der in die Richtung geht, habe ich hier gefunden: Wie kann ich Artikelattribute im Warenkorb ausgeben lassen Dabei funktioniert es über Hookpoints, die ja in der aktuellen Version nicht mehr unterstützt werden…
*push*
Hi, versuch mal den Controller checkout.php anzupassen: Original Teil: public function addArticleAction() { $ordernumber = $this-\>Request()-\>getParam('sAdd'); $quantity = $this-\>Request()-\>getParam('sQuantity'); $articleID = Shopware()-\>Modules()-\>Articles()-\>sGetArticleIdByOrderNumber($ordernumber); $this-\>View()-\>sBasketInfo = $this-\>getInstockInfo($ordernumber, $quantity); if(!empty($articleID)) { $insertID = $this-\>basket-\>sAddArticle($ordernumber, $quantity); $this-\>View()-\>sArticleName = Shopware()-\>Modules()-\>Articles()-\>sGetArticleNameByOrderNumber($ordernumber); if(!empty($insertID)) { $basket = $this-\>getBasket(); foreach ($basket['content'] as $item) { if($item['id']==$insertID) { $this-\>View()-\>sArticle = $item; break; } } } $this-\>View()-\>sCrossSimilarShown = $this-\>getSimilarShown($articleID); $this-\>View()-\>sCrossBoughtToo = $this-\>getBoughtToo($articleID); } if($this-\>request-\>isXmlHttpRequest()||!empty($this-\>Request()-\>callback)){ $this-\>Request()-\>setParam('sTargetAction', 'ajax\_add\_article'); } if($this-\>Request()-\>getParam('sAddAccessories')) { $this-\>forward('addAccessories'); } else { $this-\>forward($this-\>Request()-\>getParam('sTargetAction', 'index')); } }
Änderung: public function addArticleAction() { $ordernumber = $this-\>Request()-\>getParam('sAdd'); $quantity = $this-\>Request()-\>getParam('sQuantity'); $articleID = Shopware()-\>Modules()-\>Articles()-\>sGetArticleIdByOrderNumber($ordernumber); $this-\>View()-\>sBasketInfo = $this-\>getInstockInfo($ordernumber, $quantity); if(!empty($articleID)) { $insertID = $this-\>basket-\>sAddArticle($ordernumber, $quantity); $this-\>View()-\>sArticleName = Shopware()-\>Modules()-\>Articles()-\>sGetArticleNameByOrderNumber($ordernumber); if(!empty($insertID)) { $basket = $this-\>getBasket(); foreach ($basket['content'] as $item) { if($item['id']==$insertID) { $this-\>View()-\>sArticle = $item; break; } } } $this-\>View()-\>sArticleInfo = Shopware()-\>Modules()-\>Articles()-\>sGetArticleById($articleID); $this-\>View()-\>sCrossSimilarShown = $this-\>getSimilarShown($articleID); $this-\>View()-\>sCrossBoughtToo = $this-\>getBoughtToo($articleID); } if($this-\>request-\>isXmlHttpRequest()||!empty($this-\>Request()-\>callback)){ $this-\>Request()-\>setParam('sTargetAction', 'ajax\_add\_article'); } if($this-\>Request()-\>getParam('sAddAccessories')) { $this-\>forward('addAccessories'); } else { $this-\>forward($this-\>Request()-\>getParam('sTargetAction', 'index')); } }
Durch diese Zeile $this->View()->sArticleInfo = Shopware()->Modules()->Articles()->sGetArticleById($articleID); sollten nun alle Informationen in {sArticleInfo} stehen.
Hi ottscho, erstmal vielen Dank für deine Antwort! Ich habe es aber nicht wirklich hinbekommen mir die einzelnen Werte von {$sArticleInfo} anzeigen zu lassen. Ich habe aber dann doch noch eine andere Lösung gefunden, die funktioniert. Falls es jemanden interessiert; so klappt es bei mir jetzt: engine/core/class/sBasket.php öffnen und nach “sBasket.php_sGetBasket_AfterSQL” suchen. Nach der gefundenen Zeile folgendes einfügen: $sql = " SELECT s\_order\_basket.\*,aa.attr12, aa.attr13, a.packunit, minpurchase,taxID,IF (ad.instock,ad.instock,av.instock) AS `instock`,suppliernumber,maxpurchase,purchasesteps,purchaseunit,unitID,laststock,shippingtime,releasedate,stockmin,esd, su.description AS itemUnit, ob\_attr1,ob\_attr2,ob\_attr3,ob\_attr4,ob\_attr5,ob\_attr6 FROM s\_order\_basket LEFT JOIN s\_articles\_details AS ad ON ad.ordernumber = s\_order\_basket.ordernumber LEFT JOIN s\_articles\_groups\_value AS av ON av.ordernumber = s\_order\_basket.ordernumber LEFT JOIN s\_articles a ON (a.id = ad.articleID OR a.id = av.articleID) LEFT JOIN s\_articles\_attributes aa ON ad.id = aa.articledetailsID LEFT JOIN s\_core\_units su ON su.id = a.unitID WHERE sessionID='".$this-\>sSYSTEM-\>sSESSION\_ID."' ORDER BY id ASC, datum DESC ";
Damit kann ich jetzt zum Beispiel in der ajax_add_article.tpl einfach auf die Attribute {$sArticle.attr12} und {$sArticle.attr13} zugreifen.