Smart-Rabatte dynamisch & zeitgesteuert: Einrichtung und Hilfe
Schnellstart
- Laden Sie mprdynamicscheduleddiscounts hoch, installieren Sie es und öffnen Sie Geplante Rabatte > Konfiguration.
- Lassen Sie Modul aktivieren eingeschaltet und prüfen Sie Bestand berücksichtigen unter Allgemeine Einstellungen.
- Öffnen Sie Kampagnen und legen Sie Kampagnenname, Rabatttyp und Rabattwert für ein Testprodukt fest.
- Legen Sie Zielprodukte, Startdatum, Enddatum und Aktiv fest; ergänzen Sie "Recurring Windows", wenn Kampagnentyp wiederkehrend ist.
- Legen Sie für die Kampagne Countdown-Timer anzeigen, Countdown-Stil, Badge anzeigen und Badge-Text fest und speichern Sie.
- Öffnen Sie das Produkt und legen Sie es in den Warenkorb; prüfen Sie den Endpreis und die Ausgabe der Theme-Hooks.
- Schließen Sie eine Testbestellung ab, prüfen Sie die Nutzung in der Übersicht und pausieren Sie die Kampagne, um zu prüfen, ob der Rabatt endet.
Erfordert PrestaShop 1.6.1 oder neuer und PHP 7.1 oder neuer.
Einrichtungsanleitung
Installieren und Preisberechnung konfigurieren
Laden Sie mprdynamicscheduleddiscounts hoch, installieren Sie es und klicken Sie auf "Configure". Sie können auch Geplante Rabatte > Konfiguration öffnen. Öffnen Sie Integrität, wenn die Installation fehlende Infrastruktur meldet.
Beginnen Sie mit einem Produkt und einer Kampagne. Prüfen Sie Datum und Uhrzeit des Servers, bevor Sie Kampagnentermine eingeben. Die normalen Start- und Endprüfungen verwenden die PHP-Zeit des Servers. Wiederkehrende Zeitfenster haben eine eigene Zeitzoneneinstellung.
Allgemeine Einstellungen
- Modul aktivieren. Hauptschalter für Kampagnenpreise und die Kampagnenausgabe im Shop; Standard:
1. Stellen Sie dies unter Geplante Rabatte → Konfiguration → Allgemeine Einstellungen ein. - Bestand berücksichtigen. Schließt Produkte mit verfügbarem Lagerbestand von null oder weniger von Kampagnenrabatten aus. Standard:
1. Schalten Sie dies nur aus, wenn die Kampagnen diese Produkte einbeziehen sollen.
Anzeigeeinstellungen
- Countdown-Timer anzeigen. Gespeicherter globaler Standard für die Countdown-Sichtbarkeit; Standard:
1. Stellen Sie dies unter Geplante Rabatte → Konfiguration → Anzeigeeinstellungen ein. - Standard-Countdown-Stil. Gespeicherter globaler Standard für den Countdown-Stil; Standard:
simple. Verfügbare Werte sindsimple,flipundcircle. - Kampagnen-Badge anzeigen. Gespeicherter globaler Standard für die Badge-Sichtbarkeit; Standard:
1. Stellen Sie dies unter Geplante Rabatte → Konfiguration → Anzeigeeinstellungen ein. - Standard-Badge-Farbe. Globale Hintergrundfarbe der Badges; Standard:
#ff0000. - Standard-Badge-Textfarbe. Globale Textfarbe der Badges; Standard:
#ffffff. - Originalpreis anzeigen. Legt den globalen Standard für die Anzeige des durchgestrichenen Originalpreises fest; Standard:
1. - Ersparnisse anzeigen. Speichert die globale Einstellung zur Anzeige von Einsparungen; Standard:
1. Im Shop angezeigte Einsparungen richten sich nach den Anzeigeeinstellungen jeder Kampagne.
Neue Kampagnen übernehmen die globalen Einstellungen für Countdown, Badge, Farben, Originalpreis und Einsparungen. Auch Kampagnen ohne gespeicherte Anzeigeeinstellungen verwenden diese Standardwerte. Beim Speichern einer Kampagne werden ihre eigenen Anzeigeeinstellungen hinterlegt; spätere globale Änderungen überschreiben sie nicht. Originalpreis anzeigen zeigt über den Preis-Hook einen durchgestrichenen Originalpreis an, wenn eine Kampagne den Verkaufspreis reduziert.
Verhaltens- und Dringlichkeitseinstellungen
- Preisanzeigemodus. Steuert den zusätzlichen Kampagnenpreishinweis auf der Produktseite; Standard:
replace.replaceverwendet die normale Preisanzeige des Themes;overlayergänzt über den Hookafter_priceeinen Hinweis auf den Kampagnenpreis. Beide Modi verwenden denselben reduzierten Verkaufspreis. - Rabatte kombinieren. Aktiviert die Kombination von Kampagnen. Standard:
0. Ist dies ausgeschaltet, wird die einzelne Kampagne mit dem höchsten Rabatt verwendet. Ist es eingeschaltet, werden als Kombinierbar markierte Kampagnen in Prioritätsreihenfolge kombiniert und ihre Summe mit der besten nicht kombinierbaren Kampagne verglichen. - Vorrang vor spezifischen Preisen. Verwendet den tatsächlichen Basispreis, wenn ein nativer spezifischer Preis vorhanden ist. Standard:
0. Sind diese Option und Rabatte kombinieren ausgeschaltet, verhindern native spezifische Preise, dass die Kampagnenpreisberechnung einen weiteren Rabatt anwendet. - Dringlichkeitsanzeige anzeigen. Aktiviert den Hinweis auf das baldige Angebotsende und den Dringlichkeitsstil des Countdowns; Standard:
1. - Dringlichkeitsschwelle (Stunden). Legt die Restzeitschwelle für Dringlichkeitstext und -stil fest; Standard:
24. Verwenden Sie eine nicht negative ganze Stundenzahl. Der Wert0deaktiviert den Dringlichkeitszustand.
Der Dringlichkeitshinweis erscheint bei einer aktiven Kampagne, wenn die Restzeit unter dem eingestellten Schwellenwert liegt. Wenn Sie Dringlichkeitsanzeige anzeigen ausschalten, entfallen Hinweis und Dringlichkeitsstil. Der Hinweis kann in den Kampagnenblöcken auf Produktseite und im Warenkorb auch erscheinen, wenn der Countdown-Timer der Kampagne ausgeblendet ist.
Kampagne erstellen
Öffnen Sie Geplante Rabatte > Kampagnen und fügen Sie eine Kampagne hinzu. Füllen Sie die Felder für Kampagne, Rabatt, Zielauswahl und Termine aus und speichern Sie.
- Kampagnenname. Interner Kampagnenname in der Kampagnenliste und im Kampagnenblock der Produktseite; Standard: leer.
- Beschreibung. Kampagnenbeschreibung im Backoffice; Standard: leer.
- Kampagnentyp. Kampagnenbezeichnung/-typ für die Organisation und als Ersatztext des Badges; Standard:
scheduled. Verfügbare Werte sindflash_sale,scheduled,recurring,countdown,early_birdundlast_chance. - Priorität. Legt die Kampagnenreihenfolge fest, höhere Werte zuerst. Standard:
0. Dies ist wichtig, wenn kombinierbare Kampagnen nacheinander angewendet werden; eine schwächere einzelne Kampagne erhält dadurch keinen Vorrang vor einem größeren Rabatt. - Aktiv. Aktiviert oder pausiert eine Kampagne, ohne sie zu löschen; Standard:
1. - Rabatttyp. Legt fest, wie der Rabatt berechnet wird; Standard:
percent. Verfügbare Werte sindpercent,amountundfixed_price. - Rabattwert. Rabattwert für den ausgewählten Rabatttyp; Standard:
0. - Kombinierbar. Erlaubt dieser Kampagne die Kombination, wenn Rabatte kombinieren aktiviert ist. Standard:
0. - Zielprodukte. Wählt Produkte, Kategorien oder Hersteller für die Kampagne aus; Standard: leer, was alle Produkte bedeutet.
- Startdatum. Erstes Datum und erste Uhrzeit, zu denen die Kampagne gelten kann; Standard: vom Händler festzulegender Pflichtwert.
- Enddatum. Letztes Datum und letzte Uhrzeit, zu denen die Kampagne gelten kann; Standard: vom Händler festzulegender Pflichtwert.
Eine leere Auswahl für Zielprodukte umfasst alle Produkte im aktuellen Shop. Begrenzen Sie sie für Ihren ersten Test. Prozentuale Rabatte verwenden den Prozentwert; Betragsrabatte ziehen einen festen Betrag ab; Festpreiskampagnen zielen auf den eingegebenen Zielpreis. Prüfen Sie Steuern, Währung und Kombinationen in einem tatsächlichen Warenkorb.
Wiederkehrende Zeitfenster
Konfigurieren Sie für Kampagnentyp = recurring sowohl "Recurring Windows" als auch die äußeren Startdatum und Enddatum. Wählen Sie eine gültige PHP-Zeitzone und aktivieren und füllen Sie dann die zutreffenden Zeitfenster "Daily", "Weekly" oder "Monthly" aus. Eine wiederkehrende Kampagne ohne gespeichertes aktives Zeitfenster bleibt auch innerhalb ihres äußeren Datumsbereichs inaktiv.
Kampagnenanzeige und Limits
Neue Kampagnen übernehmen die aktuellen globalen Anzeigestandardwerte. Die unten genannten Anzeigestandardwerte sind die Werkseinstellungen; prüfen Sie sie vor dem Speichern.
- Countdown-Timer anzeigen. Countdown-Sichtbarkeit je Kampagne; Standard:
1. - Countdown-Stil. Countdown-Stil je Kampagne; Standard:
simple. - Badge anzeigen. Badge-Sichtbarkeit je Kampagne; Standard:
1. - Badge-Text. Eigener Badge-Text je Kampagne; Standard: leer, wodurch der Kampagnentyp angezeigt wird.
- Badge-Farbe. Badge-Hintergrundfarbe je Kampagne; Standard:
#ff0000. - Badge-Textfarbe. Badge-Textfarbe je Kampagne; Standard:
#ffffff. - Originalpreis anzeigen. Zeigt über den Hook
after_priceden durchgestrichenen Originalpreis an, wenn die Kampagne den Verkaufspreis reduziert; Werkseinstellung:1. - Ersparnisse anzeigen. Sichtbarkeit des Einsparungshinweises je Kampagne; Standard:
1. - Benutzerdefiniertes CSS. Wendet CSS innerhalb der Shop-Ausgabeblöcke dieser Kampagne an; Standard: leer.
- Maximale Gesamtnutzungen. Maximale erfasste Kampagnennutzungen über alle Kunden; Standard:
0, also unbegrenzt. - Max. Nutzungen pro Kunde. Maximale erfasste Kampagnennutzungen für einen Kunden; Standard:
0, also unbegrenzt.
Lassen Sie Badge-Text leer, um den Kampagnentyp als Beschriftung zu verwenden. Die Standardvorlagen verwenden die kampagnenspezifischen Einstellungen für Countdown, Badge, Originalpreis und Einsparungen. Benutzerdefiniertes CSS wird vom Shop-JavaScript innerhalb der Ausgabeblöcke dieser Kampagne angewendet. Dafür muss der Browser konstruierbare Stylesheets und CSS @scope unterstützen; verwenden Sie für shopweite Regeln das Stylesheet Ihres Themes.
Nutzungslimits werden anhand der erfassten Nutzung und der angeforderten Menge geprüft. Die Nutzung wird beim Bestellabschluss erfasst. Testen Sie Warenkörbe mit mehreren Stück und wiederholte Bestellungen, wenn Sie Limits verwenden.
Überlappende Preise verstehen
Wenn Rabatte kombinieren ausgeschaltet ist, wählt das Modul die gültige Kampagne mit dem größten Rabatt. Ist es eingeschaltet, berechnet es eine Kombination gültiger Kombinierbar-Kampagnen in absteigender Priorität und vergleicht das Ergebnis mit der besten nicht kombinierbaren Kampagne. Es verwendet den größeren Rabatt und verhindert einen negativen Endpreis.
Native spezifische Preise werden standardmäßig berücksichtigt. Vorrang vor spezifischen Preisen und Rabatte kombinieren ändern diese Entscheidung. Testen Sie Produkte mit vorhandenen spezifischen Preisen, bevor Sie einen der Schalter ändern. Bei älteren PrestaShop-Versionen verwenden Kampagnenrabatte temporäre Preise für den aktuellen Warenkorb. Das Modul ändert den Basispreis des Produkts nicht dauerhaft.
Badges kennzeichnen die primäre Kampagne. Die angezeigten Einsparungen vergleichen den Originalpreis mit dem endgültigen Verkaufspreis einschließlich kombinierter Rabatte. Prüfen Sie den endgültigen Warenkorbpreis, wenn mehrere Kampagnen kombiniert werden.
Automatisierungsregeln einrichten
Öffnen Sie Geplante Rabatte > "Automation Rules", wenn Sie Ladenhüter gezielt ansprechen möchten. Legen Sie "Rule Name", Aktiv, Priorität, optional Startdatum und Enddatum, "No Sale Days", "Stock Threshold", Rabatttyp, Rabattwert, "Price Floor", "Floor Value", "Exclude Already Discounted Products" und Produkte fest.
Neue Regeln beginnen aktiv, mit Priorität 0, einem Zeitraum ohne Verkauf von 30 Tagen, Bestandsschwelle 0, Prozentnachlass 10, keiner Preisuntergrenze, Untergrenzenwert 0 und aktivem Ausschluss bereits reduzierter Produkte. Prüfen Sie "Preview" vor "Run now". Verwenden Sie "Automation Log", um Ergebnisse zu prüfen. "Rollback" entfernt die aktiven generierten Ziele der Regel.
Das Modul registriert eine gemeinsame Cron-Aufgabe, die Ladenhüterregeln alle 1800 Sekunden auswertet. Stellen Sie sicher, dass Ihr MPR-Cron-Runner konfiguriert ist, bevor Sie automatische Auswertungen erwarten. Normale datierte Kampagnen werden bei der Preisberechnung ausgewertet und benötigen keinen Cron-Lauf, nur um ihr Start- oder Enddatum zu überschreiten.
Kampagnenausgabe testen
- Erstellen Sie eine Kampagne mit aktuellem Datumsbereich und 15 Prozent Rabatt auf ein vorrätiges Testprodukt.
- Öffnen Sie die Produktseite. Prüfen Sie den Preis und das optionale Badge bzw. den Countdown unter PrestaShop 1.7 oder neuer in
displayProductAdditionalInfobzw. unter PrestaShop 1.6 indisplayFooterProduct. Bei PrestaShop-Versionen vor 8 setzt die Ausgabe von Originalpreis, Einsparungen und Kampagnenpreishinweis einen bestehenden Warenkorb voraus. - Öffnen Sie eine Produktliste. Prüfen Sie das Badge an
displayProductListReviews. - Legen Sie das Produkt in den Warenkorb. Prüfen Sie Menge, Steuern und Endpreis. Prüfen Sie den Kampagnenblock im Warenkorb an
displayShoppingCartFooterund die Einsparungen andisplayProductPriceBlockmit Typafter_price. - Schließen Sie eine Testbestellung ab. Prüfen Sie Kampagnennutzung sowie Summen, aktuelle Nutzung und kommende Kampagnen in der Übersicht.
- Pausieren Sie die Kampagne über Aktiv. Prüfen Sie, ob ihr Rabatt endet.
Wenn der Preis unverändert bleibt, prüfen Sie Modul aktivieren, Termine, wiederkehrende Zeitfenster, Zielauswahl, Lagerbestand, Limits und native spezifische Preise. Wenn sich der Preis ändert, aber ein Badge fehlt, prüfen Sie die Anzeigefelder der Kampagne und ob Ihr Theme den Hook ausgibt. Eventuell benötigt das Theme eine Vorlagenanpassung.
Die Übersicht zeigt aktive, geplante, abgelaufene und alle Kampagnen, die gesamte gewährte Rabattsumme, Bestellungen mit Rabatten, Nutzung der letzten 30 Tage und kommende Kampagnen. Ihre Nutzungssummen hängen von erfassten abgeschlossenen Bestellungen ab.
Kampagnen- und Theme-Beispiele verwenden
Beispielwerte einer Kampagne für eine Black-Friday-Produktaktion:
campaign_type = flash_sale
discount_type = percent
discount_value = 15
date_start = 2026-11-27 00:00:00
date_end = 2026-11-30 23:59:59
display_show_countdown = 1
display_countdown_style = flip
display_show_badge = 1
display_badge_text = Black Friday
display_badge_color = #111111
display_badge_text_color = #ffffff
max_uses_total = 0
max_uses_per_customer = 1
Beispiel für eine Festpreiskampagne:
campaign_type = scheduled
discount_type = fixed_price
discount_value = 49.99
display_badge_text = Special price
Theme-CSS kann die Shop-Klassen ansprechen, die von views/css/front/campaigns.css geladen werden:
.mprdsd-badge[data-mprdsd-type="flash_sale"] {
background: #111111 !important;
color: #ffffff !important;
}
.mprdsd-countdown--flip .mprdsd-countdown__value {
background: #111111;
border-radius: 2px;
}
.mprdsd-price__savings-inline {
background: #e8f5e9;
color: #2e7d32;
}
.mprdsd-cart-campaign {
border-color: #111111;
}
Wenn Sie Kampagnenvorlagen überschreiben, behalten Sie die umschließenden Elemente mit data-mprdsd-campaign und data-mprdsd-css bei, damit das benutzerdefinierte CSS der jeweiligen Kampagne angewendet wird.
Pfad für eine Vorlagenüberschreibung zur Änderung des Badge-Markups in Produktlisten:
{* themes/your_theme/modules/mprdynamicscheduleddiscounts/views/templates/hook/campaign-badge.tpl *}
{if isset($mprdsd_campaign) && $mprdsd_campaign && isset($mprdsd_display)}
<span class="mprdsd-badge"
data-mprdsd-type="{$mprdsd_campaign->campaign_type}"
style="background:{$mprdsd_display.badge_color|default:'#ff0000'};color:{$mprdsd_display.badge_text_color|default:'#ffffff'}">
{if isset($mprdsd_display.badge_text) && $mprdsd_display.badge_text}
{$mprdsd_display.badge_text}
{else}
{$mprdsd_campaign->campaign_type|replace:'_':' '|capitalize}
{/if}
</span>
{/if}
Front-Controller-Endpunkte für eigenes Theme-JavaScript:
/module/mprdynamicscheduleddiscounts/ajax?action=getActiveCampaigns
/module/mprdynamicscheduleddiscounts/ajax?action=getProductCampaigns&id_product=123&id_product_attribute=0
/module/mprdynamicscheduleddiscounts/ajax?action=getCampaign&id_campaign=4
Diese AJAX-Routen stellen Kampagneninformationen für die Theme-Integration bereit. Verwenden Sie die vom Shop generierten Modul-URLs, wenn Ihr Shop ein Sprachpräfix oder Unterverzeichnis hat. Prüfen Sie die Endpunktantwort, bevor Sie eigenes JavaScript anbinden.
Deinstallieren
Sichern Sie vor der Deinstallation Kampagnen-, Automatisierungs- und Nutzungsdaten. Die Deinstallationsroutine entfernt temporäre spezifische Preise des Moduls, das Modulmenü und registrierte Cron-Aufgaben und deinstalliert sein Schema. Prüfen Sie Produkt- und Warenkorbpreise nach dem Entfernen erneut. Erwarten Sie nicht, dass Berichte zur Kampagnennutzung die Deinstallation überstehen.
Kompatibilität
Erfordert PrestaShop 1.6.1 oder neuer und PHP 7.1 oder neuer.
Fragen
1
Kann ich eine Kampagne im Formular auf eine Kundengruppe beschränken?
Das aktuelle Kampagnenformular bietet keine Auswahl von Kundengruppen. Der Selektor Target Products speichert Produkte, Kategorien und Hersteller. Eine damit erstellte Kampagne ist kein Angebot nur für Mitglieder. Eine leere Katalogauswahl gilt für den gesamten Katalog im aktuellen Shop.
Bekannte Probleme
10
Ersparnisbeschriftung fehlte
Übersetzte Backoffice-Texte
Beschädigte Übersetzungen
Geplante Rabatte fehlten in Preisen
Rabattregeln nicht durchgehend beachtet
Modul lädt unter PrestaShop 8 und 9 nicht
Verbesserte Sicherheit
Filter der Rabattliste
Modul lässt sich nicht laden
Preisformatierung unter neueren PrestaShop-Versionen fehlerhaft
Funktionsanfragen
7
Implementiert
Wiederkehrende Rabattzeiten mit einstellbarer Zeitzone
Mehrsprachige Verwaltung
Lizenzverwaltung
Modulupdates mit einem Klick
Rabatte für langsam drehende Lagerbestände
Wiederkehrende Rabattzeitpläne
Integration der Omnibus-Preishistorie
Änderungsprotokoll
v1.3.02026-10-04
- Addedautomatic theme detection for Classic and Hummingbird style compatibility
- Addedadmin menu management via MenuInstaller for streamlined module setup
- Addedself-healing integrity checks for automatic diagnostics and repair
- AddedLicense management tab with key management and renewal options
- Addedcomplete FR/DE/ES/IT/PL translations
- Improvedadmin list columns with visual badge indicators and multiselect filters
- Fixedadmin list filters — sorting, searching, and filtering now work correctly on all columns
Ältere Versionen
v1.2.02026-06-29
- AddedPrestaShop 9 and Hummingbird theme compatibility
- Addedperformance-based trigger: apply discount when product sales velocity drops below a configurable threshold
- Improveddiscount scheduling UI with visual calendar displaying active promotion windows
- Fixedrecurring discount not resetting correctly when a promotion window spans a month boundary
- Addedstock-surplus trigger: automatically increase discount percentage when stock exceeds a set level
- Optimized scheduler query performance with compound index on product, date range, and trigger type
v1.0.62026-02-23
- Addedcomplete FR/DE/ES/IT/PL translations
- FixedApply scheduled discounts to product prices
- FixedPass module context to theme detector uninstall
- FixedReplace Tools::displayPrice with PriceFormatter compat wrapper
- FixedRename isEnabled() to avoid conflict with ModuleCore::isEnabled()
v1.0.02025-11-24
- Initialrelease of Smart Dynamic Scheduled Discounts
- InitialTime-based promotions: set start and end datetime for automatic discount activation and deactivation
- InitialStock-level triggers: discount activates when product stock falls below or rises above a threshold
- InitialPerformance triggers: discount fires when product records no sales within a configurable window
- InitialBack-office promotion calendar with upcoming, active, and expired promotion views
v1.1.02025-09-29
- Addedrecurring discount patterns: daily, weekly, and monthly repeat cycles with optional end date
- Addedtime-of-day discounts: configure active hours for flash pricing per timezone
- Improveddiscount conflict resolution with configurable priority when multiple rules match a product
- Fixedscheduled discount not deactivating on time when PS cron runs infrequently
Demo
Testen Sie das vollständige Modul vor dem Kauf
Kaufen Sie die Lizenz später, Ihre Einstellungen bleiben erhalten.
- Ihre 30-Tage-Demo Testen Sie es 30 Tage ab der ersten Installation in Ihrem eigenen Shop.
- Fertiger Demo-Shop Entdecken Sie einen fertigen Demo-Shop im Browser.
- Ohne Registrierung Kein Konto, keine E-Mail-Adresse und keine Shop-Domain nötig.
Mit dem Download akzeptieren Sie die Demo-Bedingungen und die Datenschutzerklärung.
Mit dem Öffnen dieser Demo akzeptieren Sie die Demo-Nutzungsbedingungen und die Datenschutzerklärung.