*gelöst* Niedrigsten Staffelpreis in der Listenansicht aus..

Hallo zusammen, ich habe ein neues Anliegen. Aktuell werden mir bei Artikeln mit Staffelpreisen in der Listenansicht ein zu hoher “ab”-Preis ausgegeben. Genauer gesagt der Preis ab 1 Stück. Die Artikel werden bei Staffelpreisen natürlich immer günstiger. Somit sollte in der Kategorieauflistung auch der günstigste Preis erscheinen. Gibt es eine Lösung hierzu? Danke und Grüße, Rafael Kutscha

1 Like

Anscheinend ist $sArticle.sBlockPrices in der Listenansicht jedoch nicht befüllt? :frowning: Ich vermute mal, dass hier nur die nötigsten Artikeldaten geladen werden. Folgendes ergibt bei mir bei einem “normalen” Artikel mit Staffelpreisen Null: {$sArticle.sBlockPrices|@count} Danke für weitere Tipps, Rafael Kutscha

Sorry, habe ich über sehen. Habe nicht gelesen, dass du dies im Listing brauchst. Dann musst du den Controller/Modul anpassen, damit du die Staffelpreise erhälst. Am besten über ein Plugin. public static function onListingPostDispatch(Enlight\_Event\_EventArgs $args) { $request = $args-\>getSubject()-\>Request(); $response = $args-\>getSubject()-\>Response(); $view = $args-\>getSubject()-\>View(); $articles = $view-\>sArticles; if(!$request-\>isDispatched()||$response-\>isException()||$request-\>getModuleName()!='frontend'){ return; } $i = 0; foreach($articles as $article) { if ($articles[$i]['articleDetailsID']) { $sql = "SELECT `from` AS valFrom,`to` AS valTo, price, pseudoprice FROM s\_articles\_prices WHERE articledetailsID={$articles[$i]['articleDetailsID']} AND (pricegroup='EK') ORDER BY id ASC "; $getBlockPricings = Shopware()-\>Db()-\>fetchAll($sql); } // 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"] = Shopware()-\>Modules()-\>Articles()-\>sCalculatingPrice($blockPriceValue["price"],19,$articles[$i]); $getBlockPricings[$blockPriceKey]["pseudoprice"] = Shopware()-\>Modules()-\>Articles()-\>sCalculatingPrice($blockPriceValue["pseudoprice"],19,$articles[$i]); } $articles[$i]['sBlockPrices'] = $getBlockPricings; } // block pricing else { $articles[$i]['sBlockPrices'] = array(); } $i++; } $view-\>sArticles = $articles; }

1 Like

Danke, Danke! Ich werde die Methode sGetArticlesByCategory() in meiner myArticle entsprechend erweitern. Ich vermute mal, dass diese Anpassung an mehreren Stellen benötigt wird und ich zudem auch wieder meinen Patch zur Berücksichtigung der Herstellerrabatte verwenden muss. Viele Grüße, Rafael Kutscha