# Testleitfaden Warenwirtschaft — Version 3 > **Stand:** 09.09.2026 > Dieser Leitfaden führt einmal durch die Funktionen der Warenwirtschaft — in der Reihenfolge eines typischen Arbeitsablaufs, sodass jede Stelle direkt im Browser nachgeschaut und getestet werden kann. > Die fachlichen Erklärungen dazu stehen wie gewohnt in der App unter den **[Hinweisen zur Warenwirtschaft](/admin/inventory/notices)**. > > - **Teil A** (Abschnitte 1–11) — die Basis-Funktionen der Warenwirtschaft (Runde 12.06.2026, Stand 16.07.2026). Unverändert gültig. > - **Teil B** (Abschnitte 12–18) — Runde V7.0 (Testphasen-Rückmeldung 26.–28.08.2026). > - **Teil C** (Abschnitte 19–25) — **neu: Nachbesserungen aus der Umsetzungsprüfung und Nachtrag AP-52 (08./09.09.2026)**. Wer nur die neuen Punkte prüfen will, springt direkt zu **Teil C**. --- # Teil A — Basis-Funktionen (Runde 12.06.2026) ## 1. Einstellungen: Lagerort-Bausteine & Ausschuss-Gründe **Wo:** Menü **[Einstellungen → Allgemein](/admin/inventory/general)** **Neu:** - Drei neue Karten **Räume**, **Regale**, **Fächer** — die zentralen Bausteine für Lagerorte nach dem Schema *Raum 1 | Regal 3 | A*. - Karte **Ausschuss-Gründe** (aus Runde 12.06.): Gründe für Ausgang/Ausschuss selbst anlegen, umbenennen, deaktivieren. **So testen:** 1. Je einen Raum (z. B. „Raum 1"), ein Regal („Regal 3") und ein Fach („A") anlegen. 2. Einen Eintrag umbenennen → die Änderung wirkt übergeordnet überall, wo der Baustein verwendet wird. 3. Einen Ausschuss-Grund anlegen (z. B. „Verkleckert") — der taucht später in Schritt 8 auf. --- ## 2. INCI-Ebene: Lieferanten mit Bestellweg, Alternativname, Lagerort **Wo:** Menü **[Produkte → Inhaltsstoffe](/admin/product/ingredients)**, einen INCI öffnen (z. B. ZinClear XP) **Neu:** - **Lieferanten-Zeilen mit „+ weiteren Lieferanten anlegen":** je Zeile Lieferant + **URL**. URL eingetragen ⇒ Bestellung im Online-Shop; URL leer ⇒ Bestellung per Mail. - Feld **Alternativer Name** (Handelsname, z. B. LECITHIN → *Phospholipon 80 H*). - Drei Dropdowns **Raum / Regal / Fach** (die Bausteine aus Schritt 1). - Checkbox **„Kein Rohstoffbestand"** (für Allergene u. Ä. — wirkt in Schritt 3). **So testen:** 1. Beim INCI zwei Lieferanten anlegen: einen **mit** URL (z. B. Dragonspice-Shoplink), einen **ohne**. 2. Alternativnamen und Lagerort (Raum 1 | Regal 3 | A) setzen, speichern. 3. **Filter „nur aktive"** oben in der INCI-Liste anhaken → es bleiben nur INCI übrig, die in der Herstellerrezeptur mindestens eines aktiven Produkts vorkommen. **Ergebnis prüfen:** In der Rohstoffbestand-Detailansicht (Schritt 3) erscheint je Lieferant der Button **„Zum Shop"** bzw. **„Per Mail"**; Alternativname und Lagerort werden im Kopf angezeigt. --- ## 3. Rohstoffbestand: Filter & Ausblendungen **Wo:** Menü **[Rohstoffbestand](/admin/inventory/raw-material-stock)** **Neu:** - Umschalter **„Alle" / „Nur aus Herstellerrezepturen"** oben in der Übersicht. - INCI mit Häkchen **„Kein Rohstoffbestand"** erscheinen gar nicht (auch nicht im roten Kritisch-Zähler). **So testen:** 1. Auf „Nur aus Herstellerrezepturen" klicken → Rohstoffe, die nur für Neuentwicklungen eingekauft wurden, verschwinden; auf „Alle" sind sie wieder da. 2. Bei einem Test-INCI „Kein Rohstoffbestand" anhaken → er verschwindet in beiden Modi. --- ## 4. Produktebene: Rezeptur-Phasen & Chargen-Präfix **Wo:** Menü **[Produkte → Übersicht](/admin/product/show)**, ein Produkt bearbeiten (z. B. Tattoocreme) **Neu:** - **Hersteller-Rezeptur in Phasen** (Phase A, B, …): je Phase eigene Rohstoffe, ein **Notizfeld** (z. B. „auf 70 °C erhitzen"), Umbenennen möglich; Rohstoffe lassen sich per Drag & Drop **innerhalb und zwischen Phasen** verschieben. Die 100-%-Summe gilt weiterhin **über alle Phasen zusammen**. - Feld **„Chargen-Nr.-Präfix"** in der Warenwirtschaft-Karte (z. B. `TP1` = Tattoopflege + Produkt-Nr. 1). - **Lieferbestand** (aus Runde 12.06.): Feld „Wieder lieferbar ab" als **Datum**; das Produkt bleibt kaufbar, im Shop erscheint die tagesaktuell berechnete Anzahl Tage. **So testen:** 1. In der Hersteller-Rezeptur „+ Neue Phase" klicken, Rohstoffe zuordnen, eine Notiz eintragen, einen Rohstoff in eine andere Phase ziehen → Summe unten muss weiter 100 % ergeben. 2. Präfix `TP1` eintragen und speichern → wirkt in Schritt 7 (Produktion). 3. „Wieder lieferbar ab" auf ein Datum in 12 Tagen setzen → Produkt im Shop ansehen: kaufbar, mit Tage-Hinweis. 4. Produkt **kopieren** → Phasenstruktur wird mitkopiert. --- ## 5. Einkauf & Wareneingang: gleiche Charge zusammenführen **Wo:** Menü **[Einkauf & Wareneingang](/admin/inventory/stock-entries)** **Neu:** - Beim **Buchen des Wareneingangs** (Stufe 2) prüft die Maske beim Eintippen der Chargennummer automatisch, ob diese Charge für den Rohstoff **schon im Haus** ist: Hinweis „Charge bereits im Haus" mit Restbestand, Lagerort und MHD — **MHD und Qualität werden vorbelegt** (bleiben überschreibbar). - Der Einkaufsvorgang bleibt trotzdem **separat erfasst** (eigener Eintrag mit Preis und Datum). **So testen:** 1. Sonnenblumenöl bestellen und mit Charge `XY-123` als eingegangen buchen. 2. Sonnenblumenöl **erneut** bestellen und beim Buchen wieder `XY-123` eintippen → der blaue Hinweis erscheint, MHD ist vorbelegt. 3. Danach Schritt 6 ansehen: die Charge erscheint dort **einmal mit summiertem Rest**. --- ## 6. Rohstoffbestand-Detail: Chargen summiert **Wo:** Menü **[Rohstoffbestand](/admin/inventory/raw-material-stock)**, den Rohstoff aus Schritt 5 anklicken **Neu:** Tabelle **„Verfügbare Chargen"** zeigt je Chargennummer **eine Zeile mit Summen-Rest** und dem Vermerk „2 Einkäufe"; darunter die einzelnen Einkäufe als eingerückte Unterzeilen („Einkauf vom …"). Außerdem: Spalte **„Letzter Einkauf (Netto/kg)"** je Lieferant und die Bestell-Buttons aus Schritt 2. **So testen:** Restbestand der Charge = Summe beider Einkäufe; beide Einkaufszeilen mit eigenem Datum sichtbar. --- ## 7. Produktion: neue Maske mit Produktionsergebnis **Wo:** Menü **Produktion → Produktionen → [Neue Produktion](/admin/inventory/productions/create)** **Neu (Kernstück der Runde):** - Oben nur noch **Planung**: „Geplante Stückzahl (Planung)" — **bucht keinen Bestand**. - **INCI-Liste** der Herstellerrezeptur: Name, **Alternativer Name**, Qualität, Anteil %, Gramm gesamt, **Regal** — mit Summenzeile. - **Chargen-Zuordnung nach Phasen** gegliedert (inkl. Phasen-Notiz) mit **Status-Ampel** je Rohstoff (grün = eingetragene Menge entspricht dem Soll). - Das **Chargen-Dropdown** zeigt zusammengeführte Chargen mit Summen-Rest (z. B. „… — Rest 8.000 g (2 Einkäufe)"); der Verbrauch wird automatisch nach frühestem MHD auf die Einkäufe verteilt. - Ganz unten **„Produktionsergebnis"**: Zeilen mit Produkt + produzierte Stückzahl + **Chargen-Nr.** (vorbelegt aus Präfix + Produktionsdatum, z. B. `TP1150626` — editierbar), „+ weitere Ergebniszeile" für **mehrere Output-Produkte**. **So testen (Beispiel aus der Anforderung):** 1. 50 × „50 ml Deobalm" **planen**, Chargen zuordnen (Ampeln grün). 2. Im Produktionsergebnis eintragen: **40 × 50 ml** und (zweite Zeile) **50 × 5 ml** — Chargen-Nr. wird je Zeile automatisch vorgeschlagen. 3. Speichern → Detailseite zeigt die Karte „Produktionsergebnis". 4. **Produktbestand prüfen** (Schritt 8): 50-ml-Produkt +40, 5-ml-Produkt +50 — **nicht** +50 aus der Planung. 5. Produktion **bearbeiten**, Ergebnis ändern → der Produktbestand korrigiert sich als Differenz-Gegenbuchung (Historie bleibt vollständig). 6. Rohstoffbestand (Schritt 6) prüfen: abgezogen wurden die **je Charge eingetragenen Gramm** — unabhängig vom Ergebnis. --- ## 8. Produktbestand & Ausschuss **Wo:** Menü **[Produktbestand → Übersicht](/admin/inventory/product-stock)** und **[Ausgang / Ausschuss](/admin/inventory/stock-disposals)** (Historie: **[Produktbestand → Historie](/admin/inventory/product-stock/history)**) **Neu:** - Übersicht **standardmäßig nach Dringlichkeit sortiert**; alle **vier Status-Kacheln** oben sind klickbare Filter. - Spalte **„Verbrauch pro Monat"** (Durchschnitt der letzten 6 Monate). - Auf Produktebene Häkchen **„Im Produktbestand anzeigen"** — z. B. Logo-Etiketten-Abrechnungen ausblendbar. - Ausschuss-Erfassung nutzt die **selbst gepflegten Gründe** aus Schritt 1; Chargen-Auswahl setzt den Lagerort automatisch. **So testen:** Kacheln durchklicken, ein Produkt per Häkchen ausblenden, einen Ausschuss mit eigenem Grund buchen und in der Historie wiederfinden. --- ## 9. Shop-Bestandsabzug beim Versand & API-Bestellungen (neu 16.07.2026) **Wo:** Menü **[Verkäufe](/admin/sales)** (Statuswechsel) und **[Bestellungen → API-Bestellungen](/admin/inventory/api-orders)** (Warenwirtschaft) **Neu:** - Beim Setzen einer Bestellung auf **„versendet"** oder **„abgeschlossen"** bucht das System je Position automatisch einen **Abgang im Produktbestand** (Grund „Verkauf"). **Sets** werden in Einzelprodukte aufgelöst. Zurücksetzen oder **Storno** bucht automatisch zurück. - Menüpunkt **API-Bestellungen**: Protokoll aller über die Partnercenter-API übertragenen Bestellungen. Einträge mit **nicht zuordenbaren Positionen** (unbekannte WP-Nummer) sind **rot markiert**; **„Ansehen"** öffnet den Inhalt der Übertragung. Oben warnt die Seite bei **doppelten WP-Nummern** und listet aktive Produkte **ohne WP-Nummer**. **So testen:** Eine Bestellung mit bekanntem Produkt auf „versendet" setzen → im **[Produktbestand → Historie](/admin/inventory/product-stock/history)** erscheint der Abgang „Verkauf"; Status zurück auf „offen" → Gegenbuchung. Danach unter **API-Bestellungen** eine Übertragung mit unbekannter SKU suchen (rot markiert) und per „Ansehen" die Positionen prüfen. --- ## 10. Bestell-Abwicklung (neu 16.07.2026) **Wo:** Menü **[Bestellungen → Abwicklung](/admin/inventory/orders)** **Neu:** - Kompakte Tagesübersicht mit vier klickbaren Kacheln: **Heute eingegangen / Zu konfektionieren / Versandfertig / Heute versendet** — „versandfertig" heißt bezahlt (Zahlart Rechnung sofort, Vorkasse nach Zahlungseingang, API immer). - Je Bestellung: aufklappbare **Packliste** (Sets mit Komponenten), Gewicht, Zahlstatus, **Dokumente** (Rechnung/Lieferschein einzeln oder kombiniert; per Klick erstellbar, ohne E-Mail; API-Bestellungen verlinken die externe Rechnung) und die Buttons **„Konfektioniert"** und **„Versendet"** (bucht den Bestandsabzug). - Wurde ein Status über die Abwicklung gesetzt, **überschreibt das Öffnen der Bestell-Details ihn nicht mehr automatisch**. - **Sammel-Druck:** mehrere Bestellungen per Checkbox auswählen → **„Lieferscheine drucken"** oder **„+ Rechnungen"** → ein PDF mit allen Dokumenten öffnet sich im neuen Tab; fehlende Dokumente werden automatisch miterstellt. **So testen:** Eine bezahlte offene Bestellung unter „Zu konfektionieren" finden → Packliste aufklappen → „Konfektioniert" → Bestellung wandert zu „Versandfertig" → Dokumente erstellen und drucken → „Versendet" → Kachel „Heute versendet" zählt hoch, Abgang steht in der **[Produktbestand-Historie](/admin/inventory/product-stock/history)**. Danach zwei Bestellungen anhaken und den Sammel-Druck testen. --- ## 11. DHL-Label aus dem Shop (Brückenlösung, neu 17.07.2026) **Wo:** Menü **[Bestellungen → Abwicklung](/admin/inventory/orders)** und Bestell-Details unter **Verkäufe** **Neu:** - Wird das DHL-Etikett **im WooCommerce-Shop** erstellt und die Bestellung danach übertragen, speichert das System eine **eigene Kopie der Label-PDF** und die **Sendungsnummer** an der Bestellung. - In der Abwicklung erscheint bei der Bestellung ein **„Label"-Download** (neben dem externen Rechnungslink) samt Sendungsnummer; ebenso in den Bestell-Details. - Wird das Label im Shop erst **nach** der Übertragung erstellt (oder neu erstellt), reicht der Shop es automatisch nach — es taucht dann ohne weiteres Zutun in der Abwicklung auf. - Voraussetzung: das Update des Verbindungs-Plugins im WooCommerce-Shop auf **Version 1.5.0** ist eingespielt (überträgt die Label-PDF direkt; mit älterem Connector kommt nur die Sendungsnummer an). **So testen:** Im Shop eine Testbestellung mit DHL-Label versehen → Bestellung ins Partnercenter übertragen → in der **Abwicklung** bei der Bestellung auf **„Label"** klicken (PDF öffnet sich) und die Sendungsnummer prüfen. Danach einmal andersherum: Bestellung zuerst übertragen, Label im Shop erst danach erstellen → Seite neu laden, der Label-Download muss nachträglich erscheinen. --- --- # Teil B — Neu in Runde V7.0 (26.–28.08.2026) > Diese Abschnitte prüfen die Punkte aus der Testphasen-Rückmeldung vom 26.08.2026. > Reihenfolge wieder entlang des Arbeitsablaufs (Stammdaten → Produkt → Rohstoff → > Wareneingang → Produktion → Versand). ## 12. Stammdaten: getrennte Buchungsgründe, Lieferanten-Filter, Lagerorte **Wo:** **[Einstellungen → Allgemein](/admin/inventory/general)**, **[Produkte → Inhaltsstoffe](/admin/product/ingredients)**, **[Stammdaten → Lagerorte](/admin/inventory/locations)** **Neu:** - **Buchungsgründe getrennt Ein-/Ausgang (AP-48):** Zwei getrennte, selbst pflegbare Listen für **Eingangs-** und **Ausgangs-Gründe** des Produktbestands. - **Lieferanten-Dropdown gefiltert (AP-49):** Am Inhaltsstoff werden nur noch **Rohstoff-Lieferanten** (Kategorie „Kosmetikrohstoffe") angeboten. - **Lagerort löschbar + Köln-Default (AP-50):** Ein belegter Lagerort (z. B. „Waldbröl") lässt sich löschen, indem seine Buchungen auf einen **Ziel-Lagerort** übernommen werden. **So testen:** 1. Unter *Allgemein* je einen neuen **Eingangs-** und **Ausgangs-Grund** anlegen → sie erscheinen später (Schritt 16) je nach Buchungsrichtung getrennt. 2. Einen INCI öffnen → das Lieferanten-Dropdown zeigt nur Rohstoff-Lieferanten. 3. Unter *Lagerorte* bei „Waldbröl" als Ziel **„Köln"** wählen und übernehmen → Waldbröl ist weg, seine Buchungen hängen an Köln. --- ## 13. Produkt: Füllgewicht, „produktionsrelevant", Lagerplatz **Wo:** **[Produkte → Übersicht](/admin/product/show)**, ein Produkt bearbeiten → Karte **Warenwirtschaft** **Neu:** - **Füllgewicht (g) (AP-35):** Grundlage für die Produktions-Soll-Mengen (Anteil % × Füllgewicht). Leer = „Menge = Gramm". - **„Produktionsrelevant" (AP-47):** Schalter; nur produktionsrelevante Produkte erscheinen im Produktions-Dropdown und in der Rohstoffbestand-Box „Enthalten in". - **Lagerplatz Raum/Regal/Fach (AP-51):** Dieselbe Zuordnung wie beim Rohstoff, jetzt auch am Produkt. **So testen:** 1. Bei einem Rezeptur-Produkt (z. B. Deocreme 50 ml) **Füllgewicht = 50** eintragen, Lagerplatz setzen, speichern. 2. Bei einem Handels-/Nebenprodukt **„produktionsrelevant" abwählen** → es verschwindet aus dem Produktions-Dropdown (Schritt 15). 3. Produktbestand (Schritt 8) öffnen → der Lagerplatz erscheint als Zeile unter dem Produktnamen. --- ## 14. Rohstoff & Wareneingang: Dichte und ml-Erfassung **Wo:** **[Produkte → Inhaltsstoffe](/admin/product/ingredients)** und **[Einkauf & Wareneingang](/admin/inventory/stock-entries)** **Neu (AP-42):** - Am Rohstoff optionales Feld **Dichte (g/ml)**. - Im Einkauf/Wareneingang lässt sich die Einheit **g oder ml** wählen; bei **ml** wird über die Dichte in Gramm umgerechnet und **als Gramm gespeichert**. **So testen:** 1. Bei einer in ml gekauften Tinktur die **Dichte** hinterlegen (z. B. 0,79). 2. Einen Wareneingang mit Einheit **ml** erfassen (z. B. 100 ml) → gespeichert/gebucht werden 79 g. 3. Ohne hinterlegte Dichte ist die ml-Auswahl gesperrt (Prüfung). --- ## 15. Produktion: Soll auf Füllgewicht, Abwiege-Ampel, Bestand/Differenz **Wo:** **Produktion → [Neue Produktion](/admin/inventory/productions/create)** **Neu:** - **Soll = Anteil % × Füllgewicht × Stückzahl (AP-35)** statt fix 100 g. - **Abwiege-Ist-Wert + Ampel (AP-39):** orange = nichts eingetragen, grün = ±5 % vom Soll, rot = >5 % Abweichung. - **INCI-Tabelle: Spalten „Bestand" und „Differenz" (AP-40); Lagerplatz-Spalte heißt „Lagerort" (seit 09.09.).** - **Verpackungs-Vorschau direkt unter der INCI-Tabelle + Phasen-Gramm hinter dem Namen (AP-41).** - **INCI-Liste nach Konzentration absteigend sortiert (AP-46).** - **Verpackung wird aus dem Produktionsergebnis gebucht (AP-45).** **So testen:** 1. Produkt mit Füllgewicht (Schritt 13) wählen, Stückzahl planen → die Soll-Gramm je Rohstoff entsprechen **Anteil % × Füllgewicht × Stück** (nicht mehr 100 g). 2. Je Charge eine Ist-Menge eintragen: exakt aufs Soll → **grün**; ~10 % daneben → **rot**; leer → **orange**. 3. Spalten **Bestand/Differenz** prüfen (Differenz negativ = rot). Lagerplatz-Kopf heißt **„Lagerort"**. 4. Phasen-Kopf zeigt die **Gesamt-Gramm** in Klammern; die Verpackungs-Vorschau steht direkt unter der INCI-Tabelle. 5. Ergebnis mit zwei Output-Produkten buchen → die **Verpackung** wird je Ergebnisprodukt × Menge gebucht (Detailseite prüfen). --- ## 16. Produktion zwischenspeichern (Entwurf) **Wo:** **Produktion → Neue Produktion** / eine Produktion **bearbeiten** **Neu (AP-43):** Neben **„Produktion abschließen"** gibt es **„Zwischenspeichern (Entwurf)"** (seit 09.09. an drei Stellen: oben, vor dem Ergebnis, unten). Die erweiterten Entwurfs-Szenarien stehen in **Teil C, Abschnitt 19**. **So testen:** 1. Eine neue Produktion nur teilweise ausfüllen (Produkt + Standort + Datum + Menge), **„Zwischenspeichern"** → wird ohne Fehlermeldung gespeichert und in der Liste mit **Badge „Entwurf"** angezeigt. 2. **Produktbestand & Rohstoffbestand prüfen:** der Entwurf hat **nichts gebucht**. 3. Den Entwurf öffnen, vervollständigen, **„Produktion abschließen"** → jetzt wird gebucht, das Badge verschwindet. 4. Optik/iPad (AP-44): Phasenkästen leicht hinterlegt, kein innerer Kasten um die Chargen, auf dem iPad sind die Felder gut mit dem Finger bedienbar. --- ## 17. Verpackung: Lagerplatz **Wo:** **[Produkte → Verpackung](/admin/inventory/packaging-items?category=packaging)** **Neu (AP-51):** Verpackungsartikel haben jetzt ebenfalls **Raum / Regal / Fach**; in der Übersicht gibt es die Spalte **„Lagerplatz"**. **So testen:** Einen Verpackungsartikel öffnen, Lagerplatz setzen, speichern → er erscheint in der Übersicht in der neuen Spalte. --- ## 18. Versand & Shop: Varianten-Zuordnung und Ampel **Wo:** **[Versand → API-Bestellungen](/admin/inventory/api-orders)** und der WooCommerce-Shop **Neu:** - **Varianten-/Duplikat-Zuordnung (AP-34):** Jede verkaufbare Variante bucht ihr eigenes Warenwirtschafts-Produkt über die **eigene Artikelnummer**; **Aktions-Kopien** desselben Produkts (SKU `100500-a`) buchen auf die **Kernnummer** (`100500`). - **WooCommerce-Ampel (AP-38):** Der Status-Abgleich im Shop läuft wieder (Cron), das Mapping ist vollständig (Wartestellung/Abholung/Storno). **Voraussetzung:** Das aktualisierte **Connector-Plugin v1.6.0** muss im Shop installiert sein (Rollout-Anleitung: `dev/partnercenter-api/README.md`). Ohne dieses Update greifen AP-34/AP-38 shopseitig noch nicht. **So testen (nach Connector-Rollout):** 1. Im Shop eine Bestellung mit einer Variante **und** einer Aktions-Kopie auslösen und ins Partnercenter übertragen. 2. Unter **API-Bestellungen** die Übertragung öffnen → jede Position ist dem richtigen Produkt zugeordnet (Variante = eigenes Produkt, Aktions-Kopie = Kernnummer). Nicht zugeordnete Positionen wären hier rot markiert (dann fehlt der Variante die eigene Artikelnummer im Shop). 3. Eine versendete Bestellung im Shop prüfen → die Status-Ampel steht auf **grün**. --- --- # Teil C — Nachbesserungen & Nachtrag (08./09.09.2026) > Eine unabhängige Prüfung der V7-Umsetzung hat 18 Befunde ergeben; alle sind behoben, > dazu der Kundennachtrag **AP-52**. Diese Abschnitte prüfen die spürbaren Änderungen. ## 19. Produktion: Entwurf sichert alles, blockiert nichts **Wo:** **Produktion → [Neue Produktion](/admin/inventory/productions/create)** **Geändert:** - Der Entwurf speichert **jede** Chargenzeile — auch „Menge ohne Charge" und „Charge ohne Menge" — und Ergebniszeilen ohne Stückzahl. - Eine im Entwurf gewählte, inzwischen nicht mehr verfügbare Charge wird beim Öffnen **rot markiert**. - Entwürfe **reduzieren keine Chargenverfügbarkeit** (weder für andere Produktionen noch für den Ausschuss). - **„Zwischenspeichern (Entwurf)"** gibt es dreimal auf der Seite; das **Notizfeld** wächst beim Tippen mit (iPad). - Nach einer Ablehnung durch „Produktion abschließen" bleiben **alle Chargen und Ist-Mengen** im Formular. **So testen:** 1. Rezeptur-Produkt wählen, bei einem Rohstoff nur **9,8 g** eintragen, **keine** Charge wählen → Zwischenspeichern → Entwurf öffnen: die 9,8 g stehen noch da, Charge ist leer. 2. Charge ergänzen, bei einem Ergebnisprodukt die Stückzahl leer lassen → Zwischenspeichern → Ergebniszeile bleibt erhalten. 3. Parallel eine **zweite Produktion** anlegen: die im Entwurf gewählte Charge ist dort in **voller** Menge wählbar. 4. Beim Abschließen absichtlich **20 g statt 10 g** eintragen → Fehlermeldung; alle Chargen/Mengen stehen unverändert im Formular. --- ## 20. Produktion: Rohstoff in mehreren Phasen, Ergebnisprodukte **Wo:** Produkt bearbeiten (Hersteller-Rezeptur) und **Produktion → Neue Produktion** **Geändert:** - Ein Rohstoff in **zwei Phasen** (z. B. 6 % in A, 4 % in B) behält beim Wiederöffnen je Phase seine Ist-Menge. Auch Speichern des Artikels (Phase umbenennen, neue Phase voranstellen, umsortieren) ändert das nicht. - Im **Produktionsergebnis** sind alle aktiven Einzelprodukte wählbar, auch nicht produktionsrelevante (5-ml-Variante). **So testen:** 1. Rezeptur mit demselben Rohstoff in Phase A (6 %) und Phase B (4 %) anlegen → Produktion mit 6 g / 4 g als Entwurf speichern → öffnen: **6 g in A, 4 g in B** (nicht 10/10). 2. Artikel öffnen, Phase „Vorbereitung" (nur Text) **vor** Phase A einfügen, Phase B umbenennen, speichern → Entwurf erneut öffnen: weiterhin 6 g / 4 g in den richtigen Phasen. 3. 5-ml-Variante auf „nicht produktionsrelevant" stellen → in der Planung oben nicht mehr wählbar, im Ergebnis unten weiterhin. --- ## 21. Verpackungs-Vorschau: Bestand, Differenz, Lagerort (AP-52) + historischer Verbrauch **Wo:** **Produktion → Neue Produktion** / Produktion bearbeiten **Neu/geändert:** - Vorschau-Spalten: **Artikel · Stück gesamt · Lagerort · Bestand · Differenz** (rot/grün wie bei den Rohstoffen). Rechnet aus dem **Produktionsergebnis** und reagiert live auf Produkt-/Mengenänderungen und zusätzliche Ergebniszeilen. - Bei einer **bereits gebuchten** Produktion zeigt die Vorschau den **gespeicherten** Verbrauch, solange Ergebnisprodukte und Stückzahlen unverändert sind — auch wenn die Stückliste am Produkt inzwischen anders ist (Differenz dann „—"). Ändert man die Stückzahl, wird mit der aktuellen Stückliste neu gerechnet (Hinweis unter der Tabelle). - **Füllgewicht** akzeptiert Nachkommastellen (39,5). **So testen:** 1. Verpackungsartikel mit Lagerplatz und Wareneingang anlegen → Neue Produktion: Vorschau zeigt Lagerort, Bestand und Differenz; Stückzahl über den Bestand erhöhen → Differenz wird **rot**. 2. Produktion mit 1 Tiegel je Stück buchen → am Produkt Stückliste auf 2 Tiegel ändern → Produktion bearbeiten: Vorschau zeigt weiter den gespeicherten Verbrauch; nur die Notiz ändern und speichern → Detailseite: Verpackungsverbrauch unverändert. Danach Stückzahl ändern → Neuberechnung. 3. Am Produkt Füllgewicht **39,5** eintragen → Soll-Gramm in der Produktion skalieren mit 39,5 (nicht 39). --- ## 22. Ausschuss ohne Charge & Köln-Default **Wo:** **[Ausgang / Ausschuss](/admin/inventory/stock-disposals)** **Geändert:** Ohne gewählte Charge prüft das System gegen den Bestand des **gewählten Lagerorts** und verteilt die Menge nach frühestem MHD auf die Chargen dieses Lagerorts (je Charge eine Buchung). **Köln** ist vorbelegt. **So testen:** 1. Rohstoff mit zwei Chargen (älteres und jüngeres MHD) am Lagerort Köln; 400 g ohne Charge buchen → in der Ausgangsliste zwei Buchungen (ältere Charge zuerst); Rohstoff-Detail: Chargenrest entsprechend kleiner. 2. Denselben Rohstoff an einem **leeren** zweiten Lagerort ohne Charge buchen → wird abgelehnt („übersteigt den Restbestand am gewählten Lagerort"). --- ## 23. Bestell-Abwicklung: Versand nur mit Zahlungsfreigabe **Wo:** **[Bestellungen → Abwicklung](/admin/inventory/orders)** **Geändert:** „Versendet" ist nur für **versandfertige** Bestellungen möglich (bezahlt; Rechnung/API sofort). Der Button ist sonst ausgegraut. „Konfektioniert" bleibt vorher möglich. **So testen:** Eine Vorkasse-Bestellung ohne Zahlungseingang → „Versendet" ist deaktiviert, „Konfektioniert" funktioniert. Zahlung eingegangen → „Versendet" buchbar, Abgang in der Produktbestand-Historie. --- ## 24. Rohstoff-Detail: Preise nur für Admins, „Enthalten in" **Wo:** **[Rohstoffbestand](/admin/inventory/raw-material-stock)**, Rohstoff öffnen **Geändert:** - Spalte **„Letzter Einkauf (Netto/kg)"** nur für Admins (Versand-/Produktionsmitarbeiter sehen keine Preise). - **„Enthalten in"** zeigt **Anteil (%)** und **Verbrauch (g/Stück)** inkl. Faktor, Phasen summiert. **So testen:** Als Mitarbeiter (Copyreader) anmelden → keine Preisspalte; als Admin → Preis sichtbar. Produkt mit 50 g Füllgewicht und 20 % Anteil (Faktor 1,1) → „20,00 %" und „11,00 g (netto 10,00 g)". --- ## 25. Einkauf: ml-Kopie, Historie, Verbrauch/Monat **Wo:** **[Einkauf & Wareneingang](/admin/inventory/stock-entries)**, **[Produktbestand → Historie](/admin/inventory/product-stock/history)**, **[Produktbestand](/admin/inventory/product-stock)** **Geändert:** - **Kopieren** einer ml-Bestellung erhält Einheit und Dichte — auch nach Bearbeiten und Wareneingang. - **Historie** zeigt bei mehr als 500 Treffern die Gesamtzahl und **„Alle anzeigen"**. - **Verbrauch/Monat** zählt Versand → Storno → Wiederversand nur einmal. **So testen:** 1. 100-ml-Bestellung (Dichte 0,79) kopieren → Kopie öffnen: 100,00 **ml** → speichern → Wareneingang „100" → gebucht **79 g**. 2. Historie eines Produkts mit vielen Buchungen filtern → Hinweis „… von … Buchungen" und „Alle anzeigen". 3. Bestellung versenden, zurücksetzen, erneut versenden → Verbrauch/Monat steigt nur um die einfache Menge. --- ## Hinweis am Rande Die Listen **Einkauf & Wareneingang**, **Produktionen** und die **Produktbestand-Historie** zeigen aus Performance-Gründen die neuesten 500 Einträge; darüber erscheint ein Link **„Alle anzeigen"**. Offene Bestellungen sind immer vollständig gelistet. ## Was bewusst noch nicht dabei ist (nachgelagert) Versand im System (DHL-Etiketten per API), Audit-Trail, 2FA, blockbasierte Rechte und die WaWi-Einstellungsseite folgen in der nächsten Runde.