Zum Inhalt springen
Shopware 6 Handbuch

Mindesthaltbarkeitsdatum (MHD) für Artikel

Mindesthaltbarkeitsdatum pro Artikel und Variante pflegen, auf Detailseite und im Warenkorb anzeigen, abgelaufene Ware stündlich automatisch abschalten. Ohne Import, ohne Code.

Version 6.7.1 Kompatibel mit 6.7.0 und neuer 19 Min. Lesezeit
Auf dieser Seite

Einleitung

Mit diesem Plugin hinterlegst du an jedem Artikel ein Mindesthaltbarkeitsdatum, zeigst es deinen Kunden im Shop und lässt abgelaufene Ware automatisch aus dem Verkauf gehen — ohne Import, ohne zusätzliche Software und ohne eine Zeile Code.

Was du mit diesem Plugin erreichst

  • Du pflegst das Datum dort, wo du ohnehin arbeitest. Am Artikel erscheint ein neuer Bereich, in dem du das Datum einträgst. Du brauchst keinen zusätzlichen Menüpunkt und keine Liste, die du extra pflegst.
  • Deine Kunden sehen das Datum vor dem Kauf. Es steht auf der Artikeldetailseite unter dem Kaufbereich und noch einmal an jeder Position im Warenkorb. Das spart Rückfragen im Kundenservice und Retouren.
  • Abgelaufene Ware verschwindet von selbst aus deinem Sortiment. Eine Prüfung läuft etwa einmal pro Stunde im Hintergrund und schaltet jeden Artikel ab, dessen Datum erreicht ist.
  • Du rechnest deine Lieferzeit mit ein. Je Artikel legst du einen Vorlauf in Tagen fest. Was bis zur Zustellung ablaufen würde, wird gar nicht erst verkauft.
  • Jede Charge bekommt ihr eigenes Datum. Varianten übernehmen den Wert vom Hauptartikel und dürfen ihn überschreiben. So geht die ältere Lieferung offline, während die neue im Verkauf bleibt.
  • Du steuerst jeden Verkaufskanal getrennt. Ob das Datum im Shop erscheint, entscheidest du pro Verkaufskanal.

Für wen ist dieses Plugin?

Für alle, die Ware mit begrenzter Haltbarkeit verkaufen: Lebensmittel und Feinkost, Naturkosmetik, Tierfutter, Drogerie- und Apothekenbedarf, Nahrungsergänzung, Farben und Chemikalien. Überall dort, wo ein abgelaufenes Produkt im Warenkorb nicht nur ärgerlich ist, sondern ein rechtliches Risiko.

Du brauchst keine Programmierkenntnisse. Alles, was in dieser Anleitung beschrieben wird, erledigst du in deiner Shopware-Administration.

Rechtlicher Hinweis: Wir übernehmen keine Haftung für die Einhaltung rechtlicher Vorgaben. Bitte prüfe den Einsatz im Zweifel mit einem qualifizierten Rechtsbeistand.

Installation

Nach dem Kauf steht dir das Plugin direkt in deiner Administration zur Verfügung — du musst nichts herunterladen.

  1. Melde dich in deiner Shopware-Administration an.
  2. Öffne Erweiterungen → Meine Erweiterungen.
  3. Klicke beim Eintrag Mindesthaltbarkeitsdatum (MHD) für Artikel auf Installieren.
  4. Schalte das Plugin anschließend über den Schalter links neben dem Eintrag ein.

Meine Erweiterungen mit installiertem und aktivem Plugin Abb. 1: Das Plugin ist installiert und aktiv. Rechts siehst du die Version und den Link Konfigurieren.

Ist der Schalter blau, ist das Plugin aktiv. Damit ist die Installation abgeschlossen: Am Artikel steht ab sofort ein neuer Bereich für das Mindesthaltbarkeitsdatum bereit, und die Anzeige im Shop ist eingeschaltet.

Taucht das Plugin nicht in der Liste auf? Dann ist dein Shop noch nicht mit deinem Shopware-Konto verbunden. Die Anmeldung findest du unter Erweiterungen → Meine Erweiterungen im Reiter Shopware Account.

Tipp: Der Schalter neben dem Eintrag ist auch später dein Notaus. Schaltest du ihn aus, verschwinden die Eingabefelder am Artikel und die Anzeige im Shop — deine bereits gepflegten Datumsangaben bleiben aber erhalten und sind nach dem Wiedereinschalten sofort wieder da.

Konfiguration

Was dir das bringt: Du legst hier fest, in welchen deiner Verkaufskanäle das Mindesthaltbarkeitsdatum im Shop erscheint. Betreibst du nur einen Shop, kannst du dieses Kapitel überspringen — die Voreinstellung passt.

Die Einstellungen erreichst du so:

  1. Öffne Erweiterungen → Meine Erweiterungen.
  2. Klicke beim Eintrag Mindesthaltbarkeitsdatum (MHD) für Artikel auf Konfigurieren.

Konfigurationsseite des Plugins Abb. 2: Die Konfigurationsseite mit der Auswahl Verkaufskanal, der Schaltfläche zur Dokumentation und dem Schalter Plugin für diesen Verkaufskanal aktivieren.

Verkaufskanal auswählen

Ganz oben steht die Auswahl Verkaufskanal. Sie ist mit Alle Verkaufskanäle vorbelegt. Was du in dieser Stellung einstellst, gilt für jeden deiner Shops.

Betreibst du mehrere Verkaufskanäle — zum Beispiel einen B2B- und einen B2C-Shop — wählst du hier zuerst den gewünschten Kanal aus und stellst danach den Schalter darunter. Jeder Kanal behält seine eigene Einstellung.

Plugin für diesen Verkaufskanal aktivieren

Mit dem Schalter Plugin für diesen Verkaufskanal aktivieren entscheidest du, ob das Mindesthaltbarkeitsdatum auf der Artikeldetailseite und im Warenkorb dieses Verkaufskanals angezeigt wird. Ab Werk ist er eingeschaltet.

Wozu das gut ist: Dein Feinkost-Shop zeigt das Datum, während dein zweiter Shop mit Non-Food-Sortiment unverändert bleibt. Du musst dafür nichts deinstallieren und nichts umbauen.

Vergiss nicht, deine Änderung oben rechts mit Speichern zu sichern.

Wichtig: Der Schalter steuert die Anzeige pro Verkaufskanal. Das automatische Abschalten abgelaufener Artikel arbeitet dagegen shopweit, weil ein Artikel in Shopware entweder für alle Kanäle aktiv ist oder für keinen. Solange das Plugin in mindestens einem Verkaufskanal eingeschaltet ist, werden abgelaufene Artikel abgeschaltet. Mehr dazu in Abgelaufene Artikel automatisch abschalten.

zur Dokumentation

Die blaue Schaltfläche zur Dokumentation öffnet diese Anleitung in einem neuen Browser-Reiter, und zwar in der Sprache deiner Administration. So findest du die Hilfe immer dort, wo du gerade arbeitest.

Mindesthaltbarkeitsdatum am Artikel pflegen

Was dir das bringt: Du trägst an einem Artikel ein Datum ein und legst fest, wie viele Tage vorher er aus dem Verkauf gehen soll. Danach kümmert sich das Plugin um Anzeige und Abschaltung — du musst den Artikel nie wieder von Hand suchen.

Schritt für Schritt

  1. Öffne Kataloge → Produkte und klicke den gewünschten Artikel an.
  2. Wechsle auf den Reiter Spezifikationen.
  3. Scrolle nach unten zur Karte Zusatzfelder.
  4. Klicke dort auf den Reiter Mindesthaltbarkeitsdatum. Die Karte führt mehrere Reiter nebeneinander; mit den kleinen Pfeilen links und rechts blätterst du zu weiteren.

Zusatzfelder am Artikel mit dem Reiter Mindesthaltbarkeitsdatum Abb. 3: Die drei Eingaben im Reiter Mindesthaltbarkeitsdatum, hier befüllt mit dem 15.12.2026 und sieben Tagen Vorlauf.

  1. Nimm die drei Eingaben vor:

    • Aktiv — dieser Schalter entscheidet, ob das Plugin diesen Artikel überhaupt behandelt. Steht er aus, passiert nichts: keine Anzeige im Shop, keine automatische Abschaltung. Schalte ihn für jeden Artikel ein, dessen Haltbarkeit du führen willst. Er hat nichts mit der Sichtbarkeit deines Artikels zu tun — die steuerst du weiterhin über den gewohnten Schalter oben auf der Artikelseite.
    • Mindesthaltbarkeitsdatum — hier wählst du über das Kalendersymbol das Datum aus, das auf der Ware steht. Unter dem Feld steht der Hinweis UTC: Shopware speichert Zeitpunkte in der Weltzeit. Für die tagesgenaue Haltbarkeit spielt das keine Rolle, denn gerechnet wird mit dem Tag, nicht mit der Uhrzeit. Lass die Uhrzeit einfach auf 00:00 stehen.
    • Tage vor Ablauf deaktivieren — der Vorlauf in Tagen. Trägst du hier 7 ein, geht der Artikel sieben Tage vor dem Datum offline. Lässt du das Feld leer, wird er genau an dem Tag abgeschaltet, an dem das Datum erreicht ist.
  2. Speichere den Artikel oben rechts mit Speichern.

Fertig. Im Beispiel aus Abbildung 3 bleibt der Artikel bis zum 7. Dezember 2026 im Verkauf und wird ab dem 8. Dezember 2026 automatisch abgeschaltet — sieben Tage vor dem Mindesthaltbarkeitsdatum am 15. Dezember 2026.

Tipp: Setze den Vorlauf mindestens so hoch wie deine übliche Lieferzeit. Dann liegt kein Paket mehr unterwegs, während die Ware im Regal schon abgelaufen wäre. Weil der Wert am einzelnen Artikel hängt, kannst du für Frischware vierzehn Tage und für Konserven null Tage vergeben.

Wichtig: Der Reiter Mindesthaltbarkeitsdatum erscheint nur, solange das Plugin eingeschaltet ist. Findest du ihn nicht, sieh in Fehlerbehebung nach.

Varianten und Chargen

Was dir das bringt: Du führst dasselbe Produkt aus mehreren Lieferungen mit unterschiedlicher Haltbarkeit. Jede Lieferung wird zu einer Variante mit eigenem Datum. Die ältere Charge geht von selbst offline, die frische bleibt im Verkauf.

So erbt eine Variante das Datum

Legst du das Mindesthaltbarkeitsdatum am Hauptartikel fest, übernehmen alle Varianten diesen Wert automatisch. Das ist der Normalfall und für die meisten Sortimente genau richtig: Ein Datum pflegen, alle Größen und Farben sind versorgt.

So gibst du einer Variante ihr eigenes Datum

  1. Öffne den Hauptartikel und wechsle auf den Reiter Varianten.
  2. Klicke die Variante an, die ein eigenes Datum bekommen soll.
  3. Wechsle auf den Reiter Spezifikationen und öffne in der Karte Zusatzfelder den Reiter Mindesthaltbarkeitsdatum.
  4. Klicke links neben dem Feld auf das Kettensymbol (Vererbung entfernen). Erst danach kannst du einen eigenen Wert eintragen — vorher zeigt das Feld nur den geerbten Wert des Hauptartikels an.
  5. Trage das Datum dieser Charge ein und speichere.

Variante mit eigenem Mindesthaltbarkeitsdatum Abb. 4: Diese Variante trägt mit dem 28.11.2026 ein eigenes Datum. Die Symbole vor den Feldbezeichnungen zeigen, dass die Vererbung hier aufgehoben ist.

Möchtest du später wieder den Wert des Hauptartikels verwenden, klickst du dasselbe Symbol erneut an (Vererbung wiederherstellen).

Tipp für die Chargenführung: Lege je Lieferung eine Variante an — zum Beispiel über eine Eigenschaft „Charge” mit den Werten „KW 38”, „KW 42” und so weiter. Jede Variante bekommt ihr eigenes Datum, und im Shop bleibt nur kaufbar, was noch haltbar ist.

Wichtig: Läuft der Hauptartikel selbst ab, geht er mit allen Varianten offline, die kein eigenes Datum tragen. Varianten mit eigenem, noch gültigem Datum bleiben davon unberührt, solange sie auch eine eigene Sichtbarkeit gesetzt haben. Prüfe bei Chargen deshalb immer, ob das Datum am Hauptartikel wirklich gewollt ist.

Anzeige im Shop

Was dir das bringt: Dein Kunde erfährt vor dem Kauf, wie lange die Ware haltbar ist — und zwar an den beiden Stellen, an denen er kurz vor der Kaufentscheidung steht.

Das Datum erscheint, sobald diese drei Bedingungen erfüllt sind:

  • Der Schalter Aktiv ist am Artikel eingeschaltet.
  • Ein Mindesthaltbarkeitsdatum ist eingetragen.
  • Das Plugin ist für diesen Verkaufskanal aktiviert (siehe Konfiguration).

Auf der Artikeldetailseite

Auf der Artikeldetailseite steht das Datum direkt unter dem Kaufbereich, gleich hinter der Produktnummer — ausgeschrieben mit Wochentag, damit es sich niemand zusammenreimen muss.

Artikeldetailseite mit Mindesthaltbarkeitsdatum Abb. 5: Anzeige auf der Artikeldetailseite: „Mindesthaltbarkeitsdatum: Dienstag, 15. Dezember 2026”.

Im Warenkorb

Im Warenkorb steht das Datum an jeder einzelnen Position unter der Produktnummer, hier in Kurzform. Dein Kunde sieht also auch dann noch, was er da liegen hat, wenn er mehrere Artikel gesammelt hat.

Warenkorb mit Mindesthaltbarkeitsdatum an der Position Abb. 6: Anzeige im Warenkorb: „Mindesthaltbarkeitsdatum: 15.12.26” unter der Produktnummer.

Gut zu wissen: Das Datum erscheint ausschließlich auf der Artikeldetailseite und im Warenkorb. In Kategorielisten, Suchergebnissen und in der Bestellbestätigung taucht es nicht auf.

Tipp: Prüfe die Anzeige nach der Einrichtung einmal in deinem eigenen Shop an einem Testartikel. Zwei Minuten, und du weißt, dass alles sitzt — auch mit deinem Theme.

Abgelaufene Artikel automatisch abschalten

Was dir das bringt: Du musst nie wieder eine Liste ziehen, Artikel suchen und Haken herausnehmen. Der Shop räumt sich selbst auf, und zwar stündlich statt einmal pro Woche.

Wie die Prüfung arbeitet

Nach der Aktivierung läuft die Prüfung von selbst — du musst sie weder einrichten noch starten. Etwa einmal pro Stunde geht das Plugin durch alle Artikel, an denen der Schalter Aktiv gesetzt und ein Datum eingetragen ist, und rechnet für jeden:

Mindesthaltbarkeitsdatum minus Tage vor Ablauf deaktivieren — ist dieser Tag erreicht oder bereits vorbei, wird der Artikel abgeschaltet.

Abgeschaltet heißt: Die Sichtbarkeit des Artikels wird ausgeschaltet, genau so, als hättest du den Schalter oben auf der Artikelseite selbst umgelegt. Der Artikel verschwindet damit aus dem Shop, aus der Suche und aus allen Kategorien. Er bleibt in deiner Administration vollständig erhalten, mit allen Daten, Bildern und Preisen.

Zwischen dem Erreichen des Stichtags und der Abschaltung liegt damit höchstens eine Stunde.

Was die Prüfung nicht tut

  • Sie schaltet nichts wieder ein. Ein abgeschalteter Artikel bleibt abgeschaltet, bis du ihn von Hand wieder aktivierst. Das ist Absicht — automatisch zurückgeholte Ware wäre genau der Fall, den du vermeiden willst.
  • Sie verschickt keine Benachrichtigung. Es gibt keine Warn-E-Mail vor dem Ablauf. Der Vorlauf in Tagen ist der praktische Ersatz: Der Artikel geht früher offline, und dir fällt es beim nächsten Blick in die Artikelliste auf.
  • Sie löscht nichts. Kein Artikel, kein Bild und kein Preis geht verloren.

Voraussetzung: der Hintergrunddienst läuft

Die Prüfung ist eine Hintergrundaufgabe. Damit Hintergrundaufgaben in deinem Shop überhaupt ausgeführt werden, muss der sogenannte Worker laufen. In den allermeisten Shopware-Installationen ist das ab Werk der Fall — solange deine Administration geöffnet ist oder dein Hoster den Dienst eingerichtet hat.

Bleiben abgelaufene Artikel dauerhaft online, obwohl alles richtig eingetragen ist, liegt es fast immer hieran. Wende dich dann an deinen Administrator oder deinen Hoster und lass prüfen, ob der Worker läuft.

Sofort prüfen lassen

Du möchtest nicht bis zum nächsten stündlichen Lauf warten, etwa beim Einrichten oder nach einem großen Import? Dann kann deine technische Betreuung die Prüfung direkt auf dem Server anstoßen:

bin/console mhd:cron

Der Befehl macht genau dasselbe wie der stündliche Lauf, nur sofort. Er ist gefahrlos wiederholbar und kann so oft ausgeführt werden, wie du willst.

Deinstallation

Du hast zwei Stufen zur Auswahl: vorübergehend ausschalten oder ganz entfernen.

Vorübergehend ausschalten

Öffne Erweiterungen → Meine Erweiterungen und stelle den Schalter links neben dem Eintrag aus.

Damit verschwinden der Reiter Mindesthaltbarkeitsdatum am Artikel und die Anzeige im Shop, und es wird nichts mehr automatisch abgeschaltet. Deine gepflegten Datumsangaben bleiben vollständig erhalten und sind sofort wieder da, sobald du den Schalter zurückstellst. Das ist der richtige Weg, wenn du das Plugin nur kurz pausieren willst.

Vollständig entfernen

  1. Öffne Erweiterungen → Meine Erweiterungen.

  2. Klicke beim Eintrag rechts auf die drei Punkte (…) und wähle Deinstallieren.

  3. Im folgenden Fenster entscheidest du über den Haken Alle App-Daten endgültig entfernen:

    • Haken nicht gesetzt — deine Eingabefelder und alle gepflegten Datumsangaben bleiben in der Datenbank liegen. Installierst du das Plugin später wieder, ist alles unverändert vorhanden. Das ist die empfohlene Einstellung.
    • Haken gesetzt — das Plugin räumt seine Eingabefelder und Einstellungen restlos ab. Alle eingetragenen Mindesthaltbarkeitsdaten sind damit endgültig weg. Dieser Vorgang lässt sich nicht rückgängig machen.
  4. Bestätige mit Deinstallieren.

Wichtig: Artikel, die das Plugin bereits abgeschaltet hat, bleiben auch nach der Deinstallation abgeschaltet. Die Deinstallation aktiviert keinen Artikel automatisch wieder. Prüfe deine Artikelliste also, bevor du das Plugin entfernst.

Fehlerbehebung

Der Reiter „Mindesthaltbarkeitsdatum” fehlt am Artikel

Woran es liegt: Das Plugin ist nicht aktiv, du bist auf dem falschen Reiter der Artikelseite, oder der Zwischenspeicher deines Shops ist noch veraltet.

So behebst du es:

  1. Prüfe unter Erweiterungen → Meine Erweiterungen, ob der Schalter neben dem Eintrag eingeschaltet ist.
  2. Achte darauf, dass du am Artikel auf dem Reiter Spezifikationen bist und ganz nach unten zur Karte Zusatzfelder gescrollt hast.
  3. Blättere innerhalb der Karte mit den kleinen Pfeilen nach rechts — bei vielen Zusatzfeldern liegt der Reiter außerhalb des sichtbaren Bereichs.
  4. Leere den Zwischenspeicher: Einstellungen → System → Caches & Indizes → Cache löschen und lade die Seite neu.

Das Datum erscheint nicht im Shop

Woran es liegt: Meist fehlt eine der drei Voraussetzungen aus Anzeige im Shop.

So behebst du es:

  1. Prüfe am Artikel, ob der Schalter Aktiv eingeschaltet und ein Datum eingetragen ist. Beides muss zutreffen.
  2. Prüfe in der Konfiguration, ob Plugin für diesen Verkaufskanal aktivieren für genau den Verkaufskanal eingeschaltet ist, den du gerade im Browser ansiehst.
  3. Leere den Zwischenspeicher: Einstellungen → System → Caches & Indizes → Cache löschen.
  4. Erscheint das Datum immer noch nicht, hat dein Theme den Kaufbereich oder die Warenkorbposition möglicherweise stark umgebaut. Teste dann einmal mit dem Shopware-Standard-Theme und melde dich bei uns — siehe Kapitel 11.

Abgelaufene Artikel bleiben online

Woran es liegt: Entweder fehlt eine Angabe am Artikel, oder Hintergrundaufgaben laufen in deinem Shop nicht.

So behebst du es:

  1. Prüfe am Artikel, ob Aktiv gesetzt und ein Datum eingetragen ist. Ohne beides rührt das Plugin den Artikel nicht an.
  2. Rechne nach: Datum minus Vorlauf. Erst wenn dieser Tag erreicht ist, wird abgeschaltet.
  3. Prüfe in der Konfiguration, ob das Plugin in mindestens einem Verkaufskanal eingeschaltet ist. Ist es überall aus, findet keine Prüfung statt.
  4. Warte bis zu einer Stunde — so lange kann der nächste Lauf entfernt sein.
  5. Bleibt es dabei, lass deinen Administrator oder Hoster prüfen, ob der Hintergrunddienst läuft, und die Prüfung einmal von Hand anstoßen (siehe Abgelaufene Artikel automatisch abschalten).

Ein Artikel ist zu früh offline gegangen

Woran es liegt: Der Vorlauf unter Tage vor Ablauf deaktivieren ist höher, als du gedacht hast.

So behebst du es: Öffne den Artikel, korrigiere den Vorlauf und stelle die Sichtbarkeit des Artikels oben auf der Artikelseite wieder an. Das Plugin holt einen abgeschalteten Artikel nicht von allein zurück.

Das Datum wird um einen Tag verschoben angezeigt

Woran es liegt: Shopware speichert Zeitpunkte in der Weltzeit (der Hinweis UTC unter dem Feld). Hast du im Datumsfeld versehentlich eine späte Uhrzeit gewählt, kann die Anzeige in deiner Zeitzone auf den Folgetag rutschen.

So behebst du es: Öffne das Datumsfeld und stelle die Uhrzeit auf 00:00.

Ein abgeschalteter Artikel soll wieder verkauft werden

Woran es liegt: Das ist kein Fehler, sondern Absicht — das Plugin aktiviert nie von selbst.

So gehst du vor: Trage am Artikel das neue Mindesthaltbarkeitsdatum der frischen Ware ein und stelle die Sichtbarkeit des Artikels oben auf der Artikelseite wieder an. Beim nächsten Lauf bleibt er dann in Ruhe, solange das neue Datum noch nicht erreicht ist.

FAQ

F: Funktioniert das mit meinem Theme?

A: In aller Regel ja. Das Plugin ergänzt die Standardbereiche von Kaufbereich und Warenkorbposition und gibt den ursprünglichen Inhalt unverändert weiter. Hat dein Theme genau diese Bereiche stark umgebaut, kann die Anzeige an anderer Stelle landen. Das siehst du in zwei Minuten an einem Testartikel.

F: Was passiert mit Artikeln, deren Datum längst abgelaufen ist?

A: Sie werden beim nächsten Lauf abgeschaltet, also spätestens innerhalb einer Stunde. Du musst nichts nachholen und nichts anstoßen.

F: Schaltet das Plugin Artikel auch wieder ein?

A: Nein. Ein abgeschalteter Artikel bleibt abgeschaltet, bis du ihn von Hand wieder aktivierst. Automatisch zurückgeholte Ware wäre genau der Fall, den du eigentlich verhindern willst.

F: Bekomme ich eine E-Mail, bevor ein Artikel abläuft?

A: Nein, das Plugin verschickt keine Benachrichtigungen. Wenn du eine Vorwarnung brauchst, nutze den Vorlauf in Tagen: Der Artikel geht früher offline, und dir fällt beim nächsten Blick in die Artikelliste auf, was fehlt.

F: Ist das eine Chargenverwaltung?

A: Nein. Du kannst je Variante ein eigenes Datum pflegen, also je Charge — Bestände und Zugänge je Charge führt das Plugin aber nicht. Dafür brauchst du ein Warenwirtschaftssystem.

F: Sieht mein Kunde das Datum auch in der Kategorieliste?

A: Nein, nur auf der Artikeldetailseite und im Warenkorb. In Listen, Suchergebnissen und Bestellbestätigungen erscheint es nicht.

F: Kann ich das Datum in einem Verkaufskanal zeigen und im anderen nicht?

A: Ja, genau dafür ist der Schalter in der Konfiguration da. Für das automatische Abschalten gilt das allerdings nur eingeschränkt: Ob ein Artikel verkäuflich ist, ist in Shopware eine shopweite Eigenschaft. Ist das Plugin in mindestens einem Kanal eingeschaltet, wirkt die Abschaltung überall.

F: Muss ich für jeden Artikel ein Datum pflegen?

A: Nein. Artikel ohne eingeschalteten Schalter Aktiv bleiben unverändert. Du pflegst nur das, was wirklich eine Haltbarkeit hat.

F: Kann ich viele Artikel auf einmal pflegen?

A: Über die Artikelliste lassen sich mehrere Artikel gemeinsam bearbeiten, und die Felder dieses Plugins stehen dabei genauso zur Verfügung wie alle anderen Zusatzfelder von Shopware. Für sehr große Sortimente ist der Weg über deine Warenwirtschaft oder einen Import meist bequemer.

F: Bremst das Plugin meinen Shop aus?

A: Nein. Die Anzeige liest nur Angaben, die Shopware für den Artikel ohnehin geladen hat — es entsteht keine zusätzliche Datenbankabfrage auf der Detailseite, im Warenkorb oder im Bestellabschluss. Die stündliche Prüfung arbeitet im Hintergrund in Portionen zu hundert Artikeln.

F: Werden Daten an fremde Server übertragen?

A: Nein. Das Plugin hat keine Schnittstelle nach außen. Datum, Schalter und Vorlauf bleiben in deiner Shopware-Datenbank, personenbezogene Daten verarbeitet es nicht.

F: Was passiert bei der Deinstallation mit meinen gepflegten Daten?

A: Das entscheidest du im Deinstallations-Fenster über den Haken Alle App-Daten endgültig entfernen. Ohne Haken bleibt alles erhalten, mit Haken wird es endgültig entfernt. Siehe Deinstallation.

Für Administratoren / Technische Details

Dieser Abschnitt richtet sich an technische Administratoren. Für die normale Nutzung des Plugins brauchst du ihn nicht.

Systemanforderungen

  • Shopware: 6.7 (Storefront erforderlich)
  • PHP: 8.2 oder neuer
  • Datenbank: MySQL 8.0 / MariaDB 10.11 oder neuer
  • Hintergrundverarbeitung: laufender Message-Worker oder aktiver Admin-Worker

Installation über die Kommandozeile

composer require swp/mhd-six
bin/console plugin:refresh
bin/console plugin:install SwpMhdSix --activate
bin/console cache:clear

Prüflauf von Hand anstoßen

bin/console mhd:cron

Der Befehl führt denselben Ablauf aus wie die geplante Aufgabe und ist beliebig oft wiederholbar.

Geplante Aufgabe

Das Plugin registriert die geplante Aufgabe swp_mhd_six.task mit einem Standardintervall von 3600 Sekunden. Sie wird über die Message Queue ausgeführt und braucht daher einen laufenden Worker (bin/console messenger:consume async) oder den Admin-Worker. Ohne laufenden Worker wird kein Artikel abgeschaltet. Shopware 6.7 zeigt geplante Aufgaben nicht mehr in einer eigenen Administrationsseite an — der Nachweis, dass der Lauf stattfindet, ist das Ergebnis im Sortiment beziehungsweise der Konsolenaufruf oben.

Datenmodell

Das Plugin legt keine eigene Datenbanktabelle an und verändert keine Tabelle von Shopware. Es nutzt ein Zusatzfeld-Set (swp_mhd_six) auf der Entität product mit drei Feldern: swp_mhd_six_status (Schalter), swp_mhd_six_best_before_date (Datum, UTC) und swp_mhd_six_deactivate_days_before (ganze Zahl). Die Felder sind übersetzbar und vererbbar, weshalb Varianten die Werte des Stammartikels übernehmen, solange sie keinen eigenen Wert tragen.

Die Kanaleinstellung liegt im Systemkonfigurationsbereich SwpMhdSix.config. und wird immer mit der jeweiligen Verkaufskanal-ID gelesen.

Ablauf des Prüflaufs

Der Lauf startet nur, wenn die Kanaleinstellung in mindestens einem Verkaufskanal aktiv ist. Die Artikel werden über die Data Abstraction Layer in Portionen zu 100 gelesen, mit aktivierter Vererbung, damit Varianten die geerbten Werte sehen. Abgelaufen ist ein Artikel, wenn Datum minus Vorlauf kleiner oder gleich dem heutigen Tag ist. Alle Treffer werden in einem Schreibvorgang über die Data Abstraction Layer auf active = false gesetzt — dadurch laufen Indexer, Suche und Cache-Invalidierung korrekt mit. Varianten, deren Sichtbarkeit vom Stammartikel geerbt wird, werden übersprungen, wenn der Stammartikel ohnehin abgeschaltet wird. Ein unlesbares Datum erzeugt eine Warnung im Log des Plugins und bricht den Lauf nicht ab.

Storefront-Anpassungen

Erweitert werden die Standardvorlagen des Kaufbereichs (buy-widget) und der Warenkorbposition (line-item/type/product), jeweils über sw_extends mit Aufruf des ursprünglichen Blockinhalts. Fremde Erweiterungen an denselben Stellen bleiben dadurch erhalten. Die Ausgabe hängt an den CSS-Klassen swp-mhd-detail-container, swp-mhd-detail-label, swp-mhd-detail-value und swp-mhd-line-item und lässt sich darüber im eigenen Theme gestalten.

Datenschutz

Das Plugin ruft keine externen Dienste auf und überträgt keine Daten an Dritte. Es verarbeitet keine personenbezogenen Daten; gespeichert werden ausschließlich Schalter, Datum und Vorlauf am Artikel.

Verhalten bei Deinstallation

Ohne den Haken Alle App-Daten endgültig entfernen bleiben Zusatzfeld-Set, Felder und Werte bestehen. Mit Haken werden Zusatzfeld-Set, Felder und die Systemkonfiguration des Plugins gelöscht. Bereits deaktivierte Artikel bleiben in beiden Fällen deaktiviert.


Diese Anleitung wurde für Mindesthaltbarkeitsdatum (MHD) für Artikel, Version 6.7.1, erstellt.

Wer betreut deinen Shop, wenn es ernst wird?

Wir pflegen Shopware-Shops seit über 20 Jahren, inklusive Updates, Hotfixes und der Plugins, die du hier gerade einrichtest.