Magento-Shop nur als Katalog: Teil 3 – Entfernung von Preisen (für jede Produktart)
Zu guter letzt, sollen nun noch die Preisausgaben auf den Produktseiten deaktiviert werden. Ich wollte mir zunächst den Weg verkürzen und nur an einer einzelnen Datei Modifikationen vornehmen, doch das führte nicht zum Ergebnis & ich erhielt nur hässliche Errors. Daher entschloss ich mich hier den Weg über die Produktarten zu gehen. Dazu begeben wir uns in das Verzeichnis app/design/frontend/default/default/template/catalog/product/view/type darin finden wir die Dateien configurable.phtml, grouped.phtml, simple.phtml und virtual.phtml und öffnen diese.
Die Konfiguration für die Produkttypen simple, configurable & virtual sind denkbar einfach. Hier wird je die Preisausgabe unten auskommentiert.
<?php /*echo $this->getPriceHtml($_product) */?>
In der Datei grouped.phtml muss man hingegen schon etwas mehr tun. Da sich die angezeigten Simple-Products auf einer solchen Seite über eine kleine Tabelle aufbauen muss man hier zwingend sowohl die Tabellenköpfe wie auch die Tabellenzellen auskommentieren die man nicht benötigt.
In unserem Fall sind das die Angabe vom Preis und das Textfeld zum eintragen der gewünschten Bestellmenge.
1. In der ersten Tabellenzeile, direkt unter der Ausgabe vom Namen des Produkts kommentieren wir die Tabellenköpfe für Preis und Anzahl aus:
<!--<th class="a-right"><?php echo $this->__('Price') ?></th>-->
<?php if ($_product->isSaleable()): ?>
<!--<th class="a-center"><?php echo $this->__('Qty') ?></th>-->
2. In der zweiten Tabellenzeile, ebenfalls direkt unter der Ausgabe vom Namen des Produkts kommentieren wir die zu den Tabellenköpfen gehörenden Tabellenzellen aus:
<!--<td class="a-right">
<?php /*echo $this->getPriceHtml($_item, true)*/ ?>
<?php /*echo $this->getTierPriceHtml($_item)*/ ?>
</td>-->
<?php if ($_product->isSaleable()): ?>
<!--<td class="a-center">
<?php if ($_item->isSaleable()) : ?>
<input name="super_group[<?php echo $_item->getId() ?>]" value="<?php echo $_item->getQty()*1 ?>" type="text" class="input-text qty" />
<?php else: ?>
<?php echo $this->__('Out of stock.') ?>
<?php endif; ?>
</td>-->
Die Datei für Bundle Products liegt an einer anderen Stelle: app/design/frontend/default/default/template/bundle/catalog/product/view/type/bundle.phtml
Wichtig ist in dieser Datei, dass man zusätzlich zu den Bereichen die auch in simple, configurable & virtual berücksichtigt wurden, den untersten Bereich auskommentiert!
<?php/*echo $this->getChildHtml('bundle_prices') */?>
EDIT:
Gleiches gilt für die Downloadable Products – die in der Hitze des Gefächts fast vergessen wurden, da Sie in den verwendeten Samle-Daten (Version 1.2.0) noch nicht berücksichtigt wurden und dieser Produkttyp erst später in Magento implementiert wurde.
Der Pfad zum Glück:
app/design/frontend/default/default/template/downloadable/catalog/product/type.phtml
Und dort in gewohnter Manier die Preisausgabe ausschalten:
<?php /*echo $this->getPriceHtml($_product)*/ ?>
Nun sind für alle gegenwärtigen Produktarten die Ausgabe von Preisen im Shop deaktiviert.
Im letzten Teil werden noch einige Finetunings für Zubehör, CrossSelling Produkte, Individuelle Optionen & das Layout Handling bei Bewertungen vorgenommen.
Übersicht | Teil 1 | Teil 2 | Teil 3 | Teil 4
Live Shop bzw. Katalog mit den Magento Sample-Data zum testen unter
http://www.demo-katalog.golox.eu/
Ich hoffe nicht dass es eine lange Nacht wird, werde mich gleich mal hinsetzen und das Ganze umsetzen für mein Projekt, falls dies alles so funktioniert, poste ich hier später den Link (Nur muss natürlich erst Content rein … )
Danke für den Artikel und die Arbeit – muss ja mal gesagt werden!
V.
War diese Antwort hilfreich?
LikeDislikeIch empfehle die Preisausgabe mit PHP Kommentaren zu unterbinden da die Preise sonst im Quelltext der Seite zu sehen sind.
Also etwa so:
getPriceHtml($_product) */ ?>
statt
<!–getPriceHtml($_product) ?>–>
Gruß,
Vinai
War diese Antwort hilfreich?
LikeDislikeOkay, also nochmal MIT entities, sorry:
<?php /* echo $this->getPriceHtml($_product) */ ?>
statt
<!–<?php echo $this->getPriceHtml($_product) ?>–>
War diese Antwort hilfreich?
LikeDislikeIch habe die Preisausgabe in den .phtml Dateien nun abgeändert. Sowohl in den Code-Snippets hier im Beitrag wie auch im Demo-Template.
Danke für den Tipp Vinai!
Des Weiteren wurden im ersten Step die Downloadable Products vergessen und der Beitag wurde dem entsprechend aktualisiert, siehe dazu “EDIT“.
Liebe Grüße – Daniel
War diese Antwort hilfreich?
LikeDislikeSollte man nicht generell in den auskommentierten blöcken die php ausgaben unterbinden?! Also nicht einfach nur HTML kommentare sondern auch gleich noch die php-teile mittels php-kommentaren auser funktion setzen.
Jeder unnötige Funktionsaufruf der eine Ausgabe erzeugt, welche aber nicht angezeigt werden soll, belastet den Server durch unnötige Datenbankabfragen bzw. Funktionsaufrufe.
Aber Vorsicht wenn man so sein Magento beschleunigen möchte. Es könnten Flügel wachsen…. nein im Ernst. Das Auskommentieren der PHP Teile sollte mit Vorsicht angegangen werden weil sich mitunter auch wichtige Teile darin verbergen können. Also nur etwas für Leute die wissen was Sie tun.
My 2 cents
thoralf
War diese Antwort hilfreich?
LikeDislike