Individuelle "Keine Produkte"-Texte und Bilder pro Kategorie für Shopware 6.7 mit optionaler Vererbung von Elternkategorien.
Live Demo: Teste alle Plugins für OXID eShop und Shopware von Markus Michalski live — ohne Installation, ohne Risiko. demo.markus-michalski.net
| Feature | Beschreibung |
|---|---|
| Individuelle Nachrichten | HTML-Nachrichten pro Kategorie wenn keine Produkte vorhanden sind |
| Kategorie-Bilder | Optionale Bilder (z.B. trauriges Smiley) für leere Kategorien |
| Bildgrößen-Steuerung | Klein (150px), Mittel (250px) oder Groß (400px) |
| Flexible Ausrichtung | Separate Bild- und Text-Ausrichtung (links, mittig, rechts) |
| CSS-Klassen | Eigene CSS-Klassen für individuelles Styling |
| Eltern-Vererbung | Optional Nachrichten von übergeordneten Kategorien erben |
| Mehrsprachig | Deutsche und englische Übersetzungen enthalten |
| CSP-kompatibel | Keine Inline-Styles — alles Styling über CSS-Klassen (strikte Content Security Policy kompatibel) |
1. Privates Repository hinzufügen
{"repositories": [{"type": "composer","url": "https://packeton.markus-michalski.net"}]}
Die Repository-Zugangsdaten werden nach dem Lizenzkauf bereitgestellt.
2. Plugin installieren
composer require mmd/sw67-empty-category
3. Plugin aktivieren
bin/console plugin:refresh && bin/console plugin:install --activate MmdEmptyCategory && bin/console cache:clear
| Feld | Beschreibung |
|---|---|
| Nachricht | HTML-Text der angezeigt wird wenn keine Produkte vorhanden sind |
| Bild | Optionales Bild (z.B. ein trauriges Smiley) |
| Bildgröße | Klein (150px), Mittel (250px), Groß (400px) |
| Bild-Ausrichtung | Links, Mitte, Rechts |
| Text-Ausrichtung | Links, Mitte, Rechts |
| CSS-Klassen | Zusätzliche CSS-Klassen für eigenes Styling |
| Von Eltern erben | Nachricht der übergeordneten Kategorie nutzen wenn keine eigene definiert |
Eine "Weihnachts-Specials" Kategorie die außerhalb der Saison leer ist:
Nachricht:
<h3>Demnächst verfügbar!</h3>
<p>Unsere Weihnachts-Specials sind ab November erhältlich. Schau bald wieder vorbei!</p>
Bild: Ein festliches Platzhalterbild
Bildgröße: Groß
Text-Ausrichtung: Mitte
Eine Kategorie in der Produkte temporär nicht verfügbar sind:
Nachricht:
<p>Alle Produkte in dieser Kategorie sind derzeit ausverkauft.
Wir arbeiten daran, den Bestand aufzufüllen - bitte schau bald wieder vorbei!</p>
CSS-Klasse: alert-warning
Elternkategorie "Elektronik" mit Nachricht:
<p>In dieser Kategorie sind derzeit keine Produkte verfügbar.</p>
Kindkategorien "Smartphones", "Tablets", "Laptops" alle mit Von Eltern erben: Ja
Ergebnis: Alle Kindkategorien zeigen die Nachricht der Elternkategorie ohne individuelle Konfiguration.
Wenn "Von Eltern erben" aktiviert ist und keine eigene Nachricht definiert:
Das Plugin nutzt BEM-Style CSS-Klassen für Layout und Ausrichtung — keine Inline-Styles, vollständig kompatibel mit strikten Content Security Policies (CSP).
<div class="mmd-empty-category-message deine-custom-klasse">
<div class="mmd-empty-category-image-wrapper mmd-empty-category-image-wrapper--align-center">
<img class="mmd-empty-category-image mmd-empty-category-image--size-medium" ...>
</div>
<div class="mmd-empty-category-text mmd-empty-category-text--align-center">
Dein Nachrichteninhalt
</div>
</div>
| Klasse | Varianten | Beschreibung |
|---|---|---|
mmd-empty-category-image-wrapper--align-{wert} |
left, center, right |
Bild-Container Ausrichtung |
mmd-empty-category-image--size-{wert} |
small (150px), medium (250px), large (400px) |
Bild max-width |
mmd-empty-category-text--align-{wert} |
left, center, right |
Text-Ausrichtung |
Füge dies zum SCSS deines Themes hinzu:
.mmd-empty-category-message {
padding: 2rem;
background: #f8f9fa;
border-radius: 8px;
text-align: center;
.mmd-empty-category-image {
margin-bottom: 1rem;
}
.mmd-empty-category-text {
color: #666;
h3 {
color: #333;
margin-bottom: 0.5rem;
}
}
}
Das Plugin stellt eine Twig-Funktion für eigene Template-Nutzung bereit:
{% set emptyMessage = mmd_empty_category_message(category) %}
{% if emptyMessage.hasContent() %}
{{ emptyMessage.message|sw_sanitize }}
{% endif %}
| Methode | Rückgabe | Beschreibung |
|---|---|---|
hasContent() |
bool | Hat Nachricht oder Bild |
hasMessage() |
bool | Hat Textnachricht |
hasImage() |
bool | Hat Bild-URL |
getImageMaxWidth() |
string | CSS max-width Wert (z.B. 250px) |
getImageJustify() |
string | CSS justify-content Wert (z.B. center) |
getTextAlignCss() |
string | CSS text-align Wert (z.B. center) |
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
message |
string | HTML-Nachrichteninhalt |
imageUrl |
string | Media-URL |
cssClass |
string | Bereinigte CSS-Klassen |
imageSize |
string | small, medium, large |
imageAlign |
string | left, center, right |
textAlign |
string | left, center, right |
sw_sanitize Filter gerendertstyle-src PoliciesDieses Plugin ist unter der GNU General Public License v3 veröffentlicht.
Siehe LICENSE für Details.
Für Kunden, die dieses Plugin über den Shopware Store erworben haben, erfolgt der technische Support ausschließlich über das offizielle Shopware Support-Ticket-System in Ihrem Shopware-Account. Für allgemeine, projektbezogene oder kommerzielle Anfragen außerhalb des Store-Frameworks erreichen Sie mich unter support@markus-michalski.net.