From 912dce65d4608739db34e5f794b65220f083375c Mon Sep 17 00:00:00 2001 From: Kevin Adametz Date: Fri, 28 Aug 2026 12:07:37 +0000 Subject: [PATCH] =?UTF-8?q?Warenwirtschaft:=20Doku=20V7.0=20=E2=80=94=20Hi?= =?UTF-8?q?nweise=20erweitert=20+=20Testleitfaden=20Version=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - resources/docs/hinweise.md: Stand 28.08.2026; neuer Block „Neu in Runde V7.0" (AP-34/35/38/39/40/41/42/43/44/45/46/47/48/49/50/51) unter „Bereits nutzbar"; zentrale Verhaltens-Hinweise ergänzt (Füllgewicht/Soll, Dichte/ml, Entwurf vs. Abschließen, Varianten & Aktions-Kopien, Lagerplatz Produkte/Verpackung). - resources/docs/testleitfaden.md: auf Version 2 gehoben. Teil A = bisherige Basis-Abschnitte 1–11 (unverändert), neuer Teil B = Abschnitte 12–18 mit Test-Schritten für die V7.0-Funktionen (Stammdaten/Produkt/Rohstoff/ Wareneingang/Produktion/Entwurf/Verpackung/Versand). Wird über NoticeController (Einstellungen → Leitfaden) ausgeliefert. Co-Authored-By: Claude Opus 4.8 --- resources/docs/hinweise.md | 96 +++++++++++++++++++++++- resources/docs/testleitfaden.md | 128 +++++++++++++++++++++++++++++++- 2 files changed, 219 insertions(+), 5 deletions(-) diff --git a/resources/docs/hinweise.md b/resources/docs/hinweise.md index d08cd99..dec7809 100644 --- a/resources/docs/hinweise.md +++ b/resources/docs/hinweise.md @@ -4,8 +4,8 @@ > wichtige Hinweise für die Nutzung sowie festgehaltene Entscheidungen, die > später noch ausgebaut werden können. > -> **Stand:** 16.07.2026 — ein geführter Rundgang durch die neuen Funktionen -> steht unter **Einstellungen → Leitfaden**. +> **Stand:** 28.08.2026 — ein geführter Rundgang durch die neuen Funktionen +> steht unter **Einstellungen → Leitfaden** (aktuell **Version 2**, Runde V7.0). --- @@ -149,6 +149,64 @@ vollständige DHL-Anbindung im Partnercenter (Labels direkt hier erzeugen, AP-32) bleibt geplant. +### Neu in Runde V7.0 (26.–28.08.2026) + +Aus der Testphasen-Rückmeldung 26.08.2026 umgesetzt: + +- **Produktionsmengen auf das Füllgewicht skaliert (AP-35):** Die Hersteller-Rezeptur + wird als **Anteil in %** geführt; die Soll-Gramm in der Produktion ergeben sich + aus **Anteil % × Füllgewicht × Stückzahl**. Am Produkt gibt es dafür das optionale + Feld **„Füllgewicht (g)"** (leer = Menge = Gramm, also 1 g/ml). Vorher wurde immer + auf 100 g gerechnet. +- **Abwiegen mit Ist-Wert & ±5-%-Ampel (AP-39):** Je Charge wird die tatsächlich + entnommene Menge eingetragen; der Bestandsabzug kommt aus diesem Ist-Wert. Die + Ampel je Rohstoff: **orange** = nichts eingetragen, **grün** = Wert vorhanden und + höchstens **±5 %** vom Soll, **rot** = Abweichung über 5 % (Schutz vor Zahlendreher). +- **INCI-Tabelle: Bestand & Differenz (AP-40):** Rechts zwei neue Spalten — + aktueller **Bestand** des Rohstoffs und **Differenz** (Bestand − Soll; negativ rot, + positiv grün). Spaltenkopf **„Regal" → „Ablage"**. +- **Verpackungs-Vorschau oben + Phasen-Gramm (AP-41):** Die Box „Verpackung + (Vorschau)" steht direkt unter der INCI-Tabelle; je Phase steht die **Gesamt-Gramm-Summe** + in Klammern hinter dem Namen (zeigt die nötige Rührgefäß-Größe). +- **Rohstoff-Dichte / ml-Erfassung (AP-42):** Am Rohstoff kann eine **Dichte (g/ml)** + hinterlegt werden. Im Wareneingang lässt sich die Menge dann in **ml** erfassen und + wird über die Dichte in **Gramm** umgerechnet (kanonisch wird weiter in Gramm + geführt). Ohne Dichte bleibt die Erfassung in Gramm. +- **Verpackungsverbrauch aus dem Ergebnis (AP-45):** Verpackung (Tiegel/Etikett) wird + aus dem **Produktionsergebnis** gebucht (je Ergebnisprodukt eigene Stückliste × + Ergebnismenge), nicht mehr aus der Planmenge. +- **INCI-Liste nach Konzentration (AP-46):** Die INCI-Anzeige oben ist nach **Anteil + absteigend** sortiert; die Phasen-/Chargenreihenfolge bleibt unverändert. +- **„Produktionsrelevant"-Flag (AP-47):** Am Produkt steuerbar; das Produktions-Dropdown + und die Rohstoffbestand-Box „Enthalten in" zeigen nur noch produktionsrelevante + Produkte (blendet z. B. reine Handelsware/Varianten aus). +- **Buchungsgründe getrennt & pflegbar (AP-48):** Produktbestand-Bewegungen haben jetzt + **getrennte Listen für Eingang und Ausgang**, beide unter **Einstellungen → Allgemein** + pflegbar. Beim Buchen erscheint je Richtung die passende Liste. +- **Lieferanten-Dropdown gefiltert (AP-49):** Am Inhaltsstoff werden nur noch + **Rohstoff-Lieferanten** (Kategorie „Kosmetikrohstoffe") angeboten. +- **Lagerorte übernehmbar + Köln-Default (AP-50):** Ein belegter Lagerort lässt sich + löschen, indem seine Buchungen auf einen **Ziel-Lagerort übernommen** werden; + **Köln** ist im Wareneingang als Lagerort vorbelegt. Die Standort-Funktion bleibt + für künftige Standorte erhalten. +- **Lagerplatz für Produkte & Verpackung (AP-51):** Die Lagerplatz-Zuordnung + **Raum / Regal / Fach** gibt es jetzt auch bei **Produkten** und + **Verpackungsartikeln** (gleiche Bausteine wie beim Rohstoff). Angezeigt im + Produktbestand und in der Produktverpackungs-Übersicht. +- **Produktion zwischenspeichern (Entwurf) (AP-43):** Neben **„Produktion abschließen"** + gibt es **„Zwischenspeichern (Entwurf)"**. Ein Entwurf sichert den Stand **ohne + Pflichtfeld-Prüfung** und **bucht keinen Bestand**; erst „abschließen" prüft + vollständig und bucht. Entwürfe sind mit einem Badge markiert. +- **Rezeptur-Darstellung aufgehübscht (AP-44):** Phasenkästen leicht hinterlegt, kein + innerer Kasten mehr um die Chargen, einheitliche Schrift, iPad-taugliche (größere) + Eingabefelder, formatierte Phasenbeschreibung. +- **Varianten-/Duplikat-Zuordnung (AP-34):** Bestellungen mit Produktvarianten werden + korrekt zugeordnet (siehe Abschnitt „Wichtige Hinweise → Varianten & Aktions-Kopien"). + *Benötigt das aktualisierte Shop-Connector-Plugin (v1.6.0).* +- **WooCommerce-Ampel (AP-38):** Der Status-Abgleich im Shop läuft wieder; das + Status-Mapping ist vollständig (Wartestellung, Abholung, Storno). *Details im + Connector-README; benötigt v1.6.0.* + ### In Vorbereitung / geplant - **Versand im System** (DHL-Etiketten per API, AP-32 — bis dahin gilt die @@ -257,6 +315,40 @@ unverändert weiter; das Kopieren eines Produkts übernimmt die Phasenstruktur. Für Soll-Mengen der Produktion sind Phasen rein darstellend — gerechnet wird wie bisher über alle Zeilen. +- **Soll-Mengen = Anteil % × Füllgewicht (V7.0):** Die Rezeptur-Werte sind + **Anteile in Prozent**. Die Soll-Gramm einer Produktion ergeben sich aus + **Anteil % × Füllgewicht des Produkts × Stückzahl**. Das **Füllgewicht (g)** + wird am Produkt gepflegt; ist es leer, gilt „Menge = Gramm" (1 g/ml). Die + **Abwiege-Ampel** je Rohstoff ist grün, wenn die eingetragene Ist-Menge + höchstens ±5 % vom Soll abweicht. +- **Rohstoff-Dichte für ml-Einkäufe (V7.0):** Wird ein Rohstoff in **ml** + eingekauft (z. B. eine Tinktur), aber in **Gramm** geführt, hinterlegt man am + Rohstoff die **Dichte (g/ml)**. Im Wareneingang kann dann die Einheit **ml** + gewählt werden; gespeichert wird der über die Dichte errechnete Gramm-Wert. + Ohne hinterlegte Dichte ist keine ml-Erfassung möglich. +- **Produktion: Entwurf vs. Abschließen (V7.0):** **„Zwischenspeichern (Entwurf)"** + sichert eine Produktion **ohne Pflichtfeld-Prüfung** und **ohne Bestandsbuchung** — + ideal, um mitten in der Erfassung zu pausieren. Ein Entwurf taucht **nirgends im + Bestand** auf und ist mit „Entwurf" markiert. Erst **„Produktion abschließen"** + prüft Rezeptur/Chargen/Ergebnis vollständig und bucht Roh-/Produkt-/Verpackungsbestand. + Eine bereits abgeschlossene Produktion kann **nicht** zurück in den Entwurf + (die Buchungen würden sonst verwaisen). +- **Varianten & Aktions-Kopien (V7.0, AP-34):** Zwei bewusst unterschiedene Fälle: + **(1)** Physisch verschiedene Produkte (z. B. 50 ml vs. 5 ml, mit/ohne Natron) sind + im Shop **eigene Produkte mit eigener Artikelnummer** und werden je auf ihr eigenes + Warenwirtschafts-Produkt gebucht (eigener Bestand). **(2)** Kopiert ein Anwender ein + Produkt für eine Aktion / ein neues Bild, verlangt WooCommerce eine eindeutige SKU + → Konvention **Kernnummer + Suffix** (`100500`, `100500-a`, `100500-b`). Das ist + derselbe Artikel und wird auf die **Kernnummer** gebucht. **Wichtig:** Jede + verkaufbare Variante braucht im Shop ihre **eigene Artikelnummer**; fehlt sie, + taucht die Position unter **API-Bestellungen** als „nicht zugeordnet" auf. Eine + Aktions-Kopie mit abweichendem Preis wird trotzdem korrekt gebucht (nur ein + informativer „different price"-Vermerk im Protokoll). *Voraussetzung: Connector v1.6.0 + im Shop.* +- **Lagerplatz für Produkte/Verpackung (V7.0):** Neben Rohstoffen haben jetzt auch + Produkte und Verpackungsartikel eine Lagerplatz-Zuordnung **Raum | Regal | Fach** + (gleiche zentral gepflegten Bausteine). Ein Lagerbaustein lässt sich nicht löschen, + solange er noch verwendet wird. --- diff --git a/resources/docs/testleitfaden.md b/resources/docs/testleitfaden.md index 59ba087..51015d0 100644 --- a/resources/docs/testleitfaden.md +++ b/resources/docs/testleitfaden.md @@ -1,11 +1,16 @@ -# Testleitfaden Warenwirtschaft — Anforderungsrunde 12.06.2026 +# Testleitfaden Warenwirtschaft — Version 2 -> **Stand:** 16.07.2026 -> Dieser Leitfaden führt einmal durch alle neuen Funktionen — in der Reihenfolge eines typischen Arbeitsablaufs, sodass jede Stelle direkt im Browser nachgeschaut und getestet werden kann. +> **Stand:** 28.08.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) — **neu in Runde V7.0** (Testphasen-Rückmeldung 26.–28.08.2026). Wer nur die neuen Punkte prüfen will, springt direkt zu **Teil B**. --- +# Teil A — Basis-Funktionen (Runde 12.06.2026) + ## 1. Einstellungen: Lagerort-Bausteine & Ausschuss-Gründe **Wo:** Menü **[Einstellungen → Allgemein](/admin/inventory/general)** @@ -171,6 +176,123 @@ --- +--- + +# 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", „Regal" → „Ablage" (AP-40).** +- **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). Kopf heißt **„Ablage"**. +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)"**. + +**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**. + +--- + ## Hinweis am Rande Die Listen **Einkauf & Wareneingang** und **Produktionen** zeigen aus Performance-Gründen die neuesten 500 Einträge; darüber erscheint ein Link **„Alle anzeigen"**. Offene Bestellungen sind immer vollständig gelistet.