Dynamic Pricing Engine — Vollständiger Leitfaden
Vollständiger Leitfaden: Installation, 4 Regeltypen, Segmente, Wettbewerber-Scraping, A/B-Testing, 3-stufige Sicherheiten.
Willkommen zur vollständigen Dokumentation von Dynamic Pricing Engine, der dynamischen Preisengine für WooCommerce von DataFirefly. Dieser Leitfaden behandelt Installation, Erstkonfiguration, jeden Regeltyp, Kundensegmentierung, Wettbewerber-Scraping, A/B-Testing, Protokoll, Sicherheiten und Deinstallation.
Voraussetzungen: WordPress 6.0+, WooCommerce 8.0+, PHP 7.4+. Kompatibel mit HPOS und Checkout-Blöcken.
Installation
Plugin hochladen
- Gehen Sie im WordPress-Backoffice zu Plugins → Installieren → Plugin hochladen.
- Wählen Sie die Datei
dfdynamicpricing.zipund klicken Sie auf Jetzt installieren. - Klicken Sie nach Abschluss der Installation auf Plugin aktivieren.
Was bei der Aktivierung passiert
Das Plugin erstellt 6 benutzerdefinierte Tabellen (mit Präfix wp_dfdpe_):
wp_dfdpe_rules— die Preisregelnwp_dfdpe_logs— das Protokoll der Anpassungenwp_dfdpe_segments— die Kundensegmente (3 automatisch vorgefertigt)wp_dfdpe_competitors— die Wettbewerberverfolgungwp_dfdpe_ab_tests— die A/B-Testswp_dfdpe_ab_events— die Ereignisse für Impressionen, ATC und Conversions
Es werden auch zwei Cron-Aufgaben geplant: das Wettbewerber-Scraping (standardmäßig stündlich) und die Protokollbereinigung (täglich).
Admin-Menü
Ein neues Menü Dynamic Pricing erscheint in der Seitenleiste mit 7 Untermenüs: Dashboard, Regeln, Segmente, Wettbewerber, A/B-Testing, Protokoll, Einstellungen. Alle Aktionen erfordern die WordPress-Berechtigung manage_woocommerce.
Erstkonfiguration (Einstellungen)
Bevor Sie Ihre erste Regel erstellen, machen Sie eine kurze Runde in Dynamic Pricing → Einstellungen, um die globalen Parameter anzupassen.
Protokoll
- Protokoll aktivieren: standardmäßig aktiviert. Jede Anpassung wird mit Produkt, Regel, Kunde, Kontext erfasst.
- Aufbewahrung (Tage): standardmäßig 60 Tage. Die automatische Bereinigung läuft täglich.
Das Protokoll ist auf 1 Eintrag pro Sitzung, Produkt und Stunde begrenzt, um Flooding zu vermeiden. Sie können es vollständig deaktivieren, wenn Sie es nicht verwenden.
Globale Sicherheiten
- Bodenpreis (% des Originalpreises): z. B. 70 = nie unter 70 % des Originalpreises. 0 = deaktiviert.
- Deckenpreis (% des Originalpreises): z. B. 130 = nie über 130 %. 0 = deaktiviert.
- Niemals unter Einkaufskosten verkaufen: aktivieren, wenn Sie die Kosten in einem Produkt-Meta speichern.
- Meta-Schlüssel der Einkaufskosten: standardmäßig
_cost(kompatibel mit WooCommerce Cost of Goods).
Wettbewerber-Scraper
- Ausführungsfrequenz: stündlich, zweimal täglich oder täglich. Der Scraper verarbeitet 25 URLs pro Batch.
Front-Office-Anzeige
- Originalpreis durchgestrichen anzeigen: nützlich für einen sichtbaren Promo-Effekt. Für vertrauliche A/B-Tests deaktivieren.
Erste Regel erstellen
Gehen Sie zu Dynamic Pricing → Regeln → Hinzufügen. Jede Regel hat dieselben Grundfelder, unabhängig von ihrem Typ.
Gemeinsame Felder
- Name: interne Bezeichnung, nützlich im Protokoll (z. B. „Happy Hour 18-20 Uhr“).
- Typ: Uhrzeit, Lager, Kundensegment oder Wettbewerber.
- Status: Aktiv oder Inaktiv. Eine inaktive Regel wird nie ausgewertet.
- Priorität: Regeln werden in aufsteigender Prioritätsreihenfolge ausgeführt. Jede Regel arbeitet auf dem Ergebnis der vorherigen.
- Geltungsbereich: Global, Kategorie, Schlagwort oder bestimmtes Produkt.
- Anpassung: Prozentsatz, Festbetrag, Definierter Wert oder Wettbewerber-Match (nur mit Typ Wettbewerber).
- Boden / Decke: optionale Sicherheiten auf Regelebene.
- Datumsfenster: Start- und Enddaten, um die Regel nur während eines bestimmten Zeitraums zu aktivieren.
- A/B-Test: optionale Verknüpfung zu einem A/B-Test und Variante (siehe A/B-Testing-Abschnitt).
Priorisierungstipp: Beginnen Sie mit breiten (globalen) Regeln mit niedriger Priorität und verfeinern Sie dann mit gezielten Regeln höherer Priorität. Die in Einstellungen konfigurierten globalen Sicherheiten gelten immer zuletzt.
Typ 1 — Zeitregel
Passt den Preis nach Uhrzeit und Wochentag an. Ideal für Happy Hour, Wochenendaktionen oder Nachttarife.
Verfügbare Bedingungen
- Wochentage: wählen Sie einen oder mehrere Tage (Montag bis Sonntag, ISO-Format).
- Startzeit / Endzeit: 24-Stunden-Format. Zeiträume, die Mitternacht überschreiten, werden automatisch behandelt (z. B. 22-02 Uhr).
- Zeitzone: Site (Standard, verwendet die WordPress-Zeitzone) oder eine bestimmte Zeitzone (z. B.
Europe/Berlin).
Konkrete Beispiele
- Happy Hour: −15 %, Donnerstag-Freitag, 18-20 Uhr, Zone Europe/Berlin.
- Wochenendaktion: −10 %, Samstag-Sonntag, 00-23:59 Uhr.
- Nachtpreis: +5 %, jeden Tag, 22-06 Uhr (überschreitet Mitternacht, automatisch behandelt).
Typ 2 — Lagerregel
Passt den Preis nach dem Lagerbestand des Produkts an. Nützlich, um überbestandene Produkte schnell abzubauen oder knapp werdende aufzuwerten.
Verfügbare Bedingungen
- Operator: <, <=, ==, >=, >.
- Schwellenwert: ganze Zahl.
- Modus: Absolut (Anzahl der Einheiten) oder Prozent des Anfangsbestands (erfordert das Meta
_initial_stockim Produkt).
Konkrete Beispiele
- Abverkauf: Lager >= 50 (Überbestand) → −20 %.
- Knappheit: Lager < 5 → +10 %.
- Prozent des Anfangsbestands: Prozent-Modus, Lager < 20 % des Anfangsbestands → −5 %.
Um den Prozent-Modus zu verwenden, fügen Sie ein Meta-Feld _initial_stock zu Ihren Produkten hinzu (via WP All Import, ACF oder ein einfaches update_post_meta). Ohne dieses Meta wird der Prozent-Modus ignoriert.
Typ 3 — Kundensegment-Regel
Wendet eine Anpassung nur auf Kunden an, die zu einem oder mehreren definierten Segmenten gehören.
Verfügbare Bedingungen
- Segmente: ein oder mehrere bestehende Segmente (siehe Segmente-Abschnitt).
- Übereinstimmung: Any (der Kunde gehört zu mindestens einem Segment) oder All (er gehört zu allen).
Konkrete Beispiele
- Treue: Segment loyal-customers, Anpassung −10 %.
- Reaktivierung: Segment dormant (zu erstellen), Anpassung −20 % für 7 Tage.
- B2B: Segment b2b (Rolle
wholesale), Anpassung −25 %.
Typ 4 — Wettbewerberpreis-Regel
Richtet Ihren Preis nach einem Wettbewerber aus, den Sie im Abschnitt Wettbewerber konfiguriert haben. Drei Strategien verfügbar.
Strategien
- Match: Ihr Preis wird genau der Wettbewerberpreis.
- Undercut: Ihr Preis liegt unter dem des Wettbewerbers, prozentual oder als Festbetrag.
- Overprice: Ihr Preis liegt über dem des Wettbewerbers (Premium-Positionierung).
Verfügbare Bedingungen
- Modus: Prozent oder Festbetrag.
- Betrag: Prozent (z. B. 5 für 5 %) oder Betrag in der Währung.
- Maximales Datenalter (Stunden): darüber hinaus werden die gescrapten Daten als zu alt betrachtet und die Regel wechselt zum Fallback-Verhalten.
- Fallback: Verhalten, wenn Wettbewerberdaten nicht verfügbar sind (z. B. neutrale Anpassung anwenden oder Regel überspringen).
Konkretes Beispiel
Undercut 3 % von Wettbewerber A, mit maximalem Alter von 6 Stunden. Wenn Wettbewerber A seit 6 Stunden nicht gescrapt wurde, wird die Regel ignoriert und der Preis bleibt unverändert.
Kundensegmente
Ein Segment ist eine Kombination von Kriterien, die eine Kundengruppe definiert. Einmal erstellt, kann ein Segment von einer Regel des Typs Kundensegment anvisiert werden.
Bei Aktivierung vorgefertigte Segmente
- new-customers: Kunden mit 0 oder 1 Bestellung.
- loyal-customers: Kunden mit 5 oder mehr Bestellungen.
- vip: Kunden, die mindestens 500 € ausgegeben haben.
Segment erstellen
Definieren Sie unter Dynamic Pricing → Segmente → Hinzufügen:
- Name und Slug (automatisch generiert, wenn leer).
- Beschreibung (optional, für Ihr Team).
- Kriterien: fügen Sie so viele Zeilen wie nötig hinzu. Alle Kriterien müssen erfüllt sein (AND-Logik).
- Status: aktiv oder inaktiv.
Verfügbare Kriterienfelder
order_count— Anzahl der Kundenbestellungen.total_spent— Gesamtausgaben (in der Site-Währung).is_guest— 1, wenn der Besucher nicht eingeloggt ist, sonst 0.user_roles— WordPress-Rollen des Kunden (z. B.customer,subscriber,wholesale).days_since_last_order— Tage seit der letzten Bestellung.
Verfügbare Operatoren
Zehn Operatoren: ==, !=, >, >=, <, <=, in, not_in, contains, not_contains.
Für in und not_in trennen Sie die Werte durch Kommas im Wert-Feld (z. B. customer,subscriber).
Fortgeschrittenes Beispiel — Segment „Reaktivierung“: order_count >= 2 + days_since_last_order >= 60. Zielt auf frühere Kunden, die seit 2 Monaten nicht bestellt haben.
Wettbewerber (Scraping)
Der Scraper ruft automatisch den auf einer Produktseite eines Wettbewerbers angezeigten Preis nach konfigurierbarer Frequenz ab. Die abgerufenen Preise werden dann von Regeln des Typs Wettbewerber verwendet.
Wettbewerber hinzufügen
Unter Dynamic Pricing → Wettbewerber → Hinzufügen:
- WooCommerce-Produkt (ID): die ID des lokalen Produkts, an das das Tracking angehängt werden soll.
- Wettbewerbername: freie Bezeichnung (z. B. „Amazon“, „Otto“).
- URL: die zu scrapende Wettbewerber-Produktseite.
- Selektortyp: CSS, XPath, Regex oder JSON-LD.
- Selektor: der Selektor, der auf den Preis zeigt (siehe Beispiele unten).
- Währung: standardmäßig die WooCommerce-Währung der Site.
- Status: aktives oder pausiertes Tracking.
Selektortypen
- CSS: klassischer CSS-Selektor. Beispiele:
.price .amount,#product-price,span[itemprop=price]. - XPath: XPath-Ausdruck. Beispiel:
//span[@class="price"]. - Regex: PHP-regulärer Ausdruck. Beispiel:
/€s*([d,.]+)/— die erste erfasste Gruppe wird verwendet. - JSON-LD: Schema.org-Auto-Erkennung. Sucht nach
price,offers.price,offers.lowPricein JSON-LD-Tags. Lassen Sie das Selektor-Feld leer.
Preis-Parsing
Der Scraper verarbeitet europäische (1 299,90) und amerikanische (1,299.90) Formate automatisch. Währungssymbole und Leerzeichen werden bereinigt.
Manuelle Ausführung
Die Schaltfläche Jetzt scrapen neben jedem Wettbewerber erzwingt eine sofortige AJAX-Aktualisierung. Nützlich zum Testen eines neuen Selektors.
Mögliche Status
- pending — nie gescrapt, wartet auf nächsten Cron.
- ok — letzte Ausführung erfolgreich.
- error — letzte Ausführung fehlgeschlagen (Nachricht im Feld last_error gespeichert).
AGB der Wettbewerber beachten: Der Scraper führt eine einfache HTTP-Anfrage mit kurzem Timeout durch, es liegt jedoch in Ihrer Verantwortung zu prüfen, ob Scraping durch die Allgemeinen Geschäftsbedingungen der Zielsites erlaubt ist. Einige Gerichtsbarkeiten regeln diese Praxis.
A/B-Testing
Das integrierte A/B-Modul ermöglicht es, mehrere Preisstrategien für dasselbe Produkt zu vergleichen und ihre Wirkung in Echtzeit zu messen (Impressionen, Warenkorb-Hinzufügungen, Conversions, RPV).
Test erstellen
Unter Dynamic Pricing → A/B-Testing → Neuer Test:
- Name und Slug.
- Varianten: Liste von Bezeichnungen durch Kommas getrennt. Standard
A,B. - Traffic-Verteilung: relatives Gewicht pro Variante (automatisch normalisiert). Zum Beispiel
50/50,70/30oder1/1/1für drei gleich verteilte Varianten. - Status: Entwurf, Läuft, Pausiert oder Beendet. Nur ein Laufender Test weist Besucher zu.
- Fenster: optionale Start- und Enddaten.
Regel mit Variante verknüpfen
Wählen Sie im Regelformular den A/B-Test und die Zielvariante aus. Die Regel gilt nur für Besucher, die dieser spezifischen Variante zugewiesen sind.
Wie die Zuweisung funktioniert
Bei der ersten Impression weist das Plugin den Besucher einer Variante gemäß den konfigurierten Gewichten zu und speichert diese Wahl dann in einem dfdpe_ab-Cookie. Ein separates Session-Cookie dfdpe_sid verfolgt denselben Besucher über seine gesamte Sitzung, ob eingeloggt oder nicht.
Verfolgte Ereignisse
- exposure — erstes Mal, dass der Besucher einen vom Test betroffenen Preis sieht.
- atc — In den Warenkorb legen (
woocommerce_add_to_cart-Hook). - conversion — abgeschlossene Bestellung (
woocommerce_thankyou-Hook). Der Gesamtbetrag der Bestellung wird erfasst.
Berechnete Metriken (Ergebnisse-Seite)
- Impressionen und Unique Sessions.
- ATC CR — Warenkorb-Hinzufügungsrate (ATC / Impressionen).
- Conv. CR — Konversionsrate (Conversions / Impressionen).
- Umsatz — Gesamtbetrag der Conversions.
- RPV — Umsatz pro Besucher (Umsatz / Impressionen). Dies ist die zentrale Entscheidungsmetrik: Die Variante mit dem höchsten RPV wird automatisch hervorgehoben (Gewinner-Badge).
Best Practice: Lassen Sie einen Test mindestens 2 Wochen laufen, bevor Sie schlussfolgern. Ein zuverlässiger A/B-Test erfordert mehrere tausend Impressionen, um statistische Signifikanz zu erreichen.
Anpassungsprotokoll
Jede im Front-Office angewendete Preisanpassung kann protokolliert werden. Das Protokoll ist über Dynamic Pricing → Protokoll zugänglich.
Erfasste Informationen
- Datum und Uhrzeit.
- Produkt und Variation.
- Ausgelöste Regel (ID).
- Kunde (ID) oder anonyme Sitzung.
- Originalpreis, Endpreis, Anpassungsbetrag.
- A/B-Test und Variante (falls zutreffend).
- Kontext:
frontend,cart,checkout.
Verfügbare Filter
Sie können nach Produkt-ID, Regel-ID oder A/B-Test-ID filtern. Die Paginierung zeigt 50 Einträge pro Seite.
Rate-Limiting
Um Flooding zu vermeiden, begrenzt das Plugin die Erfassung auf 1 Eintrag pro Sitzung, Produkt und Stunde. Eine Sitzung, die dieselbe Produktseite 100 Mal in einer Stunde aufruft, erzeugt nur eine Zeile.
Automatische Bereinigung
Eine tägliche Cron-Aufgabe (dfdpe_cron_purge_logs) löscht Einträge, die älter als die konfigurierte Aufbewahrung sind (standardmäßig 60 Tage).
Sicherheiten: Wie sie funktionieren
Drei aufeinanderfolgende Schutzstufen verhindern, dass Ihr Endpreis ein gefährliches Niveau erreicht.
Stufe 1 — Regel-Sicherheiten
Jede Regel kann ihren eigenen Boden und Decke definieren. Sie gelten unmittelbar nach der Anpassung dieser Regel. Nützlich, um die Auswirkungen einer bestimmten Regel zu begrenzen (z. B. „Happy Hour kann niemals unter 30 € fallen, egal wie der Originalpreis ist“).
Stufe 2 — Globale Sicherheiten
In Einstellungen als Prozentsatz des Originalpreises definiert:
- Bodenpreis: Der Endpreis kann diesen Prozentsatz nicht unterschreiten.
- Deckenpreis: Der Endpreis kann diesen Prozentsatz nicht überschreiten.
Beispiel: 70 % Boden und 130 % Decke. Ein 100-€-Produkt kann niemals unter 70 € fallen noch 130 € überschreiten, unabhängig von den angewendeten Regeln.
Stufe 3 — Selbstkostenschutz
Wenn in Einstellungen aktiviert, verhindert dieser Schutz, dass der Endpreis unter den Wert des Metas _cost (oder den benutzerdefinierten Schlüssel, den Sie konfigurieren) fällt. Dies ist die ultimative Garantie, niemals mit Verlust zu verkaufen.
Die drei Stufen sind kumulativ und werden in dieser Reihenfolge angewendet: Regel → Global → Kosten. Der Endpreis ist immer das „am stärksten geschützte“ Ergebnis der drei.
HPOS- und Cache-Kompatibilität
HPOS (High-Performance Order Storage)
Das Plugin deklariert die Kompatibilität mit custom_order_tables und cart_checkout_blocks bei der Initialisierung. Wenn Sie HPOS in WooCommerce aktiviert haben, ist keine weitere Aktion erforderlich.
Variation-Preis-Cache
WooCommerce speichert die Min- und Max-Preise variabler Produkte über einen Hash. Das Plugin injiziert einen dynamischen Seed (Benutzer + Sitzung + 5-Minuten-Bucket) in diesen Hash über den Filter woocommerce_get_variation_prices_hash, wodurch WooCommerce gezwungen wird, Preise zum richtigen Zeitpunkt neu zu berechnen, ohne den Cache für andere Besucher zu zerstören.
FAQ
Kann ich mehrere Regeln für dasselbe Produkt kombinieren?
Ja. Regeln werden in Prioritätsreihenfolge ausgeführt, jede arbeitet auf dem Ergebnis der vorherigen. Sie können „−10 % VIP“ und dann „Decke bei 130 % der Kosten“ verketten.
Gelten Regeln auch für Warenkorb und Checkout?
Ja. Ein Hook auf woocommerce_before_calculate_totals berechnet die Preise der Warenkorb-Zeilen bei jeder Anzeige neu.
Ist das Plugin mit Server-Caches (Redis, Varnish) kompatibel?
Ja, aber wenn Ihr Cache auf Full-Page-Ebene sehr aggressiv ist, können die angezeigten Preise die gecachten sein. Für zuverlässige dynamische Anzeige schließen Sie Produktseiten aus dem Full-Page-Cache aus oder verwenden Sie ESI-Fragmente.
Kann ich das Plugin deaktivieren, ohne meine Regeln zu verlieren?
Ja. Die Deaktivierung löscht keine Daten. Nur die Deinstallation über Plugins → Löschen löst das uninstall.php-Skript aus.
Wie exportiere ich meine Daten?
Alle Daten werden in den 6 Tabellen wp_dfdpe_* gespeichert. Sie können sie über phpMyAdmin, WP-CLI (wp db export) oder ein beliebiges WordPress-Backup-Tool exportieren.
Deinstallation
Für eine vollständige Deinstallation:
- Deaktivieren Sie das Plugin über Plugins.
- Klicken Sie auf Löschen.
Das Skript uninstall.php entfernt dann:
- Die 6 Tabellen
wp_dfdpe_*. - Die 9 erstellten WordPress-Optionen.
- Die geplanten Cron-Aufgaben.
Die Deinstallation ist endgültig und nicht umkehrbar. Sichern Sie Ihre Regeln, Segmente und Ihr Protokoll vorher, wenn Sie eine Rückkehr ermöglichen möchten.
Support
Ihre Lizenz beinhaltet 12 Monate Support und Updates. Bei Fragen kontaktieren Sie uns über datafirefly.com/contact.