Staffelpreise im Listing

Hallo, ich würde gerne im Artikel-Listing bereits die Staffelpreis-Tabelle ausgeben. Allerdings scheint $sArticle.sBlockPrices im Listing nicht gefüllt zu sein. Ich habe bereits ein wenig rumprobiert, ein Hook/Event erstellt um die sGetArticlesByCategory() zu modifizieren, wie es in den folgenden Threads angedeutet wurde: programmierung-f13/gelost-niedrigsten-staffelpreis-in-der-listenansicht-aus-t6219.html templates-und-design-f57/staffelpreise-im-listing-t10173.html Allerdings ohne jeden Erfolg - die von mir erstellen Hooks (so wie in den Threads beschrieben) zeigen keine Wirkung. Konkrete Frage: wie kann ich die Staffelpreise im Artikel-Listing anzeigen? Vielen Dank für eure Hilfe!

Konnte nun die ersten Erfolge erzielen, indem ich folgendes direkt in der sArticles.php (Zeile 1327, innerhalb sGetArticlesByCategory())eingefügt habe: // Get blockpricing // =================================================. if ($articles[$articleKey]["pricegroupActive"]){ // SW 2.1 Pricegroups /\* If prices were calculated via an active pricegroup - build discount matrix dynamicly \*/ $articles[$articleKey]["sBlockPrices"] = $this-\>sGetPricegroupDiscount($this-\>sSYSTEM-\>sUSERGROUP,$articles[$articleKey]["pricegroupID"],$articles[$articleKey]["priceBeforePriceGroup"],1,true,$articles[$articleKey]); }else { /\* Load defined discount-rules -- Check if prices for this customergroup are available \*/ if ($articles[$articleKey]["pricegroup"]!=$this-\>sSYSTEM-\>sUSERGROUP){ $sql = " SELECT `from` AS valFrom,`to` AS valTo, price, pseudoprice FROM s\_articles\_prices WHERE articledetailsID={$articles[$articleKey]["articleDetailsID"]} AND (pricegroup='EK') ORDER BY id ASC "; }else { $sql = " SELECT `from` AS valFrom,`to` AS valTo, price, pseudoprice FROM s\_articles\_prices WHERE articledetailsID={$articles[$articleKey]["articleDetailsID"]} AND (pricegroup='".$this-\>sSYSTEM-\>sUSERGROUP."') ORDER BY id ASC "; } $getBlockPricings =$this-\>sSYSTEM-\>sDB\_CONNECTION-\>CacheGetAll($this-\>sSYSTEM-\>sCONFIG['sCACHEARTICLE'],$sql,false,"article\_".$articles[$articleKey]["articleID"]); // If more then one row, there are block-prices if (count($getBlockPricings)\>1){ foreach ($getBlockPricings as $blockPriceKey =\> $blockPriceValue){ $getBlockPricings[$blockPriceKey]["from"] = $blockPriceValue["valFrom"]; $getBlockPricings[$blockPriceKey]["to"] = $blockPriceValue["valTo"]; $getBlockPricings[$blockPriceKey]["price"] = $this-\>sCalculatingPrice($blockPriceValue["price"],$articles[$articleKey]["tax"],$articles[$articleKey]); $getBlockPricings[$blockPriceKey]["pseudoprice"] = $this-\>sCalculatingPrice($blockPriceValue["pseudoprice"],$articles[$articleKey]["tax"],$articles[$articleKey]); } $articles[$articleKey]["sBlockPrices"] = $getBlockPricings; } // block pricing else { $articles[$articleKey]["sBlockPrices"] = array(); } } Damit kann ich im Artikel-Listing auf $sArticles.sBlockPrices auf die Staffelpreise zugreifen. Allerdings ist eine direkte Änderung der sArticles.php nicht die feine Englische. Deshalb habe ich versucht folgenden Hook zu erstellen: [code]<?php class Shopware_Plugins_Frontend_ListingShit_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{

public function install()
{
	$this->subscribeEvent( 'sArticles::sGetArticlesByCategory::after', 'getBlockPricingInListing' ); return true; } public static function getBlockPricingInListing(Enlight\_Hook\_HookArgs $args) { $result = $args-\>getReturn(); foreach ($result['sArticles'] as $article){ $result['sArticles'][$article['articleID']]['test'] = 'foobar'; } $args-\>setReturn($result); } } ?\>[/code] Wenn ich nun im Artikel-Listing auf $sArticles.test zugreife, passiert...nichts :( Wo liegt mein Fehler?

Springt er denn überhaupt in die Funktion rein? Also wenn du oben in deinem Hook direkt mit die(„test“); aussteigst, wird das ausgeführt?

Mir fällt grad auf, dass ich Shopware 3.5 mit Shopware 4 gemischt hab. Könntet ihr den Thread bitte in das passende Forum schieben? Ich hab außerdem den Hook entsprechend angepasst: <?php class Shopware_Plugins_Frontend_ListingShit_Bootstrap extends Shopware_Components_Plugin_Bootstrap { public function install() { $hook = $this->createHook( 'sArticles', 'sGetArticlesByCategory', 'getBlockPricing', Enlight\_Hook\_HookHandler::TypeAfter, 0 ); $this-\>subscribeHook($hook); return true; } static function getBlockPricing(Enlight\_Hook\_HookArgs $args) { die("test"); } } Leider wird die Funktion nicht ausgeführt :frowning:

Installiert ist das aber definitiv? Welche Version von Shopware hast du denn genau im Einsatz? Sind Schreibrechte auf /engine/Shopware/Proxies vorhanden?