# DataFirefly Inventory Forecasting — Komplette Anleitung

> Vollständige Anleitung zur Installation, Konfiguration und Nutzung von DataFirefly Inventory Forecasting zur Vorhersage von Lieferengpässen, zur Erstellung von Lieferantenbestellungen und zum Auslösen automatischer Warnungen in WooCommerce.

- Seite: <https://www.datafirefly.com/de/documentation/datafirefly-inventory-forecasting/>
- Sprache: de
- Aktualisiert am: 2026-07-01
- Weitere Sprachen: [fr](https://www.datafirefly.com/documentation/datafirefly-inventory-forecasting/index.md), [en](https://www.datafirefly.com/en/documentation/datafirefly-inventory-forecasting/index.md), [es](https://www.datafirefly.com/es/documentation/datafirefly-inventory-forecasting/index.md), [it](https://www.datafirefly.com/it/documentation/datafirefly-inventory-forecasting/index.md), [pl](https://www.datafirefly.com/pl/documentation/datafirefly-inventory-forecasting/index.md), [nl](https://www.datafirefly.com/nl/documentation/datafirefly-inventory-forecasting/index.md), [pt](https://www.datafirefly.com/pt/documentation/datafirefly-inventory-forecasting/index.md)
- Index: <https://www.datafirefly.com/de/documentation/llms.txt>

## Überblick

DataFirefly Inventory Forecasting ist ein WooCommerce-Plugin für Bestandsprognose, automatische Erstellung von Lieferantenbestellungen und Lieferengpasswarnungen. Es verwandelt dein WordPress-Backend in ein Supply-Chain-Cockpit, ohne den Umweg über einen externen SaaS und ohne Gebühren pro SKU.

Das Plugin stützt sich auf einen **multiplikativen Holt-Winters-Algorithmus**, der deine Verkaufshistorie in zwei Komponenten zerlegt: eine Tendenz, geschätzt per linearer Regression auf einem 7-Tage-gleitenden Durchschnitt, und eine Saisonalität, berechnet als multiplikativer monatlicher Index. Die Prognosen für 30, 60 und 90 Tage werden dann mit dem aktuellen Bestand verglichen, um einen Meldebestand, eine Bestellmenge (unter Berücksichtigung von MOQ und Verpackungseinheit) und ein geschätztes Lieferengpassdatum zu produzieren.

**Positionierung.** Inventory Forecasting ist als selbst gehostete Alternative zu Veeqo, Cin7 oder Lokad konzipiert. Es zielt auf Kataloge von 100 bis einige tausend SKUs, mit oder ohne stabile saisonale Historie.

## Voraussetzungen und Installation

### Technische Voraussetzungen

- WordPress 6.4 oder höher
- WooCommerce 8.0 oder höher
- PHP 8.1 oder höher
- MySQL 5.7 oder MariaDB 10.3 mindestens
- WP-Cron aktiviert (oder ersetzt durch einen System-Cron, der wp-cron.php aufruft)

### Installation

1. Lade das ZIP-Archiv aus deinem Kundenkonto auf datafirefly.com herunter.
2. Gehe in WordPress zu _Plugins → Neu hinzufügen → Plugin hochladen_.
3. Wähle das ZIP aus und klicke auf _Jetzt installieren_.
4. Aktiviere das Plugin. Bei der Aktivierung erstellt es sieben Tabellen mit dem Präfix `wp_dfif_`, deklariert HPOS-Kompatibilität und plant vier tägliche Cron-Aufgaben.

**Post-Installations-Check.** Ein neues Menü _Inventory Forecasting_ erscheint in der Admin-Seitenleiste mit einem Diagramm-Icon. Öffne das Dashboard, um zu bestätigen, dass die KPI-Zähler auf null stehen.

### Erster Start: Historie neu aufbauen

Das Plugin muss deine vergangenen Verkäufe kennen, um Tendenz und Saisonindizes zu kalibrieren. Klicke bei der ersten Benutzung im Dashboard auf _Historie neu aufbauen_. Diese Aktion durchläuft die abgeschlossenen Bestellungen im konfigurierten Fenster (standardmäßig 365 Tage) und aggregiert die verkauften Mengen pro Produkt und pro Tag in der Tabelle `wp_dfif_sales_daily`.

Bei einem Katalog von einigen hundert Produkten mit 12 Monaten Historie dauert der Vorgang ein bis fünf Minuten. Er ist in Blöcke von 100 Bestellungen paginiert und HPOS-kompatibel.

## Kernkonzepte

### Tendenz und Saisonalität

Bei jedem Prognosezyklus baut das Plugin für jedes Produkt eine tägliche Reihe auf, die durch einen 7-Tage-gleitenden Durchschnitt geglättet wird. Eine lineare Regression auf dieser Reihe ergibt die **Tendenz** (Steigung und Achsenabschnitt). Getrennt davon werden die monatlichen **Saisonindizes** als Verhältnis zwischen den Verkäufen jedes Kalendermonats und dem Jahresmittel berechnet, mit einer Untergrenze von 0,3 und einer Obergrenze von 3,0, um Ausreißer zu absorbieren.

Die Prognose am Horizont H Tage kombiniert dann Tendenz und Index des Zielmonats: prognose = durchschnittsverkauf × (1 + tendenz × H) × saisonindex.

### Sicherheitsbestand

Der Sicherheitsbestand wird nach der klassischen Formel z × σ × √lead_time berechnet, wobei z das Normalquantil zum gewünschten Servicegrad ist (1,645 für 95 %, 2,326 für 99 %), σ die Standardabweichung der täglichen Verkäufe und lead_time die Lieferzeit des Lieferanten in Tagen. Diese Reserve absorbiert die zufälligen Nachfrageschwankungen während der Wiederbeschaffung.

### Meldebestand und Bestellmenge

Der **Meldebestand** ist die Bestandsschwelle, die eine Bestellung auslöst. Er entspricht durchschnittsverkauf × lead_time + sicherheitsbestand. In der Praxis muss, sobald der aktuelle Bestand unter diese Schwelle fällt, eine Bestellung ausgelöst werden, um einen Engpass zu vermeiden.

Die **Bestellmenge** ist die zu bestellende Menge. Sie wird auf das Vielfache der Verpackungseinheit (pack size) gerundet und anschließend auf die MOQ (Mindestbestellmenge des Lieferanten) angehoben, falls erforderlich.

### Konfidenzwert

Jede Prognose ist mit einem Konfidenzwert von 0 bis 100 % versehen, der heuristisch anhand der Länge der verfügbaren Historie, der Verkaufsregularität und des Vorhandenseins ausgeprägter Saisonalität berechnet wird. Eine Konfidenz unter 40 % wird rot angezeigt und wechselt automatisch zu einer naiven (gleitender Durchschnitt) Prognose, die vorsichtiger ist.

## Lieferantenverwaltung

### Einen Lieferanten anlegen

Klicke im Menü _Inventory Forecasting → Lieferanten_ auf _Lieferant hinzufügen_. Fülle mindestens Name und E-Mail aus (verwendet für den Versand von Bestellungen). Optionale Felder: Ansprechpartner, Telefon, Postanschrift, Abrechnungswährung und interne Notizen.

### Einen Lieferanten mit einem Produkt verknüpfen

Auf der Bearbeitungsseite eines WooCommerce-Produkts erscheint eine Meta-Box _Inventory Forecasting Lieferanten_ in der Hauptspalte. Sie erlaubt das Hinzufügen eines oder mehrerer Lieferanten für dieses Produkt, jeweils mit eigenen Parametern:

- **Einkaufspreis** ohne Steuer, verwendet auf der Bestellposition
- **Lieferanten-SKU**, oft anders als die interne SKU, wird auf dem PDF gedruckt
- **Lieferzeit** in Tagen, fließt in die Meldebestandsberechnung ein
- **MOQ**, vom Lieferanten geforderte Mindestbestellmenge
- **Verpackungseinheit**, Inkrement, mit dem die Mengen gerundet werden
- **Hauptlieferant**, Radio-Button, der den Lieferanten für die automatische Bestellungserstellung bestimmt

**Mehrere Lieferanten.** Dasselbe Produkt kann mit mehreren Lieferanten verknüpft werden, z. B. einem günstigeren Hauptlieferanten und einem sekundären Reservelieferanten. Nur der Hauptlieferant wird von der automatischen Erstellung verwendet, du kannst aber manuell von der Produktseite auf einen anderen umschalten.

## Prognosen und Horizonte

Die Seite _Inventory Forecasting → Prognosen_ listet alle Produkte mit jeweils der Prognose am ausgewählten Horizont, dem Meldebestand, der zu bestellenden Menge, dem geschätzten Engpassdatum und dem Konfidenzniveau.

### Filter

- **Horizont**: 30, 60 oder 90 Tage (alle drei werden parallel vom Cron berechnet)
- **Schweregrad**: kritisch (Engpass unter 7 Tagen), Warnung (Engpass unter 14 Tagen), normal
- **Suche**: nach Produkttitel oder SKU

### Manuelle Neuberechnung

Der Button _Prognosen neu berechnen_ im Dashboard erzwingt einen sofortigen Zyklus, ohne den 2:30-Cron abzuwarten. Nützlich nach einer Parameteränderung (Servicegrad, Größe des Historienfensters) oder nach einem Massenimport von Bestellungen.

## Lieferantenbestellungen

### Bestellungslebenszyklus

1. **Entwurf**: erstellt, aber nicht versandt, editierbar
2. **Versandt**: PDF generiert und per E-Mail an den Lieferanten geschickt
3. **Teilweise empfangen**: mindestens eine Position, aber nicht alle Mengen empfangen
4. **Empfangen**: alle Mengen erfasst
5. **Storniert**: Bestellung vor Empfang abgebrochen

### Manuelle Erstellung

Der Button _Aus Prognosen generieren_ unter _Inventory Forecasting → Bestellungen_ durchläuft die Produkte unter Meldebestand, gruppiert sie nach Hauptlieferant und erstellt pro Lieferant eine Bestellung im Entwurfsstatus. Anschließend kannst du Mengen bearbeiten, Positionen hinzufügen oder entfernen und versenden.

### Automatische Erstellung

Der 4-Uhr-Cron kann Bestellungen automatisch generieren, mit oder ohne sofortigen Versand. Diese Option ist **standardmäßig deaktiviert**. Nach Aktivierung in den Einstellungen sind zwei Modi möglich: Erstellung als Entwurf (manueller Versand nach Prüfung) oder sofortiger Versand.

**Empfehlung.** Lasse den automatischen Versand mindestens zwei Wochen nach der Installation deaktiviert. Prüfe die Prognoserelevanz, bevor du der vollen Automatisierung vertraust, sonst riskierst du, zu früh oder in zu großen Mengen zu bestellen.

### Natives PDF

Das PDF wird von einer eingebetteten reinen PHP-Engine erzeugt (Helvetica-Schrift, A4-Format, etwa 250 Zeilen Code). Es enthält deinen Firmenkopf, die Lieferantendaten, die Positionstabelle mit Lieferanten-SKU und Einkaufspreis, den Nettosumme und eine anpassbare Fußzeile. Keine Abhängigkeit von Dompdf, TCPDF oder mPDF erforderlich.

### Wareneingang

In der Detailansicht einer Bestellung verfügt jede Position über ein Feld _Empfangene Menge_. Die Eingabe des empfangenen Werts aktualisiert den WooCommerce-Bestand des Produkts um das _Delta_ gegenüber dem vorherigen Wert. Diese Logik verhindert Doppelzählungen, wenn du nachträglich einen Wareneingang korrigierst.

## Engpasswarnungen

Das Plugin erkennt täglich vier Situationstypen und weist jedem einen Schweregrad zu.

### Warnungstypen

- **IMMINENT**: Engpass innerhalb von 7 Tagen erwartet (konfigurierbar), kritischer Schweregrad
- **WARNING**: Engpass innerhalb von 14 Tagen erwartet (konfigurierbar), Warnungs-Schweregrad
- **OVERSTOCK**: Bestandsreichweite über 180 Tage, Info-Schweregrad
- **REORDER**: Bestand unter Meldebestand gefallen, Warnungs-Schweregrad

### Lebenszyklus

Eine Warnung wird mit Status _active_ erstellt. Wenn die Situation im nächsten Zyklus fortbesteht, wird sie als _pending_recheck_ markiert; wenn sie sich aufgelöst hat, wechselt sie in _resolved_ mit Zeitstempel. Dieser Mechanismus verhindert Spam durch wiederholte Warnungen.

### E-Mail-Benachrichtigungen

Ein tägliches Digest wird an die in den Einstellungen konfigurierte Adresse gesendet und listet die neuen kritischen und Warnungs-Meldungen auf. Der Inhalt der E-Mail ist eine schlichte HTML-Tabelle, filterbar nach Schweregrad.

## Einstellungen

Die Seite _Inventory Forecasting → Einstellungen_ gruppiert vier Abschnitte.

### Prognosen

- **Historienfenster**: standardmäßig 365 Tage. Je länger das Fenster, desto robuster die Saisonalität, aber die Tabelle sales_daily wächst.
- **Prognosehorizonte**: kommagetrennte Liste, standardmäßig 30, 60, 90. Du kannst z. B. 14 oder 180 hinzufügen.
- **Servicegrad**: standardmäßig 95 %. Übersetzt zu z = 1,645 über die inverse Normale. Wechsle zu 99 % (z = 2,326) für kritischen Bestand, zu 90 % (z = 1,282) für nicht-strategische Artikel.

### Warnungen

- **Warntage Vorlauf**: standardmäßig 14
- **Kritische Vorlauftage**: standardmäßig 7
- **Empfänger-E-Mail des täglichen Digests**

### Bestellungen

- **Automatische Erstellung aktiviert**: standardmäßig deaktiviert
- **Nummerierungspräfix**: standardmäßig PO-, ergibt Identifikatoren wie PO-2026-00042
- **Währung**: von WooCommerce geerbt, pro Lieferant überschreibbar

### Firma

Firmenangaben, die auf den PDF-Kopfzeilen von Bestellungen gedruckt werden: Firmenname, Adresse, USt-ID oder Steuernummer, E-Mail, Telefon, Logo.

## Cron-Aufgaben

Bei der Plugin-Aktivierung werden automatisch vier Aufgaben in der Site-Zeitzone geplant.

- `02:00` — **Historie-Rebuild**: aggregiert die Bestellungen des Vortags in die Tabelle sales_daily. Leicht, wenige Sekunden.
- `02:30` — **Prognoseberechnung**: berechnet Tendenz, Saisonalität und Meldebestände neu. Schwerer, ein bis fünf Minuten je nach Katalog.
- `03:00` — **Warnungserkennung**: erstellt und löst Warnungen entsprechend den Schwellenwerten. Schnell.
- `04:00` — **Automatische Bestellungserstellung**: läuft nur, wenn die Option in den Einstellungen aktiviert ist.

**WP-Cron.** Standardmäßig läuft WP-Cron nur bei einem Besucher-Hit. Auf einer Site mit wenig Traffic kann das die nächtlichen Aufgaben verzögern. Konfiguriere vorzugsweise einen System-Cron, der wp-cron.php alle 15 Minuten aufruft, oder deaktiviere WP-Cron in wp-config.php und steuere alles vollständig über den System-Cron.

## REST API

Das Plugin stellt mehrere REST-Routen unter dem Namensraum `dfif/v1` bereit. Alle erfordern die Capability `manage_woocommerce` und den WordPress-Nonce `wp_rest`.

```
POST /wp-json/dfif/v1/run-forecast
POST /wp-json/dfif/v1/rebuild-history
POST /wp-json/dfif/v1/detect-alerts
POST /wp-json/dfif/v1/generate-pos
POST /wp-json/dfif/v1/send-po/{id}
POST /wp-json/dfif/v1/po/{id}/items/{item_id}/receive
GET  /wp-json/dfif/v1/stats
```

Diese Routen werden intern von den Dashboard-Buttons (über wp.apiFetch mit X-WP-Nonce-Header) verwendet und können auch von jedem über WordPress-Cookies oder Application Passwords authentifizierten Client aufgerufen werden.

### WordPress-Hooks

Die wichtigsten Plugin-Schritte geben Actions und Filter aus, die du abfangen kannst:

```
do_action('dfif_forecast_calculated', $product_id, $forecast_data);
do_action('dfif_purchase_order_created', $po_id, $supplier_id);
do_action('dfif_purchase_order_sent', $po_id);
do_action('dfif_alert_triggered', $alert_id, $alert_type);
apply_filters('dfif_reorder_qty', $qty, $product_id, $supplier_id);
apply_filters('dfif_pdf_company_info', $info);
```

## Fehlerbehebung

### Prognosen bleiben auf null

Prüfe, ob der Historie-Rebuild ausgeführt wurde und die Tabelle sales_daily Zeilen enthält. Wenn du im konfigurierten Fenster keine abgeschlossenen oder in Bearbeitung befindlichen Bestellungen hast, kann das Plugin nichts vorhersagen. Prüfe auch, dass WooCommerce aktiv ist.

### Prognosen wirken inkohärent

Zwei häufige Ursachen: zu kurze Historie (unter 30 Tagen fällt das Plugin auf eine naive Prognose zurück) oder extreme, nicht repräsentative Saisonalität (isolierter Black Friday). Sieh dir den angezeigten Konfidenzwert an: unter 40 % sollte die Prognose mit Vorsicht behandelt werden.

### PDF wird nicht erzeugt

Prüfe, ob das Verzeichnis `wp-content/uploads/dfif-po/` schreibbar ist. Das Plugin legt dort die PDFs vor dem Versand ab. Eine .htaccess-Datei wird automatisch abgelegt, um den direkten öffentlichen Zugriff zu verhindern.

### E-Mail wird nicht versandt

Das Plugin verwendet wp_mail, das bei manchen Hostern manchmal unzuverlässig ist. Installiere ein SMTP-Plugin (WP Mail SMTP, FluentSMTP) und konfiguriere einen Zustelldienst (Postmark, SendGrid, Mailjet, Brevo). Prüfe auch, ob die Lieferanten-E-Mail eingetragen und gültig ist.

### Cron läuft nicht

Verwende das Plugin WP Crontrol, um die geplanten Hooks aufzulisten und ihre nächste Ausführung zu sehen. Die vier Hooks haben das Präfix `dfif_`. Wenn du sie nicht siehst, deaktiviere und reaktiviere Inventory Forecasting.

## Deinstallation

Bei der Deaktivierung werden die Cron-Aufgaben abgemeldet, Tabellen und Daten bleiben erhalten. Bei der vollständigen Deinstallation über _Plugins → Löschen_ sind zwei Verhalten je nach Option `dfif_delete_data_on_uninstall` in den Einstellungen möglich:

- **Standardmäßig deaktiviert**: Tabellen bleiben erhalten, du kannst ohne Verlust der Historie neu installieren.
- **Aktiviert**: die sieben Tabellen und das Verzeichnis `wp-content/uploads/dfif-po/` werden gelöscht.

## FAQ

### Kann ich das Plugin auf einem variablen Katalog (Produktvariationen) verwenden?

Ja. Prognosen und Bestellungen arbeiten auf Ebene der einzelnen Variation. Jede Variation kann eigene Lieferanten und eigene Parameter haben.

### Ist das Plugin Multisite-kompatibel?

Ja, aber jede Site im Netzwerk verwaltet ihren eigenen Katalog, ihre Lieferanten und ihre Prognosen. Es gibt keine Cross-Site-Bündelung.

### Kann ich die Daten exportieren?

Alle Tabellen sind über Standard-SQL zugänglich. Ein nativer CSV-Export ist für eine spätere Version geplant. In der Zwischenzeit genügt ein einfaches `SELECT INTO OUTFILE` oder ein Plugin wie WP All Export.

### Blockiert das Plugin das Backend, wenn der Cron nicht gelaufen ist?

Nein. Das Plugin funktioniert immer, angezeigte Prognosen können lediglich mehrere Tage alt sein. Ein Badge _Letzter Cron_ im Dashboard zeigt die Datenfrische an.

### Wie verhält sich das Plugin bei einem Katalog mit mehreren tausend SKUs?

Historie-Rebuild und Prognoseberechnung bleiben linear zur Anzahl aktiver Produkte. Bei 5.000 SKUs mit 12 Monaten Historie kalkuliere je nach Serverleistung 10 bis 30 Minuten nächtliche Verarbeitung. Kein Frontend-Performance-Impact: alle Berechnungen sind asynchron.
