Commit graph

66 commits

Author SHA1 Message Date
b8180a06a1 Warenwirtschaft: AP-53 — Gramm-Mengen mit drei Nachkommastellen (Produktion, Wareneingang, Ausschuss)
Kundennachtrag 09.09.2026: Ist-Mengen je Charge in der Produktion sollen auf das Milligramm eingegeben werden können (z. B. 0,125 g). Bisher rundeten Datenbank (decimal 12,2), Bestandslogik, Anzeige und Toleranzsockel auf zwei Stellen; „0,125" wurde still zu 0,13, „0.125" nach der Punkt-Regel zu 125 g.

- Migration 2026_09_09_100000: production_ingredients.quantity_used, stock_entries.ordered_quantity/received_quantity, stock_disposals.quantity → decimal(12,3); Casts decimal:3. Auf der Dev-DB (Live-Kopie) ausgeführt, 53/78/7 Zeilen unverändert.
- InventoryService::QUANTITY_DECIMALS = 3; roundWawiQuantity() ersetzt alle round(…, 2) in InventoryService, ProductionService, StockDisposalController/-Request, StockEntryRepository/-Controller, RawMaterialStockController.
- formatWawiQuantity($v, $min = 2): bis drei Stellen, mindestens zwei — Produktionsdetail, Einkauf Liste/Detail/Formular, Ausschuss-Liste, Chargen-Rest im Rohstoff-Detail.
- Eingaberegel (reFormatWawiNumber, JS parseGerman/parseNumber): zusätzlich „0.xxx" als Dezimalzahl; „1.500" bleibt 1500. Produktions-JS: fmt() bis drei Stellen, fmtInput() schreibt gespeicherte Zahlen deutsch ins Feld (1,125 statt 1.125 = 1125).
- Soll-Ist-Toleranz: Sockel 0,05 → 0,005 g; Ausschuss min 0,001.
- Doku: Hinweise (Neu/geändert), Leitfaden Version 3.1 mit Abschnitt 26, Plan V7 AP-53, README (Deploy-Checkliste, Suite 378).

Tests: QuantityPrecisionTest (6) — Parsing, Anzeige, Produktion 0,125 g exakt + Rest 9,875 g, Entwurf 1,125 wiederöffnen, Toleranz Kleinmengen, Ausschuss 0,005 g.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 15:54:29 +00:00
f22a382715 Warenwirtschaft: Deployment-Checkliste — Route-/Config-Cache nach dem Deploy verpflichtend neu aufbauen
Auf Live trat unter /admin/inventory/general ein 500er auf ("Route [admin.inventory.stock-movement-reasons.create] not defined"). Die Route existiert seit AP-48 (190713c) in routes/web.php und ist getestet; Ursache ist ein veralteter Route-Cache auf Live. Schritt 5 der Checkliste fordert jetzt optimize:clear + Neuaufbau der Caches als Pflichtschritt.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 14:58:00 +00:00
be29be863f Warenwirtschaft: In-App-Doku für Deploy — Hinweise Stand 09.09.2026, Testleitfaden Version 3 (Teil C), Deployment-Checkliste
- resources/docs/hinweise.md: Abschnitt „Neu / geändert 08./09.09.2026“ (alle
  nutzerrelevanten Nachbesserungen + AP-52), Spalte „Lagerort“, Entwurfsregeln,
  Versand nur versandfertig, Köln-Default auch im Ausschuss.
- resources/docs/testleitfaden.md: Version 3 mit Teil C (Abschnitte 19–25).
- README: Deployment-Checkliste (Migrationen 2026_09_08_* auf Dev-DB gelaufen),
  In-App-Doku als maßgebliche Nutzerdoku; docs/testleitfaden V1 als Archiv markiert.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 09:17:28 +00:00
db2f7fe1a3 Warenwirtschaft: Doku — AP-52 in Plan V7 und README; Gegenprüfung Abschnitt 7 (unabhängige Bestätigung R-01/R-02) eingecheckt
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 08:49:15 +00:00
22e218d570 Warenwirtschaft: Doku — Gegenprüfung 09.09. mit Nacharbeitsstand R-01/R-02, Nachprüfung/README/V7 aktualisiert
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 07:28:21 +00:00
a439d05a6a Warenwirtschaft: Doku — Nachprüfung N-01…N-06 mit Nacharbeitsstand, README/V7/Erstbericht aktualisiert
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 11:48:42 +00:00
dd93a99265 Warenwirtschaft: Doku nachgezogen — Nacharbeitsstand F-01…F-18, README/V7/Testleitfaden bereinigt (Bericht Abschnitt 8)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 11:10:52 +00:00
0a1e796f7b Warenwirtschaft: Umsetzungsprüfung 08.09.2026 eingecheckt (18 Befunde, verifiziert)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 10:48:22 +00:00
0f641ef33a Housekeeping: offene Dev-Dateien eingecheckt + Sidebar „Bestellungen"→„Versand"
- Sidebar-Menü „Bestellungen" in „Versand" umbenannt (layout-sidenav), sonst nur
  Blade-Formatierung.
- Entwicklungspläne in ISO-Datumsformat umbenannt (entwicklungsplan-aktualisiert-*).
- dev/dhl-for-woocommerce/ (DHL-Plugin) + dev/partnercenter-api.zip + PastedGraphic
  hinzugefügt.
- .claude/ bewusst NICHT eingecheckt (lokale Claude-Code-Konfiguration).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-28 12:04:41 +00:00
c7ddf7906e Warenwirtschaft: Plan V7.0 — AP-34 Shop-Duplikat-Konvention dokumentiert
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-28 11:54:12 +00:00
e83ef3dc95 Warenwirtschaft: AP-34 Modell-Bestätigung dokumentiert (Bestand je Variante)
Mit Kunde geklärt (28.08.): jede Größe/Variante ist ein eigenes Shop-Produkt mit
eigener Artikelnummer, Bestand wird je Variante getrennt geführt (50 ml ≠ 5 ml).
Kein Roll-up auf ein Basisprodukt. Die umgesetzte AP-34-Logik entspricht damit
exakt dem Kundenmodell — keine Code-Änderung nötig. Nur Plan-Doku ergänzt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-28 11:35:10 +00:00
7da49e2027 Warenwirtschaft: AP-38 dokumentiert — Plan-Abschnitt + Connector-README (Cron)
Shop-Diagnose 28.08. (SSH): Warteliste leer ([]), alles abgearbeitet, Ampel grün.
- Plan V7.0: eigener AP-38-Abschnitt (Diagnose/Ursache/Behebung); Statustabelle
  auf „alle APs erledigt" aktualisiert (nur noch Connector-Rollout v1.6.0 offen).
- Neu: dev/partnercenter-api/README.md — Status-Ampel, Cron einrichten/prüfen
  (wp cron event list/schedule/run), Fehlersuche (Auth/curl), v1.6.0-Änderungen,
  Rollout-Checkliste.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-28 11:14:53 +00:00
b6ca33288c Warenwirtschaft: AP-38 — Status-Cron selbstheilend einplanen (Ursache Ampel-Bug)
Shopseitige Diagnose (SSH, 28.08.): der Hook partnercenter_api_fetch_orders_status
war in WP-Cron GAR NICHT eingeplant (grep leer), obwohl WP-Cron läuft (System-Cron
trifft wp-cron.php alle 5 Min, DISABLE_WP_CRON=1 korrekt kompensiert). Damit pollte
nichts /api/wp/status → jede abgeschlossene Bestellung blieb auf 'open' = orange.

Ursache: Der Event wurde nur im register_activation_hook eingeplant und im
Deaktivierungs-Hook gelöscht. Ein In-Place-Update (ohne Reaktivierung) ließ ihn
dauerhaft verschwinden.

Fix (Connector v1.6.0): partnercenter_api_ensure_cron() auf 'init' — plant den
stündlichen Event nach, falls er fehlt (wp_next_scheduled-Guard). Selbstheilend,
übersteht künftige Updates.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-28 11:07:09 +00:00
0c8d321f66 Warenwirtschaft: AP-38 — ERP-/Connector-Status-Mapping vervollständigt
Die orange Ampel bei abgeschlossenen Bestellungen ist KEIN ERP-Fehler: der
Endpoint /api/wp/status liefert für versendete Bestellungen bereits sent/close
(Live-DB: 111× shipped=2, 1× shipped=3). Ursache liegt shopseitig (Cron/Auth) —
wird per SSH geprüft. Unabhängig davon die latenten Mapping-Lücken geschlossen:

ERP (ShoppingOrder::$apiShippedTypes):
- Status 5 (Wartestellung) fehlte und lieferte den Default 'free' (im Shop gar
  kein Licht). Jetzt 5 => 'process' (Shop-Ampel orange = in Bearbeitung).

Connector (partnercenter-api, Teil von v1.6.0 — noch nicht ausgerollt):
- admin/post-list.php: Ampel-Switch deckt jetzt 'pick_up' (Abholung ⇒ grün) und
  'cancel' (storniert ⇒ neue rote Kugel) ab; vorher fielen beide auf ⚠️.
- woocommerce/order-status.php: 'pick_up' und 'cancel' gelten jetzt als
  Endzustände und fallen aus der stündlichen Nachfrage-Liste
  (_partnercenter_api_unclear_order_ids) — vorher wurden 12 stornierte
  Bestellungen dauerhaft weiter gepollt.

Test: AP-38-Mapping prüft alle shipped-Werte (kein stiller 'free'-Fallback mehr).
Suite 338 grün.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-28 11:01:25 +00:00
d2b14b24a3 Warenwirtschaft: Plan V7.0 — AP-43 + AP-44 erledigt, nur noch AP-38 offen
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-28 10:02:24 +00:00
3d19f743b1 Warenwirtschaft: Plan V7.0 — AP-51 erledigt, Umsetzungsstand
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-28 09:47:13 +00:00
eb47c8a82d Warenwirtschaft: Plan V7.0 — AP-34 erledigt, Umsetzungsstand + Rollout-Hinweis
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-28 09:33:29 +00:00
8c938eed0a Warenwirtschaft: AP-34 — Varianten-Artikelnummer korrekt zuordnen
Bestellungen mit Produktvarianten (z. B. Deocreme MINI) wurden im Versand nicht
automatisch zugeordnet und mussten manuell nachgepflegt werden. Zwei
zusammenwirkende Fehler:

1. Connector (partnercenter-api v1.6.0): compose_cart_content() las per
   get_product_id() das Elternprodukt und sendete dessen SKU — nie die eigene
   Artikel-Nr. der Variation. Jetzt liest get_product() (variations-aware) die
   Variations-SKU, Fallback auf Eltern-SKU nur wenn leer. Plugin muss neu in den
   Shop ausgerollt werden.

2. Importer (ShoppingUserController::prepareOrder): matchte nur den Teil vor dem
   ersten „-" gegen wp_number. In der Live-DB ist jede Variante eine eigene
   products-Zeile mit eigener wp_number (kein main_product_id, keine „-"-Suffixe).
   Jetzt Zuordnung primär über die VOLLE SKU gegen wp_number; der „-"-Split bleibt
   nur Legacy-Fallback für alte Variations-SKUs „basisnr-suffix".

Tests: neue AP-34-Prüfung (MINI 100026 landet beim MINI-Produkt, nicht beim
50-ml-Basisprodukt 100006) + Legacy-Fallback-Test. Suite 327 grün.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-28 09:32:51 +00:00
5c5078bf64 Warenwirtschaft: Plan V7.0 — Kundenentscheide D-1…D-6 eingearbeitet
Klärungspunkte beantwortet (26.08.): Varianten haben eigene Artikelnummer
(Connector sendet künftig Variations-Nr.); Gramm-Rechnung über ml+Dichte auf
Rohstoff- UND Produktebene (Produkt-Füllgewicht, Rohstoff-Dichte); getrennte
pflegbare Buchungsgründe Ein/Aus; Waldbröl auf Köln übernehmen, Funktion bleibt.
Nur D-3 (Shop-Status-Cron) noch kundenseitig in Prüfung. AP-34/35/42/48/50
entsprechend geschärft.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-27 12:07:54 +00:00
d93c676b6b Warenwirtschaft: Entwicklungsplan V7.0 (Testphasen-Feedback 26.08.)
Kundenfeedback aus der Testphase am Code + Live-DB verifiziert und in einen
Umsetzungsplan überführt (AP-34…AP-51, ~15–26 PT): 9 bestätigte Bugs (u. a.
Varianten-Artikelnummer, Produktionsmengen 100 g statt Füllmenge, leere
Rezepturphasen, „Enthalten in"-Doppelung) plus Erweiterungen. WooCommerce-Ampel
ist voraussichtlich shopseitig (Status-Cron/Auth), kein ERP-Fehler. Sechs
Klärungspunkte (D-1…D-6) offen. Noch nichts umgesetzt.

Rohfeedback des Kunden liegt als entwicklungsplan-aktualisiert-2026-08-26.md bei.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-26 11:03:28 +00:00
29ced440b0 Warenwirtschaft: Doku-Ordner sortiert + Gesamt-Roadmap (README)
Product-Management-Ordner in 00-konzept / 01-entwicklungsplaene / 02-audit /
03-status-und-vorschlaege gegliedert (Datei-Moves bereits in 037ec4d). Ergänzt:
- README.md als Einstieg mit grober Roadmap (Ist-Stand live/in Test, erledigte
  APs, offene AP-32/33c/14/15/16/17, Deckel-Varianten-Vorschlag) und Verweisen.
- Leistungsübersicht + Deckel-Varianten-Vorschlag (23.07.) in den Ordner
  einsortiert und nun mitversioniert.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-26 10:38:04 +00:00
037ec4d34b Fix: OAuth-Client-Fehler lösen keine Exception-Mail mehr aus
Bots klopfen /oauth/authorize ohne gültige OAuth-Parameter ab; Passport
wirft dann korrekt einen 4xx-Fehler. Da der Handler bei jeder gemeldeten
Exception mailt und die API ausschliesslich Personal Access Tokens nutzt
(Authorize-Flow nie legitim genutzt), war jede dieser Mails Rauschen.

OAuthServerException wandert in $dontReport – Endpoint-Verhalten bleibt
unveraendert, nur der Mail-Versand fuer diese Client-Fehler entfaellt.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-26 10:25:17 +00:00
93d5afca13 Warenwirtschaft: Review-Fix — toten Code in SalesController entfernt
usersDetail/customersDetail (samt users/usersStore/customersStore) waren
in einem großen Kommentarblock auskommentiert — die darin ergänzten
AP-33-shipped_status_locked-Guards also wirkungslos; der aktive Guard
sitzt in detail(). Block und die bereits auskommentierten Routen
ersatzlos entfernt.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 13:19:26 +00:00
50243a07b4 Warenwirtschaft: Review-Fix — Indizes + schlanke API-Bestellungen-Seite
Indizes auf shopping_orders.shipped/shipped_at/created_at (Board-Filter,
Tages-Kacheln) und products.wp_number (SKU-Auflösung). Die
API-Bestellungen-Seite lud das komplette JSON-payload für alle 500 Zeilen
und serialisierte es in Inline-Attribute; jetzt persistierte
positions_count, Liste ohne payload, Inhalt on-demand über show-Endpoint.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 13:02:47 +00:00
f4256bfc89 Warenwirtschaft: Review-Fix — Hinweis auf kritische Rohstoffe außerhalb der Rezepturen
Der Default-Scope 'recipe' blendet rezepturlose Rohstoffe aus, das
Sidebar-Badge zählt aber alle aktiven kritischen — Badge und Seite
konnten sich widersprechen. Die recipe-Ansicht zeigt jetzt einen Hinweis
mit 'Alle anzeigen', sobald das Badge mehr zählt; Empty-State-Text
scope-abhängig.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 12:43:20 +00:00
80d0687f95 Warenwirtschaft: Review-Fix — Abwicklungs-Board (Copyreader-Links, 500er-Cap, Details)
Bestellnummern-Links auf admin_sales_detail (admin >= 7) waren für
Versand-Mitarbeiter tote Links (stiller Redirect) — jetzt rollenabhängig.
Kachel-Zähler und pick/ready-Filter rechnen über alle offenen
Bestellungen statt über die neuesten 500; gekappt wird nur die Anzeige,
der Hinweis-Banner zeigt 'neueste n von total' korrekt. whereDate durch
indexfähiges whereBetween ersetzt; Packlisten-Toggle über data-order-id;
Gewicht über formatNumber().

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 12:40:03 +00:00
f28f4b4b68 Warenwirtschaft: Review-Fix — Altdaten-PDFs zentral regenerieren (ensureFilesOnDisk)
document('combined') lief bei fehlender Alt-PDF ungeprüft in eine
PDFMerger-Exception (500); der Sammel-Druck prüfte nur den Lieferschein,
eine fehlende Rechnungs-PDF ließ den ganzen Batch platzen. Neue zentrale
InvoiceRepository::ensureFilesOnDisk() ersetzt den dreifach kopierten
Altdaten-Check (MailLogistic 2x, batchDocuments); Merge-/Response-Code im
OrderFulfillmentController zu mergedPdf()/pdfResponse() dedupliziert.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 12:28:41 +00:00
8ad0f65947 Warenwirtschaft: Review-Fix — API-Protokoll markiert verworfene Positionen korrekt
recordTransfer() löste die SKU erneut auf und markierte nur unbekannte
Artikel als Fehler — Zeilen mit gültiger SKU aber fehlender Menge/Preis
wurden verworfen und trotzdem grün protokolliert. prepareOrder() reicht
jetzt included/product_id/product_name durch; failed = Position nicht
übernommen. Entfernt zugleich die N+1-Produkt-Queries je Position.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 10:29:37 +00:00
1b9b6adc44 Warenwirtschaft: Review-Fix — AP-32-Label als Base64 übertragen (Connector 1.5.0)
Die Brücke hätte live nicht funktioniert: Connector 1.4.0 sendete die
label_url aus dem per 'deny from all' geschützten DHL-Ordner (403), dazu
SSRF-Risiko durch serverseitigen Abruf einer Client-URL und Timeout-
Mismatch (20 s Download vs. 5 s WordPress-Default). Der Connector liest
die PDF jetzt vom Shop-Dateisystem (realpath-Pinning auf wp-uploads) und
sendet sie Base64; storeWpLabel() validiert und speichert ohne Http::get;
tote Shop-Link-Fallbacks aus den Views entfernt; Connector-Timeout 30 s.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 10:06:39 +00:00
ddd6dde593 Warenwirtschaft: Review-Fix — Mahnwesen-Storno über OrderStatusService::setShipped
Der Auto-Storno der Zahlungserinnerung schrieb shipped=10 direkt und rief
nur syncSaleStock() — Margen-Storno-Flag, pending_to/shipped_at-Reset und
Promotions-/Guthaben-Folgen fehlten. Die Partnerprovision einer
versendeten, nie bezahlten Bestellung wäre zahlbar geblieben.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 09:47:20 +00:00
3eb14762e7 Warenwirtschaft: Review-Fix — Stichtags-Schutz als unveränderliches Flag (sale_stock_exempt)
Der Schutz historischer Bestellungen hing an shipped_at, das der
OrderStatusService beim Status-Toggle nullt und neu stempelt — Storno +
erneutes Versenden einer Alt-Bestellung hätte rückwirkend vom heutigen
Bestand abgezogen. Migration mit einmaligem Backfill (shipped_at vor
16.07.2026), Guard prüft nur noch das Flag.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 09:41:01 +00:00
e6af987237 Warenwirtschaft: Rohstoffbestand — Default „Nur aus Herstellerrezepturen" (Kundenentscheid 17.07.2026)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 12:07:54 +00:00
4f9dca88de Connector-Plugin 1.4.0: DHL-Label an das Partnercenter übertragen
compose_label_data() liest das Meta-Feld _pr_shipment_dhl_label_tracking
(DHL for WooCommerce); write_order_items() schickt Label-URL + Sendungsnummer
beim wp/order-Transfer mit. Neuer Listener auf pr_save_dhl_label_tracking
reicht Labels nach, die erst nach der Übertragung erstellt werden (nur bei
bereits übertragenen Bestellungen, via neuem wp/label-Endpoint).
Connector-Doku auf die konkrete Umsetzung aktualisiert.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 11:42:30 +00:00
0eed974576 Warenwirtschaft: AP-32-Brückenlösung — DHL-Label aus WooCommerce übernehmen
Bestell-Übertragung (wp/order) akzeptiert wp_label_url + wp_tracking_number:
Label-PDF wird als lokale Kopie im privaten Storage gespeichert (Shop-URL ist
öffentlich erratbar; Kopie überlebt Löschung im Shop), Sendungsnummer landet
in shopping_orders.tracking. Neuer Endpoint wp/label zum Nachreichen
(Connector-Hook pr_save_dhl_label_tracking), wp/status liefert die
Sendungsnummer an den Shop zurück. Abwicklungs-Board + Bestell-Details zeigen
Label-Download (copyreader-Dokumentroute type=label, Fallback Shop-Link) und
Sendungsnummer. Download-Fehler blockieren die Übertragung nie.

Doku: Connector-Update-Anleitung (dev/product management), Hinweise,
Testleitfaden §11, Plan-Protokoll. pint.json schließt dev/ (Fremdcode) aus.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 11:35:40 +00:00
a1f94ea427 Warenwirtschaft: Logistik-Mail regeneriert auch fehlende Rechnungs-PDF
Nachtrag zum Lieferschein-Fix (7d77314): Fehlte die Rechnungs-PDF auf der
Platte (Altdaten), brach MailLogistic::build() still ab — die Mail ging ohne
Anhänge bzw. gar nicht raus, obwohl das UI Erfolg meldete. Jetzt wird die
Rechnung wie der Lieferschein mit bestehender Rechnungsnummer regeneriert.
Hinweise-Doku und Plan-Protokoll fortgeschrieben.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 13:19:12 +00:00
6051aa6ea1 Warenwirtschaft: Doku — Lieferschein-Fix in Hinweisen und Plan-Protokoll
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 12:12:23 +00:00
748f259949 Warenwirtschaft: Doku — Blockabschluss AP-13/33a/33b, Testphase; AP-32/33c nachgelagert (Kundenentscheid 16.07.2026)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 12:05:19 +00:00
96615258e9 Warenwirtschaft: Doku — AP-33b abgeschlossen (Hinweise, Testleitfaden, Plan-Protokoll)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 12:01:19 +00:00
054f26fb38 Warenwirtschaft: Doku — AP-33a abgeschlossen (Hinweise, Testleitfaden, Plan-Protokoll)
Inkl. dokumentationspflichtiger Regel (Kundenwunsch): WaWi-Status hat Vorrang,
Detailseiten überschreiben ihn nicht mehr automatisch.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 11:40:05 +00:00
f1eb5fbc7f Warenwirtschaft: Doku — Kundenentscheide zu AP-33 (versandfertig, Rechnungen, Status-Sperre, Rechte)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 11:20:28 +00:00
425b2a09e0 Warenwirtschaft: AP-33 (Bestell-Abwicklung: Nav „Bestellungen" + Fulfillment-Board) geplant
Kundenanforderung 16.07.2026 als AP-33a/b/c in Plan §4 aufgenommen:
Abwicklungs-Board (Konfektionierung, Dokumente, Versand-Klick), Sammel-PDFs
(Lieferscheine/Rechnungen/Etiketten), Etiketten-Integration mit AP-32;
Klärungspunkte für den Kunden dokumentiert, Roadmap neu nummeriert.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 10:12:41 +00:00
c0476ebe24 Warenwirtschaft: AP-13 — Stichtags-Schutz für vor Einführung versendete Bestellungen
Erneutes Speichern des Versandstatus einer Alt-Bestellung (shipped_at vor
16.07.2026) hätte rückwirkend vom heutigen Bestand abgezogen. syncSaleStock()
überspringt historische Bestellungen jetzt per Stichtag SALE_STOCK_SINCE.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 09:31:23 +00:00
f51da96354 Warenwirtschaft: Doku — Kundenentscheid Self-Shipping ohne Bestandsabzug bestätigt
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 08:56:15 +00:00
9bdf135ed9 Warenwirtschaft: Doku — AP-13 abgeschlossen (Hinweise, Testleitfaden, Plan-Protokoll)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 08:44:50 +00:00
f8956e8832 Warenwirtschaft: AP-32 (Versand mit DHL-Etiketten per API) neu aufgenommen
Kundenanforderung 15.07.: Versand komplett im System inkl. Label-Erstellung
ueber die DHL Parcel DE Shipping API. Gleicher Andockpunkt wie AP-13
(Versand-Statuswechsel). AP-13-Ansatz vom Kunden bestaetigt.
Klaerungspunkte (DHL-Konto, Versandprodukte, CH-Zoll, Druck-Setup) notiert.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 16:14:17 +00:00
f2f06f0ab9 Warenwirtschaft: AP-13-Umsetzungsansatz nach Plugin-Sichtung dokumentiert
Plugin-Trigger verifiziert (Kundendaten automatisch, Warenkorb per
Fulfillment-Button, Status per Cron-Poll). Bestandsabzug wird reiner
Serverseiten-Hook am Versand-Statuswechsel, kein Plugin-Update noetig.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 16:03:20 +00:00
592b03ace5 Partnercenter-API: WooCommerce-Plugin (v1.3.3) als Referenz eingecheckt
Der in den Partner-Shops installierte WooCommerce-Connector, der Bestellungen
per REST an /api/wp/* uebertraegt (Kunde anlegen, Warenkorb, Status-Abgleich).
Grundlage fuer AP-13 (Shop-Bestandsabzug beim Versand).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 15:46:16 +00:00
a14751ed10 Warenwirtschaft: Doku — Kundenentscheide N-1/N-6/N-10 umgesetzt
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 14:10:33 +00:00
8a9b80327c Warenwirtschaft: Doku — Audit-Fix-Roadmap umgesetzt (OPT-6…9 + Niedrig-Paket)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 13:05:10 +00:00
46a832f2be Warenwirtschaft: Audit-Bericht 15.07. + Entwicklungsplan-Protokoll (Bugfix, AP-31)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 12:33:15 +00:00