DataFirefly Inflation Pricing für WooCommerce
WooCommerce-Preise massenhaft erhöhen und dabei Schwellenpreise wie 59, 89 oder 569 behalten.
Was das Plugin tut
DataFirefly Inflation Pricing wendet einen Prozentsatz auf Ihren gesamten WooCommerce-Katalog oder einen Teil davon an und setzt jeden entstehenden Preis anschließend auf eine Schwellenpreis-Leiter, die Sie selbst festlegen. Eine Erhöhung um 3 % bei einem Produkt zu 59 ergibt nicht 60,77, sondern 60,90, oder 69, wenn Sie ganze Zahlen auf 9 bevorzugen.
Der komplette Ablauf besteht aus drei Schritten: Sie beschreiben Geltungsbereich und Prozentsatz, das Plugin berechnet alle neuen Preise und zeigt sie in einer Tabelle, dann bestätigen Sie. Vor dieser Bestätigung wird nichts in die Datenbank geschrieben, und jeder vorherige Preis wird für eine spätere Rücknahme aufbewahrt.
Installation
- Laden Sie das ZIP-Archiv aus Ihrem DataFirefly-Kundenkonto herunter.
- Gehen Sie in der WordPress-Verwaltung zu Plugins, dann Plugin installieren, und klicken Sie auf Plugin hochladen.
- Wählen Sie die ZIP-Datei aus, installieren Sie sie und aktivieren Sie sie.
- Unter WooCommerce erscheint ein neues Menü, Inflation Pricing.
Bei der Aktivierung werden zwei Tabellen angelegt: wp_df_inflation_campaigns für die Kampagnen und wp_df_inflation_items für die Preiszeilen. Das Präfix richtet sich nach Ihrer Installation.
Voraussetzungen: WordPress 5.8 oder höher, WooCommerce 6.0 oder höher, PHP 7.4 oder höher. Das Plugin deklariert die Kompatibilität mit HPOS sowie mit den Warenkorb- und Checkout-Blöcken beim Start.
Die drei Ansichten
Neue Kampagne
Die zentrale Arbeitsansicht. Sie fasst drei Karten zusammen: Erhöhung, Geltungsbereich und Rundung. Hier bauen Sie die Kampagne auf und starten die Vorschau.
Historie
Die Liste aller Kampagnen mit ihrem Status. Von hier aus öffnen Sie das Detail einer Kampagne Zeile für Zeile, wenden eine wartende Kampagne an, nehmen eine angewendete Kampagne zurück oder löschen eine nicht mehr benötigte Kampagne.
Rundungsregeln
Die globalen Einstellungen: Rundungsstufen, Richtung, Erhöhungsgarantie, Berechnungsbasis brutto oder netto, Stapelgröße, Verhalten bei der Deinstallation. Ein Simulator am Seitenende zeigt das Ergebnis an Beispielpreisen.
Rundungsstufen verstehen
Eine Stufe wird durch drei Werte bestimmt:
- Gilt bis: die Obergrenze der betroffenen Preisspanne. Der Wert 0 bedeutet keine Grenze und bezeichnet damit die Stufe, die alle Preise oberhalb der anderen Stufen behandelt.
- Schrittweite: der Abstand zwischen zwei möglichen Preisen.
- Endung: der auf diesen Abstand angewendete Versatz.
Der Endpreis entspricht immer der Schrittweite mal einer ganzen Zahl, plus der Endung. Einige Beispiele:
- Schrittweite 10, Endung 9 ergibt 9, 19, 29, 59, 89, 569, 899
- Schrittweite 1, Endung 0,90 ergibt 9,90, 14,90, 60,90, 99,90
- Schrittweite 5, Endung 4 ergibt 24, 29, 124, 129, 134
- Schrittweite 0,50, Endung 0,40 ergibt 4,40, 4,90, 9,40, 9,90
- Schrittweite 100, Endung 99 ergibt 599, 1299, 2499
Die Endung muss kleiner als die Schrittweite bleiben, sonst hat sie keine sichtbare Wirkung. Eine Schrittweite von 1 mit der Endung 9 erzeugt schlicht alle ganzen Zahlen.
Die Stufe richtet sich nach dem Ausgangspreis
Damit ein Produkt knapp unterhalb einer Grenze nicht in eine deutlich gröbere Spanne springt, wird die Stufe des aktuellen Produktpreises verwendet, nicht die des berechneten Preises. Ein Artikel zu 19,90 bleibt daher auf der Stufe für niedrige Preise, auch wenn die Erhöhung ihn über 20 hebt.
Der Kompromiss zwischen Lesbarkeit und Genauigkeit
Das ist der wichtigste Punkt, den Sie vor dem Start einer Kampagne verstehen sollten. Je gröber die Rundungsleiter, desto weiter entfernt sich die tatsächliche Veränderung vom gewünschten Prozentsatz.
Nehmen wir eine Erhöhung um 3 % bei einem Produkt zu 59. Der berechnete Rohpreis beträgt 60,77. Je nach Leiter:
- Schrittweite 1, Endung 0,90 ergibt 60,90, also +3,2 %
- Schrittweite 5, Endung 4 ergibt 64, also +8,5 %
- Schrittweite 10, Endung 9 ergibt 69, also +16,9 %
Kein Plugin kann diese Arithmetik umgehen: Wenn Sie ganze Zahlen auf 9 verlangen, beträgt der kleinste Abstand zwischen zwei Preisen 10, was bei 59 rund 17 % entspricht. Das Plugin verschleiert diese Tatsache nicht, sondern macht sie vor dem Schreiben sichtbar, über den Simulator, die Spalte Veränderung in der Vorschau und die Obergrenze je Kampagne.
Eine einfache Regel: Die Schrittweite muss klein gegenüber den Preisen der Spanne bleiben. Eine Schrittweite von 1 bei Preisen zwischen 20 und 100 erzeugt Abstände von 1 bis 5 %, was zu einer jährlichen Inflation passt. Eine Schrittweite von 10 in derselben Spanne nicht.
Die Voreinstellungen
Fünf Voreinstellungen füllen die Stufentabelle im Reiter Rundungsregeln mit einem Klick.
- Ausgewogen: die Standardeinstellung. Bis 10 Schrittweite 0,50 Endung 0,40, bis 100 Schrittweite 1 Endung 0,90, bis 300 Schrittweite 5 Endung 4, darüber Schrittweite 10 Endung 9. Die tatsächliche Veränderung bleibt bei einer Vorgabe von 3 % zwischen 2 und 5 %.
- Ganze Zahlen auf 9: bis 100 und darüber, Schrittweite 10 Endung 9. Sie erhalten exakt 59, 89, 569, 899. Die Abweichungen bei niedrigen Preisen sind erheblich.
- Ganze Zahlen auf 4 oder 9: Schrittweite 5 Endung 4 unter 100, Schrittweite 10 Endung 9 darüber. Ein im Handel verbreiteter Kompromiss.
- Dezimalpreise auf 0,90: Schrittweite 1 Endung 0,90 unter 100, Schrittweite 10 Endung 9,90 darüber.
- Keine Schwellenpreis-Rundung: Schrittweite 0,01 Endung 0. Der Prozentsatz wird auf den Cent genau angewendet.
Die Voreinstellungen sind nur ein Ausgangspunkt. Sie können Stufen frei hinzufügen, entfernen oder ändern und anschließend speichern.
Rundungsrichtung und Erhöhungsgarantie
Richtung
- Nächstliegender Schwellenpreis: das empfohlene Verhalten. Der berechnete Preis wandert zum nächstgelegenen Wert seiner Stufe, nach oben oder nach unten.
- Immer aufwärts: der Preis steigt grundsätzlich auf den nächsthöheren Wert. Die Margen sind geschützt, die tatsächlichen Erhöhungen überschreiten die Vorgabe jedoch häufig.
- Immer abwärts: der Preis sinkt auf den nächstniedrigeren Wert. Nur für Preissenkungen sinnvoll.
Erhöhungsgarantie
Bei der Richtung nächstliegender Wert kann ein kleiner Prozentsatz von der Rundung vollständig aufgezehrt werden. Eine Erhöhung um 3 % auf 59 ergibt 60,77, und der nächstliegende Preis auf einer Leiter mit Schrittweite 10 bleibt 59: Der Preis bewegt sich nicht.
Die Option Rundung darf die Erhöhung nie zunichtemachen behebt diesen Fall, indem sie auf den nächsten Wert springt, solange das Ergebnis auf oder unter dem Ausgangspreis liegt. Sie greift nur bei positiven Prozentsätzen. Für eine Preissenkung deaktivieren Sie sie.
Rundung auf dem Brutto- oder auf dem gespeicherten Preis
WooCommerce speichert Preise netto oder brutto, je nach Einstellung Preise inklusive Steuern eingeben. Wenn Ihr Shop Nettopreise speichert und Bruttopreise anzeigt, bringt die Rundung des gespeicherten Werts dem Kunden nichts Lesbares: 49,17 netto ergibt bei 20 % Steuer 59,00 brutto, 49,00 netto dagegen 58,80 brutto.
Die Einstellung Runden auf bietet zwei Verhalten:
- Den Preis, den der Kunde sieht, brutto: Das Plugin rechnet den gespeicherten Preis über die Steuerklasse des Produkts in brutto um, rundet diesen Wert und rechnet vor dem Speichern mit vier Nachkommastellen auf netto zurück. Das ist die Standardeinstellung.
- Den gespeicherten Preis: Die Rundung greift direkt auf den in der Datenbank abgelegten Wert, ohne Umrechnung.
Wenn Ihr Shop bereits Bruttopreise speichert oder die Steuer deaktiviert ist, führen beide Einstellungen zum selben Ergebnis. Als nicht steuerpflichtig markierte Produkte durchlaufen keine Umrechnung.
Eine Kampagne aufbauen
Karte Erhöhung
- Kampagnenname: optional, bei leerem Feld wird ein Name mit Zeitstempel erzeugt.
- Prozentsatz: positiv für eine Erhöhung, negativ für eine Senkung. Zwei Nachkommastellen möglich.
- Angebotspreise: siehe den eigenen Abschnitt weiter unten.
- Produkt überspringen, wenn die tatsächliche Veränderung X % übersteigt: die wichtigste Absicherung. Bei einer Vorgabe von 3 % und einer Obergrenze von 6 % bleibt jedes Produkt außen vor, dessen Rundung eine Erhöhung über 6 % erzeugen würde, mit dem Grund in der Vorschau. Lassen Sie das Feld leer, um diese Prüfung abzuschalten.
Karte Geltungsbereich
- Einzuschließende Kategorien: leer lassen, um den gesamten Katalog zu behandeln. Unterkategorien der gewählten Kategorien werden automatisch einbezogen.
- Auszuschließende Kategorien: hat Vorrang vor der Einbeziehung, Unterkategorien inbegriffen.
- Schlagwörter: beschränkt auf Produkte mit einem der markierten Schlagwörter.
- Produkttypen: einfach, variabel, extern, gruppiert. Variabel anzuhaken behandelt die Varianten, nicht das übergeordnete Produkt, das keinen eigenen Preis hat.
- Produktstatus: veröffentlicht, Entwurf, privat, ausstehend. Bei Varianten wird der Status des übergeordneten Produkts geprüft.
- Regulärer Preis zwischen: zwei optionale Grenzen, die auf dem gespeicherten regulären Preis ausgewertet werden.
- Aktuell reduzierte Produkte überspringen: lässt Produkte mit gesetztem Angebotspreis außen vor.
- Diese IDs oder SKUs ausschließen und Auf diese IDs oder SKUs beschränken: freie Listen, getrennt durch Kommas, Leerzeichen oder Zeilenumbrüche. SKUs werden bei der Auswahl in Kennungen aufgelöst. Bei einem variablen Produkt deckt die ID des übergeordneten Produkts alle seine Varianten ab.
Karte Rundung
Standardmäßig nutzt die Kampagne die globalen Regeln, die oben auf der Karte wiederholt werden. Haken Sie Globale Regeln für diese Kampagne überschreiben an, um Richtung, Erhöhungsgarantie und Berechnungsbasis nur für diese Kampagne anzupassen. Die Stufen selbst bleiben die der globalen Einstellungen.
Das Kästchen Bei der Rücknahme Produkte überspringen, die nach der Anwendung bearbeitet wurden steuert das Rollback-Verhalten. Lassen Sie es in den allermeisten Fällen angehakt.
Die Angebotspreise
Vier Modi stehen bereit. Sie greifen nur bei Produkten, die tatsächlich einen Angebotspreis gesetzt haben.
- Neu berechnen und denselben Rabattsatz beibehalten: der Standardmodus. Ein Produkt zu 100, das für 80 angeboten wird, behält nach der Erhöhung seinen Rabatt von 20 %. Der neue Angebotspreis durchläuft ebenfalls die Rundung.
- Denselben Prozentsatz anwenden: Der Angebotspreis wird genauso behandelt wie der reguläre Preis.
- Unverändert lassen: Der Angebotspreis bleibt strikt gleich. Der angezeigte Rabatt wächst dadurch automatisch.
- Angebotspreis entfernen: Das Angebot wird entfernt, samt Start- und Enddatum.
In jedem Fall wird ein neuer Angebotspreis automatisch entfernt, sobald er den neuen regulären Preis erreichen oder überschreiten würde, um eine Inkonsistenz im Shop zu vermeiden.
Vorschau und Anwendung
Die Schaltfläche Neue Preise in der Vorschau anzeigen löst drei aufeinanderfolgende Vorgänge mit Fortschrittsbalken aus:
- Auswahl der zum Geltungsbereich passenden Produkte und Anlegen der Warteschlange.
- Berechnung des neuen Preises jeder Zeile, in Stapeln.
- Anzeige der Tabelle und der Kennzahlen.
Die Tabelle zeigt je Zeile das Produkt mit einem Link zu seiner Bearbeitungsseite, die SKU, den aktuellen Preis, den neuen Preis, die tatsächliche prozentuale Veränderung, den Angebotspreis vorher und nachher sowie den Status. Ausgelassene Zeilen tragen den Status skipped und einen Grund: kostenloses Produkt, kein regulärer Preis, Preis bereits auf dem Zielwert oder Veränderung über der erlaubten Grenze.
Die Schaltfläche 50 weitere Zeilen laden blättert die Tabelle. CSV herunterladen exportiert die gesamte Kampagne samt ausgelassener Zeilen, was eine Prüfung offline oder eine Freigabe durch Dritte erlaubt.
Solange Sie nicht auf Auf den Katalog anwenden geklickt haben, wurde kein Preis geändert. Die Kampagne bleibt in der Historie mit dem Status Bereit zur Anwendung erhalten und kann später angewendet werden.
Die Anwendung läuft in Stapeln über die Produkt-API von WooCommerce, was die Aktualisierung des angezeigten Preises, der internen Suchtabelle und der Caches sicherstellt. Nach jedem Stapel werden die betroffenen variablen Produkte neu synchronisiert, damit die im Shop angezeigten Mindest- und Höchstpreise korrekt bleiben.
Eine Kampagne zurücknehmen
In der Historienansicht bietet eine Kampagne mit dem Status Angewendet eine Schaltfläche Zurücknehmen. Die Wiederherstellung läuft in Stapeln und setzt jedes Produkt auf seinen ursprünglichen regulären Preis und Angebotspreis zurück.
War die Sicherheitsoption beim Anlegen der Kampagne aktiv, wird jedes Produkt vor der Wiederherstellung geprüft: Stimmt sein aktueller Preis nicht mehr mit dem von der Kampagne gesetzten Preis überein, bleibt die Zeile mit einer klaren Meldung außen vor. So wird eine zwischenzeitlich vorgenommene manuelle Änderung nicht überschrieben.
Das Löschen einer Kampagne entfernt auch ihre Wiederherstellungsdaten. Eine angewendete und anschließend gelöschte Kampagne lässt sich nicht mehr zurücknehmen.
WP-CLI-Befehle
Vier Befehle decken denselben Ablauf ohne Browser ab, was sich für sehr große Kataloge und für Deployment-Skripte eignet.
wp df-inflation preview --percent=3 --categories=15,22
wp df-inflation apply --campaign=12 --yes
wp df-inflation apply --percent=4.5 --types=simple,variable --sale=ratio --yes
wp df-inflation revert --campaign=12 --yes
wp df-inflation campaigns
Verfügbare Optionen: --percent, --name, --categories, --types, --sale (keep, percent, ratio oder remove), --campaign und --yes. Der Befehl preview baut die Kampagne auf und gibt die Kennzahlen aus, ohne etwas zu schreiben, und liefert die Kennung zurück, die mit apply weiterverwendet wird.
Globale Einstellungen
- Preisstufen: die oben beschriebene Tabelle mit den Schaltflächen zum Hinzufügen und Entfernen sowie den Voreinstellungen.
- Richtung und Erhöhung garantieren: Standardwerte, die bei jeder neuen Kampagne vorgeschlagen werden.
- Runden auf: Berechnungsbasis brutto oder gespeicherter Preis.
- Stapelgröße: Anzahl der pro Anfrage verarbeiteten Produkte, von 1 bis 200. Der Standardwert 25 passt zu den meisten Hostings. Senken Sie ihn bei überschrittener Ausführungszeit auf 10, erhöhen Sie ihn auf einem dedizierten Server auf 50 oder 100.
- Deinstallation: Ist das Kästchen angehakt, löscht das Entfernen des Plugins beide Tabellen und die Optionen. Ohne Haken überstehen die Kampagnendaten eine Neuinstallation.
Anpassung für Entwickler
Zwei Filter erlauben Eingriffe in das Verhalten der Engine.
// Einen gerundeten Preis anpassen.
add_filter( 'df_inflation_rounded_price', function ( $result, $raw_price, $tier ) {
return $result;
}, 10, 3 );
// Die von einer Kampagne ausgewählten Produkte anpassen.
add_filter( 'df_inflation_scope_rows', function ( $rows, $filters ) {
return $rows;
}, 10, 2 );
Alle Verwaltungsaktionen setzen die Berechtigung manage_woocommerce voraus. Ajax-Anfragen sind durch einen Nonce geschützt und prüfen diese Berechtigung serverseitig.
Fehlerbehebung
Kein Produkt passt zum Geltungsbereich
Prüfen Sie, ob die angehakten Produkttypen zu Ihrem Katalog passen und ob die angesprochenen Produkte einen regulären Preis besitzen. Bei einem variablen Produkt, bei dem nur die Varianten einen Preis tragen, muss der Typ variabel angehakt sein, nicht der Typ einfach.
Der Fortschrittsbalken bleibt stehen
Verringern Sie die Stapelgröße in den Einstellungen und starten Sie erneut. Ein Stapel von 10 Produkten genügt auf den am stärksten eingeschränkten Hostings. Die Browser-Konsole zeigt das Detail der fehlgeschlagenen Anfrage.
Die neuen Preise erscheinen nicht im Shop
Leeren Sie den Cache Ihres Caching-Plugins und den Server-Cache. Das Plugin löscht die WooCommerce-Transients der geänderten Produkte, hat aber keinen Zugriff auf einen fremden Seiten-Cache.
Die Preise variabler Produkte sind widersprüchlich
Die auf der übergeordneten Seite angezeigten Mindest- und Höchstpreise stammen aus einer WooCommerce-Synchronisierung. Das Plugin stößt sie nach jedem Stapel an. Bleibt eine Abweichung bestehen, erzwingt das Werkzeug WooCommerce, Status, Werkzeuge, Produkt-Transients leeren eine vollständige Neuberechnung.
Eine tatsächliche Veränderung weit über der Vorgabe
Das ist das erwartete Verhalten auf einer groben Leiter. Tragen Sie die Obergrenze je Kampagne ein, um diese Produkte auszuschließen, oder ergänzen Sie eine feinere Stufe in der betroffenen Preisspanne.
Deinstallation
Das Deaktivieren des Plugins löscht nichts: Kampagnen und Wiederherstellungsdaten bleiben in der Datenbank. Das vollständige Löschen über die Plugin-Liste stößt die Bereinigung nur an, wenn die entsprechende Option vor dem Löschen in den Einstellungen angehakt war.