RcDualPrice: Zweite Preisanzeige pro Kategorie

Du verkaufst Markenprodukte unter dem empfohlenen Verkaufspreis und willst dem Kunden zeigen, wie viel er spart. Shopware hat dafür einen Listenpreis — aber der ist immer sichtbar, lässt sich nicht pro Kategorie steuern und sitzt fest im Theme-Styling. RcDualPrice löst das mit einem zweiten Preis, der gezielt pro Kategorie aktiviert und frei gestylt werden kann.

Was am Shopware-Listenpreis stört

Shopware bringt einen eingebauten Listenpreis mit. Pro Produkt hinterlegbar, wird er als durchgestrichener Preis angezeigt. Das funktioniert — hat aber drei Schwächen. Der Listenpreis ist global sichtbar, sobald er gesetzt ist. Du kannst ihn nicht für eine Kategorie aktivieren und für eine andere ausblenden.

Das Styling ist im Theme verankert und lässt sich nur über Template-Overrides ändern. Und manchmal brauchst du einen zusätzlichen Preis neben dem Listenpreis — etwa einen Herstellerpreis oder eine UVP. Shopware sieht nur einen einzigen Vergleichspreis vor, nicht zwei.

RcDualPrice ist unabhängig vom Shopware-Listenpreis. Der zweite Preis lebt in einem eigenen Custom Field am Produkt und wird per Kategorie-Custom-Field gesteuert. So bestimmst du genau, welche Kategorien den Zweitpreis zeigen und welche nicht.

So funktioniert das Plugin

Der zweite Preis wird am Produkt als Custom Field eingetragen. Das Feld legt das Plugin bei der Installation automatisch an — du findest es unter Spezifikationen in der Produktverwaltung. Ob der Zweitpreis angezeigt wird, hängt von der Kategorie ab: Nur wenn an der Kategorie das Custom Field Zweitpreis anzeigen auf Ja steht, erscheint der zweite Preis auf der Detailseite und im Listing.

Das Styling definierst du als CSS direkt in der Plugin-Konfiguration. Durchgestrichen und grau, farblich hervorgehoben, kleiner als der Hauptpreis — du entscheidest. Das CSS wird inline eingefügt, keine zusätzliche Datei, kein Cache-Problem bei Änderungen.

Das Plugin erweitert die bestehenden Shopware-Templates per Block-Extending. Kein Template-Override nötig, keine Konflikte mit Theme-Updates. Der Zweitpreis fügt sich nahtlos in die vorhandene Preisanzeige ein.

Installation

Installation per Composer in der DDEV-Umgebung:

ddev composer require ruhrcoder/rc-dual-price
ddev exec bin/console plugin:refresh
ddev exec bin/console plugin:install --activate RcDualPrice
ddev exec bin/console cache:clear

Konfiguration

In der Administration unter Erweiterungen > Meine Erweiterungen > RcDualPrice > Konfiguration findest du die globalen Einstellungen:

EinstellungBeschreibungBeispiel
CSS-StylingGlobales CSS für die Zweitpreis-Anzeigecolor: #999; font-size: 0.9em;

Die Aktivierung erfolgt in zwei Schritten. Zuerst öffnest du die gewünschte Kategorie und setzt das Custom Field Zweitpreis anzeigen auf Ja. Dann trägst du am Produkt selbst den zweiten Preis als Custom Field ein. Nur wenn beides gesetzt ist — Kategorie aktiviert und Preis am Produkt hinterlegt — erscheint der Zweitpreis im Frontend.

Diese Zwei-Schritte-Logik ist bewusst so gestaltet. Du kannst den Zweitpreis an allen Produkten einer Kategorie hinterlegen, die Anzeige aber über das Kategorie-Feld zentral steuern. Wenn du die UVP-Anzeige temporär abschalten willst, setzt du ein einziges Custom Field auf Nein — die Preise an den Produkten bleiben erhalten.

Praxisbeispiel: UVP bei Markenprodukten

Ein konkreter Fall aus dem Projektalltag: Ein Shop verkauft Markenprodukte unter der UVP. Der Hersteller gibt 49,95 EUR vor, der Shoppreis liegt bei 39,99 EUR. Mit RcDualPrice zeigst du beide Preise nebeneinander — der Kunde sieht sofort, dass er knapp zehn Euro spart.

Du aktivierst den Zweitpreis für die Kategorie „Markenprodukte“, trägst die UVP am Produkt ein und definierst das CSS so, dass die UVP durchgestrichen und grau erscheint. Das dauert keine fünf Minuten pro Kategorie.

Genauso funktioniert es für B2B-Shops, die einen Listenpreis neben dem individuellen Kundenpreis zeigen wollen. Oder für Aktionsartikel mit temporären Streichpreisen in bestimmten Kategorien — Zweitpreis aktivieren für die Aktion, danach wieder deaktivieren, ohne an den Produktdaten etwas ändern zu müssen.

Auch für Shops mit gemischtem Sortiment ist die Kategorie-Steuerung praktisch. In der Marken-Kategorie zeigst du die UVP, in der Eigenmarken-Kategorie nicht — obwohl beide Kategorien Produkte mit hinterlegtem Zweitpreis enthalten können.

Update

Updates laufen über Composer:

ddev composer update ruhrcoder/rc-dual-price
ddev exec bin/console plugin:update RcDualPrice
ddev exec bin/console cache:clear

Die gezeigten Code-Beispiele dienen zur Veranschaulichung. Nutzung auf eigene Verantwortung. Mehr dazu