MHD- & Chargenverwaltung: Dokumentation
Chargen mit Verbrauchsdatum und MHD, Lieferantenkartons, Kosten, FEFO, Rabattstufen, CSV-Import und Bestandsabgleich.
Installation und Update
Das Modul wird wie jedes PrestaShop-Modul installiert, ohne Abhängigkeiten und ohne Composer.
- Öffnen Sie Module → Modulverwaltung.
- Klicken Sie auf Modul hochladen und legen Sie die ZIP-Datei ab.
- Klicken Sie anschließend auf Konfigurieren.
Das Modul legt drei Tabellen an (Chargen, Bewegungen, Lieferantengebinde) und zwei Reiter im Katalog-Menü: Chargen MHD und Lieferantengebinde.
Von einer früheren Version laden Sie einfach die neue ZIP-Datei hoch. Chargen und Historie bleiben erhalten. Haben Sie den Einzelrabatt der Version 1.0.0 genutzt, wird er zur ersten Rabattstufe.
Erscheinen die Reiter nicht sofort, leeren Sie den Cache unter Erweiterte Einstellungen → Leistung und melden Sie sich neu an.
Verbrauchsdatum und MHD: was das Modul tut
Das Verbrauchsdatum (DLC, zu verbrauchen bis) gilt für leicht verderbliche Lebensmittel: Danach darf das Produkt nicht mehr verkauft werden. Das Mindesthaltbarkeitsdatum (DLUO / DDM) signalisiert einen Qualitätsverlust: Das Produkt bleibt verkehrsfähig, wenn die Kundschaft informiert wird.
- Eine abgelaufene Charge mit Verbrauchsdatum wird nie einer Bestellung zugeordnet, auch wenn der Cron an diesem Tag noch nicht gelaufen ist.
- Automatische Aktionen bei Ablauf (Bestandsabzug, Produktdeaktivierung) betreffen nur das Verbrauchsdatum.
- Eine abgelaufene MHD-Charge wird nur deaktiviert; solange sie aktiv ist, kann sie Bestellungen zugeordnet werden.
Wählen Sie die Datumsart beim Anlegen sorgfältig: Sie entscheidet, ob automatische Aktionen greifen.
Das Modul konfigurieren
Die Konfigurationsseite zeigt die Cron-URL, einen Schnellstatus der Chargen und vier Einstellungsblöcke.
Anzeige auf der Produktseite
- Datum auf der Produktseite anzeigen: Datum der nächstliegenden vorrätigen Charge für die vom Kunden gewählte Variante.
- Schwelle für den Hinweis auf kurzes Datum: Unterhalb dieser Anzahl Tage erscheint der Hinweis „Kurzes Datum“. Standard: 10 Tage.
Automatische Rabatte bei kurzem Datum
- Automatische Rabatte aktivieren: Beim Ausschalten werden alle vom Modul angelegten Rabatte entfernt.
- Rabattstufen: bis zu 10 Zeilen „wenn die Charge abläuft in X Tagen“ / „Rabatt Y %“. Siehe Abschnitt Rabattstufen.
Bestand und Kosten
- Wenn eine Charge mit Verbrauchsdatum abläuft: nur die Charge deaktivieren, sie deaktivieren und die Restmenge vom Bestand abziehen (empfohlen), oder Bestand abziehen und Produkt deaktivieren, wenn keine gültige Charge bleibt.
- Empfangene Menge standardmäßig zum PrestaShop-Bestand hinzufügen: Vorschlagswert beim Anlegen einer Charge. Lassen Sie ihn auf Nein, solange Sie Chargen für bereits in PrestaShop gezählten Bestand erfassen.
- Chargenkosten in jede Bestellposition übernehmen: siehe Einkaufspreis und Margen.
- Einheiten bei Stornierung zurück in ihre Chargen buchen: siehe Stornierung und Reaktivierung.
- Chargennummern auf Lieferscheinen drucken (standardmäßig an) und auf Rechnungen drucken (standardmäßig aus).
E-Mail-Warnungen
- Warnschwelle vor Ablauf: Zeitfenster der Zusammenfassungs-E-Mail. Standard: 30 Tage.
- Empfängeradresse: leer lassen, um die Shop-Adresse zu verwenden.
Lieferantengebinde
Wenn Sie kartonweise kaufen und einzeln verkaufen, legen Sie das Gebinde einmal unter Katalog → Lieferantengebinde an:
- Produkt und bei Bedarf Variante;
- Bezeichnung (zum Beispiel „Karton mit 12″);
- Lieferantenreferenz und EAN des Kartons;
- Einheiten pro Karton und üblicher Kartonpreis (netto);
- Referenz und EAN der verkauften Einheit. Leer gelassen, werden die Werte des Produkts oder der Variante übernommen.
Die resultierenden Stückkosten werden live angezeigt. Ein Produkt kann mehrere Gebinde haben.
Charge anlegen und empfangen
Klicken Sie unter Katalog → Chargen MHD auf Charge hinzufügen oder nutzen Sie die gleiche Schaltfläche im Chargen-Bereich der Produktseite.
Wareneingang in Einzelstücken
- Suchen Sie das Produkt (mindestens 2 Zeichen) und wählen Sie die Variante oder belassen Sie „Alle Varianten“.
- Belassen Sie Als Einzelstücke empfangen.
- Erfassen Sie Chargennummer, Datumsart, Ablaufdatum, empfangene Menge und Einkaufspreis pro Einheit (netto).
- Wählen Sie bei Diese Menge zum PrestaShop-Bestand hinzufügen: Ja für eine neue Lieferung, Nein für bereits gezählten Bestand.
Wareneingang in Kartons
- Wählen Sie nach dem Produkt In Lieferantenkartons empfangen.
- Wählen Sie das Gebinde, geben Sie die empfangenen Kartons und den Preis pro Karton (netto) ein, vorausgefüllt mit dem üblichen Preis.
- Menge und Stückkosten werden berechnet und gesperrt: 3 Kartons mit 12 zu 30 € ergeben 36 Einheiten zu 2,50 €.
Die Lieferantenreferenz der Charge wird mit der Kartonreferenz vorausgefüllt. Sie können sie durch die Lieferscheinnummer des Lieferanten ersetzen.
Bearbeiten, deaktivieren, löschen
- Das Produkt einer Charge lässt sich nach dem Anlegen nicht mehr ändern.
- Eine Mengenänderung wird als Korrekturbewegung erfasst, ohne den PrestaShop-Bestand zu ändern.
- Eine Chargennummer darf pro Produkt nur einmal vorkommen.
- Eine bereits verkaufte Charge kann nicht gelöscht werden: Deaktivieren Sie sie.
Chargen per CSV importieren
Schaltfläche Chargen importieren (CSV) in der Chargenliste. Auf dieser Seite steht eine Beispieldatei zum Download.
- Trennzeichen Semikolon, Komma oder Tabulator; erste Zeile = Spaltennamen; höchstens 5.000 Zeilen und 5 MB.
- Das Produkt wird über
reference,ean13oderid_productgefunden. Eine Variantenreferenz funktioniert auch inreference. combination_referenceodercombination_ean13ordnet die Charge einer Variante zu.- Pflicht:
lot_numberundexpiry_date(JJJJ-MM-TT oder TT/MM/JJJJ). date_type: dlc oder dluo (Standard dlc).quantityundunit_costfür einen Wareneingang in Einzelstücken.boxes,box_referenceundbox_costfür einen Wareneingang in Kartons: Menge und Stückkosten werden aus dem Gebinde berechnet.supplier_refundnotesind optional.
reference;lot_number;date_type;expiry_date;quantity;unit_cost
CROQ-2KG;L2026-118;dluo;2027-03-31;24;6.40
PATE-12;L2026-204;dlc;15/01/2027;;
Eine für das Produkt bereits vorhandene Chargennummer wird übersprungen. Der Bericht listet jede fehlerhafte Zeile mit Grund auf; die übrigen Zeilen werden importiert.
Dashboard und gefilterte Ansichten
Die Karten über der Liste sind anklickbar und filtern die Liste: abgelaufene, noch aktive Chargen, bald ablaufende Chargen, Chargen mit laufendem Rabatt, Einkaufswert mit Ablaufrisiko und Einkaufswert des Chargenbestands. Der Filter bleibt beim Blättern aktiv; Alle Chargen anzeigen hebt ihn auf.
Die FEFO-Entnahme
Bei Bestellbestätigung gilt für jedes Produkt:
- zuerst die Chargen der bestellten Variante, dann die des Produkts;
- die Chargen werden vom nächstliegenden zum entferntesten Datum verbraucht;
- abgelaufene Chargen mit Verbrauchsdatum sind ausgeschlossen.
Eine Bestellung über 10 Einheiten bei einer Charge mit 4 und einer mit 8 Stück nimmt die ersten 4, dann 6 aus der nächsten Charge. Jede Entnahme wird mit der Bestellung erfasst.
Einkaufspreis und Margen
Mit Chargenkosten in jede Bestellposition übernehmen berechnet das Modul die gewichteten Kosten der verbrauchten Chargen und speichert sie als Einkaufspreis der Bestellposition. Die Margenstatistiken von PrestaShop nutzen dann die echten Kosten. Chargen ohne Kosten fließen nicht in die Berechnung ein.
Rabattstufen
Beispiel: 10 % ab 90 Tagen, 20 % ab 60 Tagen, 30 % ab 30 Tagen.
- Es gilt der höchste Prozentsatz unter den erreichten Stufen: Der Rabatt sinkt nie, wenn das Datum näher rückt.
- Er betrifft nur die Charge, die als Nächstes verkauft wird, pro Produkt oder pro Variante.
- Es ist eine Standard-Katalogpreisregel von PrestaShop, die am Ablaufdatum endet.
- Ist die Charge ausverkauft, geht der Rabatt auf die nächste Charge über oder entfällt.
- Rabatte werden beim Speichern der Einstellungen oder einer Charge neu berechnet, danach täglich durch den Cron.
Diese Regeln folgen den üblichen Prioritäten von PrestaShop. Wenn Sie bereits breite Katalograbatte nutzen, prüfen Sie die Prioritäten, bevor Sie die Stufen aktivieren.
Kommissionierung: Bestellung und Lieferschein
In der Bestellung im Backoffice zeigt der Bereich Versendete Chargen (FEFO) für jedes Produkt Charge, Datum, Menge und Kosten. Dieselben Chargen werden auf den Lieferschein gedruckt, bei aktivierter Option auch auf die Rechnung.
Stornierung und Reaktivierung
Wechselt eine Bestellung auf Storniert, gehen ihre Einheiten in die ursprünglichen Chargen zurück. Kehrt sie später in einen gültigen Status zurück, werden ihre Einheiten erneut nach FEFO entnommen. Der Zyklus kann sich ohne Doppelzählung wiederholen.
Teilretouren mit Wiedereinlagerung werden keiner Charge automatisch zugeordnet. Sie erscheinen im Bestandsabgleich, wo Sie die passende Charge anlegen.
Bestandsabgleich
Die Schaltfläche Bestandsabgleich vergleicht die Einheiten in Chargen mit dem PrestaShop-Bestand:
- Eine positive Abweichung bedeutet Einheiten ohne Charge: Charge für die fehlenden Einheiten anlegen öffnet das vorausgefüllte Formular.
- Eine negative Abweichung bedeutet, dass die Chargen mehr enthalten als der Bestand: Korrigieren Sie Chargen oder Bestand.
Produkte mit Chargen auf Produktebene werden über ihren Gesamtbestand verglichen; Produkte, deren Chargen alle Varianten zugeordnet sind, Variante für Variante.
Chargen-Bereich auf der Produktseite
Die Produktseite im Backoffice listet die Chargen mit Status, Kosten und Rabatt auf und vergleicht die Summe mit dem PrestaShop-Bestand. Die Schaltfläche Charge hinzufügen wählt das Produkt vor. In PrestaShop 8.1 und 9 befindet sich der Bereich im Reiter Module der Produktseite.
Cron-Aufgabe
Entnahme, Rückverfolgbarkeit und Import funktionieren ohne Cron. Rabattstufen, abgelaufene Chargen und die E-Mail-Warnung benötigen einen täglichen Aufruf der URL aus der Konfiguration:
https://ihr-shop.de/index.php?fc=module&module=dfdlc&controller=cron&token=IHR_TOKEN
Die JSON-Antwort listet deaktivierte Chargen, abgezogene Einheiten, deaktivierte Produkte, angelegte, aktualisierte oder entfernte Rabatte und versendete Warnungen auf.
E-Mail-Warnungen
Bei jedem Cron-Lauf listet eine Zusammenfassungs-E-Mail die Chargen auf, deren Datum ins Warnfenster fällt: Nummer, Produkt, Art, Datum und Menge. Jede Charge wird nur einmal gemeldet. Die Vorlagen liegen in 8 Sprachen im Ordner mails/.
Anzeige auf der Produktseite
Über den Hook displayProductAdditionalInfo zeigt die Seite „Zu verbrauchen bis“ oder „Mindestens haltbar bis“ mit dem Datum der nächstliegenden Charge der gewählten Variante. Unterhalb der Schwelle erscheint „Kurzes Datum“ mit dem Rabatt. Ein Stufenrabatt außerhalb dieser Schwelle wird als „Angebot wegen Ablaufdatum“ gekennzeichnet. Das Template views/templates/hook/product-expiry.tpl lässt sich im Theme überschreiben.
Rückverfolgbarkeit und Rückruf
Das Formular einer Charge zeigt ihre Historie: Wareneingang, Bestellungen, Stornierungen, Korrekturen, Abzug bei Ablauf, mit Link zu jeder Bestellung. CSV exportieren lädt die Historie der Charge herunter; Bewegungen exportieren in der Liste die gesamte Historie. Diese Daten sind die Grundlage eines Rückrufverfahrens.
Häufige Fragen
Ersetzt das Modul den PrestaShop-Bestand?
Nein. Der PrestaShop-Bestand bleibt die Grundlage für den Verkauf; das Modul teilt ihn in datierte Chargen auf und meldet Abweichungen.
Was passiert, wenn meine Chargen nicht den gesamten Bestand abdecken?
Die Bestellung läuft normal: Das Modul entnimmt, was in den Chargen verfügbar ist. Der Bestandsabgleich zeigt Einheiten ohne Charge.
Ist das Modul multishopfähig?
Ja. Jede Charge gehört zu dem Shop, in dem sie angelegt wurde.
Was passiert bei der Deinstallation?
Die drei Tabellen werden mit Inhalt gelöscht. Sichern Sie Ihre Datenbank, wenn Sie neu installieren möchten.