Shopware 6 als Katalog betreiben: Preise, Warenkorb & Elemente ausblenden
Ein Onlineshop ohne Preise und Bestellabschluss klingt paradox, ist aber im B2B-Geschäft und im gehobenen Fachhandel Alltag. Ob individuelle Händlerkonditionen erst nach Freigabe sichtbar sein sollen, ein Schaufenster vor dem offiziellen Launch präsentiert wird oder Dropshipping-Quellen geschützt werden müssen: Shopware 6 bietet ab Werk keinen simplen Schalter für einen reinen Katalogmodus.
Viele Shopbetreiber und Agenturen versuchen diesen Modus zunächst über CSS-Regeln oder Twig-Overrides zu lösen. In der Praxis führt das jedoch regelmäßig zu Sicherheitslücken, Datenlecks bei Google und hohem Wartungsaufwand bei Updates. Dieser Leitfaden zeigt die Risiken und erklärt, wie Sie Shopware 6 sauber und updatesicher als digitalen Produktkatalog betreiben.
Typische Anwendungsfälle für den Katalogmodus
In der eCommerce-Praxis existieren drei Hauptszenarien, in denen Produkte sichtbar sein müssen, die Kaufabwicklung jedoch blockiert werden soll:
- B2B-Konditionen nur nach Freischaltung: Das Sortiment soll für SEO und Neukunden öffentlich auffindbar sein, Einkaufspreise, Rabattstaffeln und der Bestellbutton jedoch erst nach erfolgreicher Registrierung und Bonitätsprüfung des Händlers.
- Digitales Schaufenster & Showroom (Pre-Launch oder Saisonpause): Bei exklusiven Manufaktur-Waren, erklärungsbedürftigen B2B-Anlagen oder vor dem Start einer Verkaufsphase sollen Kunden Produkte ansehen und anfragen können, ohne dass Bestellungen ausgelöst werden.
- Dropshipping & Whitelabel-Vertrieb: Artikel werden gelistet, aber empfindliche Angaben wie Hersteller-Logos, Lieferanten-SKUs und direkte Markenbezüge müssen vor Endkunden verborgen bleiben, um Abwanderung zu verhindern.
Warum display: none; per CSS gefährlich ist
Der schnellste Gedanke vieler Entwickler: Eine CSS-Klasse wie .product-detail-price { display: none; } im Theme einfügen.
Optisch ist der Preis im Browser damit verschwunden. Technisch erzeugt diese Methode jedoch gravierende Probleme:
- Preise bleiben im HTML-Quelltext: Jeder Besucher kann mit F12 (Element untersuchen) oder Rechtsklick → Quelltext anzeigen die Preise sekundenschnell einsehen.
- Datenlecks in Suchmaschinen (Google Rich Snippets): Shopware generiert strukturierte Daten im Format JSON-LD unter
offers. Google zieht den Preis direkt aus dem Skript-Block und zeigt ihn oft als Preisangabe in den Suchergebnissen an – selbst wenn die Storefront den Betrag per CSS maskiert! - Fragmentierte Preisanzeige: Preise sitzen in Shopware 6 an zahllosen Stellen: im Listing, in der Ajax-Live-Suche, im Offcanvas-Warenkorb und im Header. Ein CSS-Selektor übersieht fast immer einen dieser Pfade.
- Warenkorb-Buttons bleiben funktional: Versteckt man den Kaufen-Button nur optisch, können Bots oder versierte Nutzer das Formular weiterhin absenden und Artikel in den Warenkorb legen.
Warum Twig-Template-Overrides bei Updates brechen
Der scheinbar saubere Entwickler-Weg führt über Twig-Overrides in einem Child-Theme: Man überschreibt Blöcke wie page_product_detail_buy_inner oder buy_widget_price:
{# src/Resources/views/storefront/page/product-detail/buy-widget-price.html.twig #}
{% sw_extends '@Storefront/storefront/page/product-detail/buy-widget-price.html.twig' %}
{% block page_product_detail_price_inner %}
{% if context.customer is null %}
<p class="catalog-mode-notice">Preise nur für registrierte B2B-Kunden sichtbar.</p>
{% else %}
{{ parent() }}
{% endif %}
{% endblock %}
Das Problem daran: Technische Schulden und Theme-Wartung. Sobald Shopware 6 ein Minor-Update (z. B. von 6.5 auf 6.6) veröffentlicht oder der Theme-Hersteller das Layout aktualisiert, ändern sich häufig Blocknamen, Datenstrukturen oder JavaScript-Bindings. Nach dem Update liegen Preise oder Kaufen-Buttons im Staging oder Live-Shop plötzlich wieder offen. Da Entwickler meist mit eingeloggtem Test-Account testen, wird der Fehler oft erst durch Kunden bemerkt.
Die 5 Kernbereiche eines sauberen Katalogmodus
Soll ein Shopware-Shop konsistent als Katalog agieren, müssen fünf unterschiedliche Storefront-Bereiche synchron gesteuert werden:
1. Verkaufspreise, Listenpreise & Streichpreise ausblenden
Es reicht nicht, nur den Hauptpreis zu entfernen. Auch UVP-Streichpreise, Staffelpreistabellen und Grundpreisangaben müssen auf Detailseite, Listing und in der Suche blockiert werden. Entscheidend ist dabei, dass auch das schema.org/Offer-Markup serverseitig keinen Betrag mehr enthält.
2. Warenkorb, Kaufen-Button & Header-Badge deaktivieren
Der Kaufen-Button auf der Detailseite, Schnellkauf-Buttons in Produktkarten sowie der Offcanvas-Warenkorb müssen entfernt werden. Gleichzeitig muss das Warenkorb-Icon im Header samt Mengenzähler ausgeblendet werden, damit Besucher nicht durch ein leeres Icon irritiert werden.
3. Herstellername, Logo & Hersteller-Filter verbergen
Besonders im Dropshipping und bei Whitelabel-Sortimenten: Finden Kunden das Originallogo des Herstellers, googeln sie die Quelle und bestellen dort direkt. Das Verbergen muss sowohl das Logo auf der Detailseite als auch die Hersteller-Filter in der Kategorie-Sidebar abdecken.
4. Produktnummern (SKUs & MPNs) entfernen
Importierte Lieferanten-Artikelnummern sind eine offene Einladung für B2B-Käufer, Großhändler zu identifizieren oder für Mitbewerber, Preise automatisiert zu scrapen. In der Administration müssen diese Nummern für die Logistik erhalten bleiben, in der Storefront gehören sie ausgeblendet.
5. Breadcrumbs & Navigationspfade steuern
Auf fokussierten Produkt-Landingpages oder bei flachen B2B-Katalogen lenkt der Brotkrümelpfad oft vom Anfrage-Formular ab. Die Möglichkeit, Breadcrumbs gezielt pro Ansicht zu deaktivieren, sorgt für ein aufgeräumtes Design.
Die Lösung: Zentrale Schalter in der Administration
Statt für jede Shop-Instanz eigenen Theme-Code zu pflegen, empfiehlt sich eine Steuerung direkt in den Systemeinstellungen von Shopware 6. Das Plugin Elemente ausblenden hängt sich serverseitig in das Rendering ein und unterbindet die Ausgabe der gewünschten Blöcke, bevor das HTML an den Browser gesendet wird:
- Preise & Streichpreise: Verschwinden auf Detailseiten, im Kategorie-Listing und in den Suchergebnissen.
- Warenkorb & Checkout: Kaufen-Button, Offcanvas-Cart und Header-Warenkorb werden vollständig entfernt.
- Hersteller & Filter: Logos und Hersteller-Filterboxen werden nicht gerendert.
- Produktnummern: Verbleiben im Admin, verschwinden aus der Kundenansicht.
- Update-Sicherheit: Kein Theme-Code, keine Twig-Hacks – Shopware-Updates überschreiben keine Einstellungen.
Katalogmodus jetzt in Shopware 6 einrichten
Mit Elemente ausblenden aktivieren Sie Preise, Warenkorb und Hersteller-Sichtbarkeiten per Mausklick in der Administration. Testen Sie die Erweiterung im kostenlosen Probemonat direkt in Ihrer Staging- oder Produktivumgebung.
Plugin „Elemente ausblenden“ ansehen Im Shopware Store öffnenCheckliste vor dem Go-Live
Bevor Sie den Katalogmodus für Kunden freigeben, sollten Sie folgende Punkte im Inkognito-Fenster prüfen:
- Inkognito-Test als Gast: Öffnen Sie Kategorie, Produktdetailseite und Suche ohne Login. Ist nirgendwo ein Betrag sichtbar?
- JSON-LD Quelltext-Check: Öffnen Sie den Quelltext (Strg + U) und suchen Sie nach
"price"und"offers". Steht dort kein nummerischer Preis mehr? - Header & Mobile-Ansicht: Prüfen Sie auf dem Smartphone, ob das Warenkorb-Symbol im mobilen Menü ausgeblendet ist.
- Ersatz-Call-to-Action: Ersetzen Sie den Kaufen-Bereich durch einen Button wie „Angebot anfragen“ oder „Händler-Login erforderlich“, damit die Seite nicht leer wirkt.
- Shopware-Cache leeren: Leeren Sie den HTTP- und Template-Cache (
bin/console cache:clear), damit alle Änderungen sofort greifen.
Verwandte B2B-Leitfäden: Dropshipping: Lieferantenquellen in der Storefront schließen · B2B-Schnellbestellung per Artikelnummer · B2B-Wiederbestellungen optimieren · Elemente ausblenden Plugin