PS PrestaShop Anfänger

MHD- & Chargenverwaltung — Dokumentation

Chargenverwaltung mit Ablaufdaten installieren und nutzen: FEFO, automatische Rabatte, abgelaufene Chargen, Cron und Warnungen.

Aktualisiert Modulversion 1.0.0

Installation

Das Modul wird wie jedes andere PrestaShop-Modul installiert, ohne Abhängigkeiten und ohne Composer.

  1. Öffnen Sie im Backoffice Module → Modulverwaltung.
  2. Klicken Sie auf Modul hochladen und legen Sie die Datei dfdlc-1.0.0.zip ab.
  3. Klicken Sie nach abgeschlossener Installation auf Konfigurieren.

Bei der Installation legt das Modul zwei Tabellen an (Chargen und Bestandsbewegungen), ergänzt den Reiter Katalog → Lots DLC/DLUO und registriert vier Hooks: displayHeader, displayProductAdditionalInfo, actionValidateOrder und actionProductDelete.

Erscheint der Reiter Lots DLC/DLUO nicht sofort im Katalog-Menü, leeren Sie den PrestaShop-Cache unter Erweiterte Einstellungen → Leistung und melden Sie sich neu im Backoffice an.

Verbrauchsdatum und MHD verstehen

Das Modul unterscheidet zwei Datumsarten, und diese Unterscheidung ist keine Formalie: Sie bestimmt, was sich das Modul automatisch erlaubt.

Verbrauchsdatum (DLC)

Formulierung „zu verbrauchen bis“. Es gilt für mikrobiologisch leicht verderbliche Lebensmittel. Nach diesem Datum gilt das Produkt als nicht sicher und darf nicht mehr verkauft werden. Deshalb wendet das Modul auf solche Chargen die automatischen Bestandsaktionen an und, sofern gewünscht, die Produktdeaktivierung.

Mindesthaltbarkeitsdatum (DLUO / DDM)

Formulierung „mindestens haltbar bis“. Es signalisiert einen Qualitätsverlust, kein Sicherheitsrisiko. Das Produkt bleibt danach rechtlich verkehrsfähig, sofern die Kundschaft klar informiert wird. Das Modul beschränkt sich daher darauf, die abgelaufene Charge zu deaktivieren: Bei einem MHD entfernt es niemals Bestand und deaktiviert nie das Produkt.

Wählen Sie die Datumsart beim Anlegen jeder Charge sorgfältig. Dieses Feld allein entscheidet, ob beim Ablauf automatische Bestandsaktionen ausgelöst werden.

Das Modul konfigurieren

Die Konfigurationsseite fasst alle Einstellungen zusammen, dazu die URL der Cron-Aufgabe und einen schnellen Überblick über Ihre Chargen.

Anzeige im Frontend

  • Datum auf der Produktseite anzeigen: zeigt das Datum der nächstliegenden verfügbaren Charge mit dem zur Datumsart passenden Hinweistext.
  • Schwelle für den Hinweis auf kurzes Datum (Tage): Unterhalb dieser Restlaufzeit erscheint neben dem Datum ein Hinweis „Kurzes Datum“. Standardwert: 10 Tage.

Automatische Rabatte

  • Automatische Rabatte aktivieren: schaltet den gesamten Mechanismus ein oder aus.
  • Rabatt anwenden ab (Tage): Zeitfenster vor dem Ablaufdatum, in dem eine Charge infrage kommt. Standardwert: 15 Tage.
  • Rabattsatz: angewendeter Satz zwischen 1 und 90 %. Standardwert: 30 %.

Behandlung abgelaufener Chargen

Drei Modi stehen zur Verfügung, vom vorsichtigsten bis zum automatischsten:

  1. Nur die Charge deaktivieren — keine Bestandsaktion. Empfehlenswert, wenn Sie lieber im Einzelfall entscheiden.
  2. Charge deaktivieren und Restmenge vom Bestand abziehen — bringt den PrestaShop-Bestand sofort mit der Realität im Lager in Übereinstimmung. Das ist der empfohlene Modus.
  3. Bestand abziehen und Produkt deaktivieren, wenn keine gültige Charge mehr vorhanden ist — verhindert den Verkauf eines Artikels mit vollständig abgelaufenem Bestand.

Warnungen

  • Warnschwelle (Tage vor Ablauf): Beobachtungsfenster für die Zusammenfassungs-E-Mail. Standardwert: 30 Tage.
  • Empfängeradresse: leer lassen, um die Shop-Adresse zu verwenden.

Chargen anlegen und verwalten

Öffnen Sie Katalog → Lots DLC/DLUO. Die Liste zeigt Ihre Chargen aufsteigend nach Ablaufdatum, mit Farbcode und verbleibenden Tagen. Zwei Kennzahlen am Seitenkopf zeigen, wie viele abgelaufene Chargen noch aktiv sind und wie viele Chargen bald ablaufen.

Eine Charge hinzufügen

  1. Klicken Sie auf Charge hinzufügen.
  2. Geben Sie mindestens zwei Zeichen im Feld Produkt ein: Die Suche schlägt passende Produkte vor. Wählen Sie eines aus.
  3. Hat das Produkt Varianten, erscheint ein zweites Feld. Belassen Sie „Alle Varianten“, um die Charge dem gesamten Produkt zuzuordnen, oder wählen Sie eine konkrete Variante.
  4. Erfassen Sie Chargennummer, Datumsart, Ablaufdatum und erhaltene Menge.
  5. Lieferantenreferenz und Notiz sind optional, im Rückruffall aber sehr nützlich.

Sie können beide Ebenen bei einem Produkt mischen: einige Chargen auf einer konkreten Variante und eine allgemeine Charge auf Produktebene. Die Entnahme verbraucht zuerst die Chargen der bestellten Variante, danach die des Produkts.

Charge bearbeiten oder löschen

Beim Bearbeiten lässt sich die Menge anpassen (etwa nach einer Inventur) oder ein Datum korrigieren. Beim Löschen einer Charge wird auch die zugehörige Preisregel entfernt, falls ein automatischer Rabatt lief, ebenso ihre Bewegungshistorie.

Export

Die Exportschaltfläche der Liste erzeugt eine CSV-Datei Ihrer Chargen, inklusive angewendeter Filter und Sortierung. Praktisch für eine Qualitätskontrolle oder eine Inventur.

Die FEFO-Entnahme

FEFO steht für First Expired, First Out: Die Charge mit dem nächstliegenden Datum geht zuerst raus. Es ist keine Einstellung nötig, der Mechanismus greift automatisch.

Bei der Bestellbestätigung geht das Modul für jede Produktzeile so vor:

  1. Es sammelt die aktiven Chargen des Produkts mit noch verfügbarer Menge.
  2. Es stellt jene der exakt bestellten Variante voran, danach die dem Produkt zugeordneten.
  3. Es sortiert diese Teilmenge aufsteigend nach Ablaufdatum.
  4. Es zieht die bestellte Menge Charge für Charge entlang dieser Liste ab.

Beispiel: Eine Bestellung über 10 Einheiten trifft auf eine Charge mit 4 Stück (Ablauf 12. August) und eine mit 8 Stück (Ablauf 3. Oktober). Verbraucht werden die 4 Einheiten der ersten Charge, danach 6 Einheiten der zweiten. Beide Bewegungen werden getrennt protokolliert, mit derselben auslösenden Bestellung.

Die FEFO-Entnahme ist unabhängig vom PrestaShop-Bestand, der normal weiterarbeitet. Das Modul führt die Aufteilung dieses Bestands in datierte Chargen; der PrestaShop-Bestand bleibt die Grundlage für die Verkaufsverfügbarkeit.

Automatische Rabatte bei kurzem Datum

Erreicht eine Charge das konfigurierte Zeitfenster, legt der Cron eine Katalogpreisregel (eine standardmäßige PrestaShop Specific Price) auf dem Produkt an:

  • prozentualer Rabatt zum von Ihnen festgelegten Satz;
  • Startdatum: der Tag der Anlage;
  • Enddatum: das Ablaufdatum der Charge, um 23:59 Uhr.

Der Rabatt endet damit von selbst und hinterlässt keine verwaiste Regel im Katalog. Das Modul legt pro Produkt immer nur einen Rabatt an, selbst wenn mehrere Chargen gleichzeitig ins Zeitfenster geraten.

Auf Kundenseite wird der Rabatt normal auf der Produktseite ausgewiesen, und der Hinweis „Kurzes Datum“ zeigt den aktuellen Prozentsatz.

Die angelegte Regel ist eine standardmäßige Katalogpreisregel und unterliegt denselben Prioritätsmechanismen wie Ihre übrigen Regeln. Wenn Sie bereits breite Katalograbatte einsetzen, prüfen Sie die Prioritäten, bevor Sie die automatischen Rabatte aktivieren.

Die Cron-Aufgabe einrichten

Die FEFO-Entnahme funktioniert ohne Cron, da sie durch Bestellungen ausgelöst wird. Drei Vorgänge benötigen dagegen einen täglichen Aufruf: die automatischen Rabatte, die Behandlung abgelaufener Chargen und die E-Mail-Warnung.

Die per Token gesicherte URL wird auf der Konfigurationsseite des Moduls angezeigt. Sie hat folgende Form:

https://ihr-shop.de/index.php?fc=module&module=dfdlc&controller=cron&token=IHR_TOKEN

Planen Sie einen Aufruf pro Tag, vorzugsweise früh am Morgen. Zwei gängige Wege:

  • Cron Ihres Hosters: Legen Sie eine tägliche Aufgabe an, die die URL mit wget oder curl aufruft.
  • Externer Dienst: Jeder Online-Cron-Dienst akzeptiert diese URL.

Die Antwort ist ein JSON-Bericht zum Lauf:

{
  "success": true,
  "promos_applied": 3,
  "expired": {
    "lots_deactivated": 2,
    "stock_deducted": 7,
    "products_disabled": 0
  },
  "alerts_sent": 5
}

Dieses Format lässt sich direkt in ein Monitoring einbinden, sodass die Automatisierung nie blind läuft.

Das Token wird bei der Installation zufällig erzeugt. Falls Sie vermuten, dass es abgeflossen ist, installieren Sie das Modul neu, um ein neues zu erzeugen, und aktualisieren Sie Ihre geplante Aufgabe.

Die E-Mail-Warnungen

Bei jedem Cron-Lauf sucht das Modul nach Chargen, deren Datum in das Warnfenster fällt und die noch nicht gemeldet wurden. Findet es welche, versendet es eine einzige Zusammenfassungs-E-Mail, die je Charge Nummer, Produkt, Datumsart, Frist und Restmenge auflistet.

Jede Charge wird dank eines Kennzeichens in der Datenbank nur einmal gemeldet. Sie erhalten also nicht täglich dieselbe Erinnerung.

Die E-Mail-Vorlagen liegen auf Französisch und Englisch im Ordner mails/ des Moduls. Sie können sie frei anpassen oder weitere Sprachen ergänzen, indem Sie einen vorhandenen Ordner duplizieren.

Anzeige auf der Produktseite

Das Modul nutzt den Hook displayProductAdditionalInfo, der in den Themes Classic und Hummingbird sowie in der großen Mehrheit der Drittanbieter-Themes vorhanden ist. Der Block zeigt:

  • den zur Datumsart passenden Hinweistext: „Zu verbrauchen bis“ beim Verbrauchsdatum, „Mindestens haltbar bis“ beim MHD;
  • das Datum der nächstliegenden verfügbaren Charge;
  • den Hinweis „Kurzes Datum“, sobald die Schwelle unterschritten ist, samt Rabattsatz bei aktivem Rabatt.

Hat das Produkt keine aktive Charge mit Bestand und gültigem Datum, wird nichts angezeigt: Auf der Seite erscheint kein leerer Kasten.

Anzeige anpassen

Die Ausgabe ist im Template views/templates/hook/product-expiry.tpl gekapselt, die Styles in views/css/front.css. Sie können das Template aus Ihrem Theme heraus überschreiben, um Position oder Gestaltung anzupassen, ohne das Modul zu verändern.

Rückverfolgbarkeit und Chargenrückruf

Jede Bestandsentnahme wird in der Bewegungstabelle mit der betroffenen Charge, der Menge und der auslösenden Bestellung erfasst. Ausgehend von einer Chargennummer können Sie also die Bestellungen ermitteln, die sie verbraucht haben.

Das ist die Grundlage eines Rückrufverfahrens. Das Modul liefert die Rohdaten; das Verfahren selbst (Kundeninformation, Retourenabwicklung, gegebenenfalls Meldung an Behörden) liegt bei Ihrem Qualitätsmanagement.

Häufige Fragen

Ersetzt das Modul den PrestaShop-Bestand?

Nein, es ergänzt ihn. Die PrestaShop-Mengen bleiben die Grundlage für den Verkauf. Das Modul führt parallel die Aufteilung dieses Bestands in datierte Chargen. Im Modus mit Bestandsabzug korrigiert es die PrestaShop-Menge, wenn eine abgelaufene Charge entfernt wird, damit beide Sichten konsistent bleiben.

Was passiert, wenn meine Chargen nicht den gesamten Bestand abdecken?

Nichts blockiert. Die FEFO-Entnahme verbraucht nur, was in den Chargen verfügbar ist; sind die Chargen erschöpft, läuft die Bestellung normal weiter und nur die PrestaShop-Menge wird abgezogen. Ergänzen Sie die Chargenerfassung einfach mit jedem Wareneingang.

Kann ich eine Charge mit einem bereits vergangenen Datum erfassen?

Ja, sie wird beim nächsten Cron-Lauf jedoch als abgelaufen behandelt. Für die Historie ist es besser, das echte Datum zu erfassen und das Modul seine Arbeit machen zu lassen.

Ist das Modul multishopfähig?

Ja. Jede Charge ist dem Shop zugeordnet, in dem sie angelegt wurde, und Bestandsabzüge werden auf diesen Shop angewendet.

Was passiert bei der Deinstallation?

Beide Tabellen werden entfernt, der Admin-Reiter gelöscht und die Hooks abgemeldet. Chargen und ihre Historie bleiben nicht erhalten: Sichern Sie Ihre Datenbank, wenn Sie eine Neuinstallation planen.

War diese Seite hilfreich?

Immer noch nicht weiter? Support kontaktieren