Hi Community, Ich würde gerne die Diskussion des Posts für die Version 3.5 nochmals für die Version 4.0 aufnehmen. Ich versuche den Aufpreis bereits in der Dropdown-Box anzeigen zu lassen. Es scheint aber so zu sein, dass die Variable $configValue.upprice nicht gefüllt wird. Ich habe leider den Punkt noch nicht gefunden, wo diese Variable eigentlich gefüllt werden sollte. Hat jemand ne Idee? Hier meine Wunschvorstellung in der config_pprice.tpl. <select name="group[{$sConfigurator.groupID}]" onchange="this.form.submit();">
{foreach from=$sConfigurator.values item=configValue}
<option value="{$configValue.optionID}">
{$configValue.optionname}{if $configValue.upprice}{if $configValue.upprice > 0} + {$configValue.upprice} {/if}{/if}
</option>
{/foreach}
</select>
VG Vio
Sorry für die Kurze Anmerkung, aber … wie wird man Shopware Certified Developer, wenn man nichtmal weiß wo die Template-Variablen definiert werden? Nun zu deiner Frage / deinem Problem: $configValue ist ein Item aus der ersten Schleife in config_upprice.tpl welches aus $sArticle.sConfigurator kommt. $sArticle wiederum wird in /engine/Shopware/Controllers/Frontend/Detail.php befüllt mit dem Wert von $article (Zeile 133) … $article wird initial befüllt in Zeile 89 (ebenfalls in in /engine/Shopware/Controllers/Frontend/Detail.php). Die dort aufgerufene Methode sGetArticleById($id) findet sich in /engine/core/class/sArticles.php Die von dir benötigte/gewünschte Info findet sich noch ein paar Schritte weiter, weil du ja wissen willst, woher die Artikel-Konfiguration kommt (darin sollte der upprice enthalten sein) … Siehe Zeile 2655 in /engine/core/class/sArticles.php … Dort wird die Methode sGetArticleConfig() aufgerufen, die in /engine/core/class/sConfigurator.php … definiert ist … sGetArticleConfig() tut dann nix anderes, als eine andere Methode innerhalb der eigenen Klasse aufzurufen … Nämlich die getArticleConfigurator() ab Zeile 69. Wir haben gleich das Ende erreicht … In Zeile 98 wird getConfiguratorSettings() aufgerufen, dort wiederum wird getConvertedSettings aufgerufen und das ist dein Ziel … (Zeile 597 in /engine/core/class/sConfigurator.php) private function getConvertedSettings($data, $article) { $settings = array( 'articleID' =\> $article-\>getId(), 'type' =\> $data['type'], 'template' =\> $data['template'], 'instock' =\> $article-\>getLastStock(), 'upprice' =\> 0 ); return $settings; }
Ich hoffe ich konnte dir helfen (nicht nur bei deinem jetzigen Problem, sondern auch zukünftig selbst den Weg zu finden) Gruß Patrick
Hi Patrick, Wäre ich ein typischer Forennutzer, würde ich wild gestikulierend, mit rauchenden Kopf zurückschreiben, wie unnützt die Anmerkung am Anfang Deiner Antwort ist. Sorry tut mir leid ich bin eben ein untypischer Nutzer. Ein Forum sollte doch dafür da sein, um sich auszutauschen. Und vor allem sollte man sich gegenseitig respektieren. Ein Forenprofil hat auch nichts mit sich “profilieren” zu tun. Du weißt doch gar nicht was ich auf dem Kasten habe… Wurscht! Leider ist die Anwort nicht sehr hilfreich. Denn ich suche die Stelle wo upprice mit dem Aufpreiswert gefüllt wird und eben nicht die Stelle (die ich schon vor Deiner Antwort kannte) an der upprice mit “0” gefüllt wird. Ich wollte einfach nur wissen, ob’s noch eine andere Stelle gibt. Aber es scheint mir so, als ob das einfach seitens Shopware noch nicht ausprogrammiert wurde. Habe ich Recht? VG Vio
@vio Hast Du eine Lösung gefunden ?