Alte Preise durchstreichen neue Anzeigen

  • Hallo ich siche seit langem eine Lösung für das Problem und bin bis jetzt nicht fündig geworden.
    Ich nütze Virtuemart 2.0.18a und Joomla 2.5.8.


    Ist die Funktion in meiner Version vorhanden oder nicht?
    Ich nütze nur die Katalogansicht und lasse nur folgende Preise anzeigen: Grundpreis inklusive MwSt., aber ohne Preisnachlässe, Endverkaufspreis und Preisnachlassbetrag. Den Preisnachlass trage ich über das Backend mit Überschreiben, Endpreis überschreiben ein. Dieser wird auch angezeigt, allerdings wird der alte Preis nicht durchgestrichen...


    Vielen Dank für jede Hilfestellung!

  • Hallo ich siche seit langem eine Lösung für das Problem und bin bis jetzt nicht fündig geworden.
    Ich nütze Virtuemart 2.0.18a und Joomla 2.5.8.


    Ist die Funktion in meiner Version vorhanden oder nicht?
    Ich nütze nur die Katalogansicht und lasse nur folgende Preise anzeigen: Grundpreis inklusive MwSt., aber ohne Preisnachlässe, Endverkaufspreis und Preisnachlassbetrag. Den Preisnachlass trage ich über das Backend mit Überschreiben, Endpreis überschreiben ein. Dieser wird auch angezeigt, allerdings wird der alte Preis nicht durchgestrichen...


    Vielen Dank für jede Hilfestellung!


    evtl. versuchst du das hier mal:


    Nur den Endpreis anzeigen zu lassen ist kein Problem. Wenn der Artikel jedoch reduziert wurde, will man oft gerne über den Endpreis den ursprünglichen Preis durchgestrichen stehen haben und darunter den Preisnachlass. Ähnlich wie im Beispiel zu sehen:
    20 EUR
    15 EUR
    Sie sparen 5 EUR


    Zu allererst vergewissern wir uns das im Backend, in den Virtuemart 2 Konfigurationen, unter dem Reiter "Preisangaben" folgende Preisansichten mit einem Haken versehen sind.


    Grundpreis inklusive MwSt., aber ohne Preisnachlässe -> wird unser "alter" Preis. Dieser ist nur Sichtbar wenn der Artikel reduziert ist.
    Endverkaufspreis -> soll immer sichtbar sein!
    Preisnachlassbetrag -> Unser Rabattbetrag, ebenfalls nur sichtbar wenn reduziert.


    Alle anderen Preisangaben (sofern diese nicht gebraucht werden) deaktivieren.


    Nun gehts ans Eingemachte!


    Wir wollen mit der Kategorieansicht beginnen. Falls Sie es noch nicht getan haben erstellen Sie für diese Ansicht (category) und die der Artikeldetailansicht (productdetails) "Overrides" für Ihr Template.


    Öffne nun die default.php in dem Ordner category und finde die folgende Zeile:


    if( $this->showBasePrice){
    echo $this->currency->createPriceDiv('basePrice','COM_VIRTUEMART_PRODUCT_BASEPRICE',$product->prices);
    echo $this->currency->createPriceDiv('basePriceVariant','COM_VIRTUEMART_PRODUCT_BASEPRICE_VARIANT',$product->prices);
    }


    Unter diesen füge jetzt den folgenden Codeabschnitt ein.
    if(!empty($product->prices['discountAmount']))
    {
    echo $this->currency->createPriceDiv('basePriceWithTax','COM_VIRTUEMART_PRODUCT_BASEPRICE_WITHTAX',$product->prices);
    echo $this->currency->createPriceDiv('salesPrice','COM_VIRTUEMART_PRODUCT_SALESPRICE',$product->prices);
    echo $this->currency->createPriceDiv('discountAmount','COM_VIRTUEMART_PRODUCT_DISCOUNT_AMOUNT',$product->prices);
    } else {
    echo $this->currency->createPriceDiv('salesPrice','',$product->prices);
    }


    Kurz zur Erläuterung: Es wird ganz simpel abgefragt ob ein Rabatt vorhanden ist. Wenn Ja, wird unsere Preisansicht in der Reihenfolge wie oben zu sehen ausgegeben. Ansonsten wird nur ganz simpel der Endpreis angezeigt.


    Was du mit den anderen Preisansichten im Code machst bleibt dir überlassen. Entweder auskommentieren, löschen oder stehen lassen. Da wir die anderen Preisansichten im Backend deaktiviert haben werden diese sowieso nicht angezeigt.


    Genau so, wie oben beschrieben, wollen wir nun auch für die Detailansicht verfahren!
    Hier öffnen wir jedoch nicht die default.php sondern default_showprices.php in dem Ordner productdetails deines Templates. Nun wieder die Schritte von oben wiederholen, nur statt dem Codeblog oben fügen wir den folgenden ein:
    if(!empty($this->product->prices['discountAmount']))
    {
    echo $this->currency->createPriceDiv('basePriceWithTax', 'COM_VIRTUEMART_PRODUCT_BASEPRICE_WITHTAX', $this->product->prices);
    echo $this->currency->createPriceDiv('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $this->product->prices);
    echo $this->currency->createPriceDiv('discountAmount', 'COM_VIRTUEMART_PRODUCT_DISCOUNT_AMOUNT', $this->product->prices);
    } else {
    echo $this->currency->createPriceDiv('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $this->product->prices);
    }


    Im Prinzip sollte hiermit alles getan sein. Der Rest ist eine Frage der CSS Styles. Um den ursprünglichen Preis so wie oben zu formatieren füge einfach den folgenden Abschnitt in dein Stylesheet!


    .PricebasePriceWithTax {
    color: #ff0000;
    text-decoration: line-through
    }


    Getestet mit: Joomla 2.5.7 & Virtuemart 2.0.10


    hier gefunden:


    webnut | Print & Webdesign aus Bad Lippspringe | Virtuemart 2 Preisansicht optimieren

  • Hallo,
    das klappt bei mir nicht. Habe alles so gemacht wie beschrieben.


    Alleine die Abfrage nach dem Rabatt gibt ein falsches Ergebnis.
    Rabatt von 20% eingetragen. Der EndPreis wird richtig dargestellt, aber der Grundpreis ohne Nachlass hat den selben Wert.


    Hat Du dafür eine Erklärung?


    Gruß Detlef


  • Was klappt nicht, hast du einen Link?