Module Product FAQs
987 AntwortenFragen
Das Modul rendert nur, wenn der Shop nicht im Katalogmodus ist und PrestaShop mehr als eine aktive Währung zurückgibt. Gibt es nur eine aktive Währung, gibt der Hook nichts zurück und es wird kein Selector angezeigt. Die Platzierung hängt außerdem davon ab, ob das Theme den displayNav2-Hook im Header- oder Navigationsbereich rendert.
Ja. Das Modul ist auf PrestaShop 1.7.7 und neuer ausgelegt und läuft unter 1.7.x, 8.x und 9.x mit PHP 7.1 oder höher. Es registriert sich auf den Startseiten-Hooks (displayHome / displayHomeIntro) und lässt sich zudem als Widget einbinden, sodass es ohne Core-Änderungen in unterstützten Themes funktioniert.
Ja. Das Modul registriert seinen eigenen Selektor im displayNav2-Hook und lädt ein Stylesheet, das PrestaShops nativen Desktop-Währungsselektor mit #_desktop_ps_currencyselector { display: none !important; } ausblendet. Der Kunde sieht den kompakten Symbol-Dropdown des Moduls statt des Standard-Währungsblocks.
Es deinstalliert oder bearbeitet PrestaShops natives Währungsmodul nicht. Es rendert einfach einen Ersatz-Dropdown im Header-/Navigation-Hook und versteckt den Standard-Desktop-Block per CSS. Das macht die Änderung reversibel: Deaktivieren oder deinstallieren Sie das Modul, und der native Selektor kann wieder erscheinen, vorausgesetzt das Theme rendert ihn noch.
Der Ersatz nutzt das Symbol der aktuellen Währung im Toggle, zeigt optional das ISO-Label daneben und listet aktive Währungen im Dropdown. Die Defaults sind SHOW_LABEL=0 und SHOW_NAMES=1, sodass der Toggle kompakt bleibt, während der Dropdown weiterhin vollständige Währungsnamen zeigt. Jede Option ist ein nofollow-Link, gebaut mit PrestaShops normalen Currency-Switch-Parametern.
Die Platzierung hängt weiterhin vom Theme ab. Wenn das Theme displayNav2 nicht im Header- oder Navigationsbereich aufruft, hat das Modul keinen Ort, an dem es den Selektor rendern kann, auch wenn die Assets geladen sind.
Es fügt den offiziellen Intercom Messenger zu Ihrem PrestaShop-Shop hinzu. Das Modul lädt den Intercom-Loader auf jeder Seite unmittelbar vor dem schließenden Body-Tag – Sie fügen Ihre Intercom-App-ID nur einmal ein, statt Theme-Templates zu bearbeiten. Das Widget lädt exakt wie der Original-Installations-Snippet von Intercom, sodass Posteingang, Produkttouren und automatisierte Nachrichten voll funktionieren.
Das Modul erstellt GA4-Ereignisse aus echten PrestaShop-Aktionen statt aus einem generischen Seitenaufruf-Tag. Es erfasst Produktansichten, das Hinzufügen zum Warenkorb und Mengenänderungen, den Checkout-Start, abgeschlossene Käufe, Suchanfragen im Shop, Kundenanmeldungen und neue Kontoerstellungen — jeweils mit den passenden GA4-E-Commerce-Parametern. Ein integrierter Ereignis-Builder ermöglicht außerdem eigene Ereignisse für shop-spezifische Interaktionen.
Das Modul rendert nur, wenn der Shop nicht im Katalogmodus ist und PrestaShop mehr als eine aktive Währung zurückgibt. Wenn es nur eine aktive Währung gibt, gibt der Hook nichts zurück, also wird kein Selektor angezeigt. Die Platzierung hängt außerdem davon ab, dass das Theme den displayNav2-Hook im Header- oder Navigationsbereich rendert.
Prüfen Sie zuerst diese Punkte:
- Catalog mode: Wenn Katalogmodus aktiv ist, gibt der Selektor absichtlich einen leeren String zurück.
- Currency count: Das Modul ruft PrestaShops aktive Währungsliste ab und versteckt sich, wenn diese Liste eine oder keine Währung enthält.
- Theme hook: Der Selektor wird nur über
displayNav2gerendert. Manche Custom Themes entfernen oder verschieben diesen Hook. - Native block CSS: Das Modul versteckt
#_desktop_ps_currencyselector. Wenn Sie nur nach dem alten Block suchen, ist er absichtlich verborgen, während dieses Modul aktiv ist.
Wenn der Selektor nach Aktivierung mehrerer Währungen weiterhin nicht erscheint, prüfen Sie die Seitenquelle auf mprcurrency-dropdown. Fehlt dieses Markup, rendert der Hook nicht oder das Modul ist früh zurückgekehrt. Existiert das Markup, aber Sie sehen es nicht, liegt das Problem an Theme-CSS oder Header-Layout, nicht an der Währungsverfügbarkeit.
Das Modul lädt eigenes CSS und JavaScript im Front Office. Das JavaScript öffnet und schließt nur den Dropdown; es erstellt das Selektor-Markup nicht. Ein fehlender Selektor ist also fast immer Katalogmodus, Single-Currency-Konfiguration, fehlender displayNav2-Hook oder Theme-Styling, das den gerenderten Block versteckt.
Melden Sie sich unter app.intercom.com in Ihrem Intercom-Konto an, öffnen Sie Einstellungen > Installation > Web und kopieren Sie die App-ID aus dem Installationscode. Fügen Sie sie in das App-ID-Feld des Moduls ein und speichern Sie. Solange keine App-ID eingetragen ist, bleibt das Widget inaktiv, sodass das Modul niemals ein fehlerhaftes oder leeres Skript ausgibt.
Ja, wenn Sie es aktivieren. Wenn Sie ein GA4-API-Secret konfigurieren, kann das Modul Käufe serverseitig über das Measurement Protocol als Fallback senden, sodass eine Bestellung in GA4 auch dann erfasst wird, wenn das gtag.js-Tag im Browser durch einen Adblocker blockiert oder auf einer fehlerhaften Seite verloren geht. Der Fallback läuft nur, wenn Sie ihn aktivieren und das API-Secret angeben.
Nein. Es nutzt die Währungen, die bereits in PrestaShop konfiguriert sind, und baut Switch-Links mit SubmitCurrency=1&id_currency=.... Es erstellt keine Währungen, bearbeitet keine Wechselkurse und berechnet keine Umrechnungen. Währungsverfügbarkeit, Kurse und Preisverhalten bleiben durch PrestaShops Währungskonfiguration behandelt.
Das Modul liest PrestaShops aktive Währungen, findet die aktuelle Währung aus dem Kundenkontext und rendert einen Link für jede verfügbare Währung. Ein Klick auf einen Link bittet PrestaShop, die ausgewählte Währung des Besuchers zu wechseln; danach behandelt PrestaShop Preisumrechnung, Rundung, Steueranzeige und Formatierung genau wie sonst.
Nutzen Sie PrestaShops eigene Währungseinstellungen für operative Änderungen: Währungen hinzufügen oder deaktivieren, Wechselkurse aktualisieren, Lokalisierung konfigurieren und entscheiden, wie Preise angezeigt werden sollen. Nutzen Sie dieses Modul für die Front-Office-Darstellung des Selektors: Symbol-only Toggle, optionaler ISO-Code im Toggle, optionale Namen im Dropdown, theme-aware Styling und kompakte Header-Fläche.
Eine hilfreiche Sichtweise: PrestaShop besitzt die Geldlogik; das Modul besitzt die Dropdown-UI. Wenn eine Währung im Selektor fehlt, korrigieren Sie zuerst ihren Active-/Available-Status in PrestaShop. Wenn Umrechnungswerte falsch sind, aktualisieren Sie Wechselkurse in PrestaShop statt in diesem Modul.
Ja. Wenn "Benutzerdaten übergeben" aktiviert ist, sendet das Modul E-Mail und Name des angemeldeten Kunden an intercomSettings, sodass Konversationen in Ihrem Intercom-Posteingang bereits zugeordnet ankommen. Gäste sehen den Messenger weiterhin, aber anonym – für nicht angemeldete Besucher werden keine personenbezogenen Daten übermittelt.
Das Modul unterstützt ein einwilligungsbewusstes Laden, sodass das Tracking den Einwilligungsstatus des Besuchers respektiert, und bietet eine datenschutzbewusste, gehashte User-ID statt roher Kennungen. Das Einwilligungsverhalten hängt von den aktivierten Optionen und der externen Einwilligungslösung (z. B. einer CMP) ab, die Sie anbinden. Für Ihre eigene Datenschutz- und Einwilligungskonfiguration bleiben Sie verantwortlich.
Ja. Der Slide-Text — Titel, Untertitel und Button-Beschriftung — wird pro Sprache gespeichert, sodass jede aktive Shop-Sprache eigenen Wortlaut zeigen kann, während Layout und Bilder gemeinsam genutzt werden. Die Übersetzungen pflegen Sie direkt im Modul-Backend.
Ja. Sie legen fest, ob der Messenger auf allen Seiten oder nur auf bestimmten erscheint, schalten die Anzeige auf Mobilgeräten ein oder aus und stellen eine Verzögerung in Sekunden ein, damit das Widget etwas nach der Seite lädt. So bleibt der Shop schnell und der Chat erscheint nur dort, wo er den Kunden wirklich hilft.
Ja. Das Modul enthält einen Ausschluss nach Mitarbeitern und IP-Adressen, sodass Besuche von angemeldeten Mitarbeitern oder von den aufgelisteten IP-Adressen nicht an GA4 gesendet werden. So bleiben interne Tests und Back-Office-Aktivitäten aus Ihren Analyseberichten heraus.
Nein. Banner Revolution zeigt lediglich die von Ihnen konfigurierten Banner, Texte und Call-to-Action-Links an. Es erfasst keine personenbezogenen Besucherdaten und setzt keine Tracking-Cookies, hat also über die von Ihnen verlinkten Seiten hinaus keine eigene DSGVO-Auswirkung.
Ein Diagnose-Panel im Back-Office validiert die GA4-Measurement-ID, bevor das Tracking startet, und prüft die Ereignisübermittlung mit Wiederholungslogik für das Measurement Protocol. Ein Ereignisprotokoll erfasst die vom Modul erstellten und gesendeten Ereignisse, sodass Sie den Dateneingang in GA4 bestätigen können, bevor Sie sich auf die Berichte verlassen.
Das Modul unterstützt PrestaShop 1.6 bis 9.x, einschließlich 8.x, und läuft mit PHP 7.2 und neuer. Die gesamte Konfiguration erfolgt im Back-Office, sodass keine Änderungen an Ihren Theme-Templates nötig sind.
Nein. Es bearbeitet keine Templates und überschreibt keine Theme-Dateien. Es arbeitet über PrestaShops Presenter-Hooks — actionPresentProduct und actionPresentProductListing ergänzen die Bilddaten, die Ihr Theme ohnehin rendert, um loading- und decoding-Werte — sowie über den Hook filterHtmlContent für WYSIWYG-Texte. Ihr Theme behält die volle Kontrolle über das Markup; das Modul liefert nur die Attribute. Nach einer Deinstallation werden die Attribute einfach nicht mehr hinzugefügt und am Theme bleibt nichts verändert.
Nein. Der schwebende LINE-Button wird über die PrestaShop-Hooks displayBeforeBodyClosingTag und displayHeader eingefügt, sodass Ihre Theme- und Template-Dateien nie bearbeitet oder überschrieben werden. Beim Deinstallieren verschwindet der Button rückstandslos.
Ja. Das Modul parst oder überschreibt das endgültig gerenderte HTML einer Seite nicht. Es reichert die Bilddaten auf der Presenter-Ebene an, bevor das Template läuft, und verarbeitet nur bestimmte WYSIWYG-Inhaltsfelder. Da es die Seitenausgabe nie berührt, lässt es sich sicher mit Full-Page-Cache, CCC und CDNs betreiben — es gibt keinen Ausgabepuffer, der invalidiert werden müsste, sodass gecachte Seiten gültig bleiben.
Das Widget öffnet Ihren LINE-Kontaktlink (https://line.me/ti/p/Ihre-LINE-ID) in einem neuen Tab, damit der Besucher in der LINE-App ein Gespräch beginnen kann. Es hängt keine vorausgefüllte oder gespeicherte Nachricht an den Link an, sondern übergibt den Kunden einfach an LINE.
Ja. Fügen Sie bei Bildern in WYSIWYG-Inhalten dem img-Tag die Ausschluss-CSS-Klasse (Standard no-autolazy) hinzu, und das Modul überspringt es. Das ist der empfohlene Weg, um Ihr Above-the-Fold-Hauptbild sofort zu laden, denn das Lazy Loading des größten sichtbaren Bildes kann den Largest Contentful Paint verschlechtern. Inline-Data-URI-Bilder und Bilder mit bereits vorhandenem loading-Attribut werden ebenfalls automatisch übersprungen.
Ja. Über die Seitenausrichtung zeigen Sie den Button auf jeder Seite oder beschränken ihn auf bestimmte Seiten, und ein separater Mobil-Schalter blendet ihn auf Smartphones aus. Eine Ladeverzögerung kann den Button zudem kurz zurückhalten, damit er beim Laden nicht mit der Seite konkurriert.
Es ist ein Browser-Hinweis, der ein Bild außerhalb des Haupt-Threads dekodieren lässt, sodass das Dekodieren eines großen Bildes das Scrollen oder Interagieren seltener blockiert. Es ergänzt loading="lazy". Das Modul fügt es standardmäßig hinzu, bietet aber einen einzelnen Schalter zum Deaktivieren, sodass nur loading="lazy" bleibt. Vorhandene decoding-Attribute werden nie überschrieben.
Produktbilder auf der Produktseite, Produktbilder in Kategorie- und Suchlisten sowie Bilder in WYSIWYG-Inhalten wie Produkt-, Kategorie-, CMS- und Herstellerbeschreibungen. Die ersten beiden werden über die Produkt-Presenter-Hooks verarbeitet, das letzte über den Inhaltsfilter-Hook. Es ist ein gezielter Geschwindigkeits-Helfer — es komprimiert, skaliert oder konvertiert keine Bilder, sondern fügt nur die loading- und decoding-Attribute hinzu.
Der geschlossene Header-Toggle zeigt immer das aktuelle Währungssymbol oder Zeichen, etwa $, €, £ oder den ISO-Code als Fallback. Wenn Show ISO label in toggle aktiviert ist, zeigt der Toggle außerdem den aktuellen ISO-Code neben dem Symbol. Das geöffnete Dropdown listet jede Währung immer mit Symbol/Zeichen auf, und wenn Show currency names in dropdown aktiviert ist, wird zusätzlich der vollständige Währungsname neben jedem Symbol angezeigt.
Der Toggle rendert keinen Hover-Tooltip. Währungsnamen werden in den Dropdown-Zeilen verwendet, einschließlich des Link-title-Attributs für jede Währungsoption.
Ja. Das Modul registriert seinen eigenen Selector im displayNav2-Hook und lädt ein Stylesheet, das den nativen PrestaShop-Desktop-Currency-Selector mit #_desktop_ps_currencyselector { display: none !important; } ausblendet. Der Kunde sieht statt des Standard-Währungsblocks das kompakte Symbol-Dropdown des Moduls.
Aktivieren Sie das Modul, fügen Sie Ihre ActiveCampaign Account ID ein und speichern Sie die Konfiguration. Die Account ID ist der numerische Wert, den ActiveCampaign unter Settings > Tracking > Site Tracking zeigt; sie wird als ACCOUNT_ID gespeichert, und das Modul rendert das Storefront-Script erst, wenn sowohl ENABLED als auch ACCOUNT_ID vorhanden sind.
- Öffnen Sie in PrestaShop die ActiveCampaign-Modulkonfiguration.
- Schalten Sie Enable ActiveCampaign ein.
- Fügen Sie die numerische Account ID ein, zum Beispiel
123456789. - Besuchen Sie eine Storefront-Seite und bestätigen Sie, dass die Seitenquelle das ActiveCampaign Diffuser Script enthält.
Wenn aktiv, lädt der Hook displayBeforeBodyClosingTag ActiveCampaigns Diffuser Script, führt vgo('setAccount', ...) aus, aktiviert Default Tracking und ruft vgo('process') auf. Für eingeloggte Kunden kann es außerdem die E-Mail des Kunden mit vgo('setEmail', ...) übergeben.
Das Script wird direkt vor dem schließenden Body-Tag eingefügt, nicht im Page Head. Das ist nützlich beim Installationscheck: Suchen Sie in der gerenderten Seitenquelle nahe unten nach diffuser-cdn.app-us1.com/diffuser/diffuser.js, vgo('setAccount' und Ihrer Account ID. Wenn diese fehlen, ist entweder das Modul deaktiviert, die Account ID leer oder das Theme führt den displayBeforeBodyClosingTag-Hook nicht aus.
Die Konfiguration hat außerdem ein optionales EVENT_KEY-Feld, aber der aktuelle Storefront-Hook ist nur Site Tracking. Er sendet aus diesem Modulcodepfad keine Custom-ActiveCampaign-Event-Tracking-Calls. Nutzen Sie es, um das offizielle Site-Tracking-Snippet hinzuzufügen und eingeloggte Kunden per E-Mail zu identifizieren; bauen Sie Custom Event Automation separat, wenn Sie tieferes ActiveCampaign Event Tracking brauchen.
Denken Sie beim Datenschutz daran, dass dies ein Tracking-Script ist. Kombinieren Sie es mit Ihrem Consent-Setup, wenn Ihr Store Marketing- oder Analytics-Consent benötigt, bevor Third-Party-Tracking geladen wird, weil dieses Modul selbst kein Cookie-Consent-Gate implementiert.
Ja, eingeloggte PrestaShop-Kunden werden im ActiveCampaign-Tracking-Script per E-Mail identifiziert. Das Modul liest den aktuellen Kunden aus dem PrestaShop-Kontext und sendet die E-Mail nur, wenn der Kunde eingeloggt ist; anonyme Besucher werden ohne E-Mail-Wert getrackt.
Die Prüfung erfolgt im Storefront-Body-Closing-Hook. Tracking wird nur gerendert, wenn das Modul aktiviert ist und eine ActiveCampaign Account ID vorhanden ist. Der Hook weist dann drei Template-Werte zu: die Account ID, die Kunden-E-Mail und ein Boolean, der angibt, ob eine E-Mail gefunden wurde.
Im Template ist vgo('setEmail', ...) in eine Logged-in-Prüfung eingeschlossen, sodass Gäste keinen leeren E-Mail-Call bekommen. Jede getrackte Seite setzt weiterhin Account, aktiviert Default Page Tracking und ruft vgo('process') auf. Das bedeutet, ActiveCampaign kann bekannte Seitenbesuche mit der E-Mail des eingeloggten Kunden verbinden, während Gastbesuche anonym bleiben, bis ActiveCampaign sie über einen anderen Weg identifizieren kann.
Logged in customer -> setAccount + setTrackByDefault + setEmail + process
Guest visitor -> setAccount + setTrackByDefault + processDie erforderliche Einstellung ist die ActiveCampaign Account ID, außerdem muss das Modul aktiviert sein. Der Code prüft beides, bevor er das PrestaShop-Storefront-Script rendert; das Event-Key-Feld wird in der Konfiguration gespeichert, aber das aktuelle Tracking-Template verwendet es nicht.
Bei Installation ist ENABLED standardmäßig 0, ACCOUNT_ID standardmäßig ein leerer String und EVENT_KEY ebenfalls ein leerer String. Der Required-Configuration-Hinweis deklariert nur ACCOUNT_ID als erforderlich, und die Aktivierungsprüfung ist schlicht enabled plus nicht-leere Account ID.
Die Admin-Option bezeichnet die Account ID als numerische ID aus ActiveCampaign Site Tracking, aber dieser Source wendet vor dem Rendering keinen numerischen Validator an. Für eine saubere Einrichtung kopieren Sie die Account ID exakt aus ActiveCampaigns Site-Tracking-Einstellungen, aktivieren das Modul und prüfen dann die Seitenquelle auf das diffuser.js-Script und vgo('setAccount', ...).
ENABLED = 1
ACCOUNT_ID = 123456789
EVENT_KEY = optional, stored but not rendered by tracking.tplNein, dieses Modul sendet keine Produkt-, Warenkorb-, Bestell- oder Custom-ActiveCampaign-Ecommerce-Events. Sein PrestaShop-Code lädt nur Site Tracking, setzt den Account, identifiziert optional die E-Mail eines eingeloggten Kunden und ruft die ActiveCampaign-Page-Processing-Funktion auf.
Die gespeicherte Einstellung EVENT_KEY wird als optional für Custom Events beschrieben, aber das Storefront-Template referenziert sie nie. Es gibt keine Purchase-, Cart-, Product- oder Checkout-Event-Calls im Tracking-Template; die einzigen ActiveCampaign-Calls sind setAccount, setTrackByDefault, optional setEmail und process.
Für Händler ist das praktische Ergebnis Page-Visit-Tracking statt Ecommerce Tracking. Sie können damit ActiveCampaign getrackte Page Views sehen lassen und eingeloggte Kunden per E-Mail identifizieren, aber Order Value, Product IDs, Cart Contents und Line Items werden von diesem Modul nicht gesendet. Wenn Sie diese brauchen, erfordert das eine andere Integration oder neuen Code, der tatsächlich Product-, Cart- und Order-Events hookt.
PrestaShop-Module benötigen jeweils geplante Jobs (Feeds, Cleanups, Syncs), aber für jedes eine eigene Server-Cron-Zeile zu verdrahten ist fragil. Ein Cron Manager gibt Ihnen einen einzigen, token-geschützten Endpunkt, der sie alle ausführt. Mit Cron Manager stellt PrestaShop eine URL wie /module/mprcron/cron?token=… bereit (plus einen cron.php-Entry-Point für CLI- oder HTTP-Aufrufe mit Max-Task- und Kontextoptionen), die jede registrierte Aufgabe der Reihe nach ausführt. Richten Sie einen Server Cron — oder einen externen Dienst wie cron-job.org — auf diese URL in Ihrem gewählten Intervall, und verwalten Sie individuelle Zeitpläne, Aktivierungszustand und Laufhistorie aus dem Back Office statt über crontab. Halten Sie das Token geheim, damit Außenstehende es nicht auslösen können, und starten Sie je nach Zeitkritikalität Ihrer Aufgaben mit einem 5- bis 15-Minuten-Intervall. Zentralisiertes Logging macht auch einen fehlgeschlagenen Job leicht erkennbar.
Der generierte CLI-Befehl ist ein einzeiliger Crontab-Befehl mit dem gemeinsamen Token, zum Beispiel * * * * * php /path/to/modules/mprcron/cron.php --token=TOKEN --max-seconds=300. Der Entry Point verlangt ein Token, begrenzt max_tasks zwischen 1 und 100, begrenzt max_seconds zwischen 10 und 300 und verwendet standardmäßig 20 Aufgaben und 300 Sekunden. Das gemeinsame Token wird als 64-Zeichen-Hex-Wert generiert und mit hash_equals validiert.
Intern besitzt das gemeinsame Package zwei Tabellen: mpr_cron_task für registrierte Tasks und mpr_cron_log für Ausführungshistorie. Jeder Task speichert Modul, Task Key, Label, Callable oder Payload, Executor Type, Schedule, Enabled State, Next Run, Context, Priority und Timeout. Der Runner claimt einen Task, bevor er ihn ausführt, zeichnet completed, failed, skipped, timeout oder crashed States auf und schreibt eine Log-Zeile. Im CLI-Modus kann jeder Task, wenn das lokale cron.php isolierte Tasks unterstützt und proc_open verfügbar ist, in einem Subprozess laufen, sodass ein fataler Task den Rest des Batches nicht stoppt.
Ein guter FAQ-Bereich beantwortet Käuferfragen, bevor sie eine E-Mail senden, und erfasst Long-Tail-Suchtraffic. Um PrestaShop einen solchen Bereich hinzuzufügen, verwenden Sie FAQ Manager: Es erstellt einen öffentlichen FAQ Hub mit Kategorie-, Tag-, Such- und Fragerouten, zeigt einen Product FAQ Tab über displayProductExtraContent und kann kategoriebezogene FAQ-Inhalte als Left-Column-/Sidebar-Block über displayLeftColumn anzeigen. Sie speichern Fragen, Kategorien, Tags und Produkt- oder Kategoriezuweisungen, sodass dieselbe Antwort im Hub und auf jedem zugehörigen Produkt erscheinen kann. Kunden können eigene Fragen zur Moderation einreichen, und genehmigte Community-Antworten mit Helpful Votes ergänzen frische Inhalte. Für SEO geben Sie jeder indexierbaren Frage einen eindeutigen Title und eine Meta Description, halten Antworten wirklich hilfreich statt Einzeiler und verwenden FAQ Schema nur, wo es korrekt und weiterhin nützlich für Ihr Such-/Anzeigeziel ist.
Praktisch starten Sie im FAQ-Adminmenü: Erstellen Sie FAQ-Kategorien und fügen Sie dann Fragen mit mehrsprachigem Fragetext, Antwort-HTML, Friendly URL, Meta Title und Meta Description hinzu. Wenn die Friendly URL leer bleibt, generieren Kategorien einen Slug aus dem Kategorienamen und Fragen einen Slug aus dem Fragetext. Eine öffentliche Frage ist nur sichtbar, wenn sie aktiv ist, ihr Publish Date leer oder bereits vergangen ist und die aktuelle Kundengruppe erlaubt ist. Sie können außerdem ein Answer Reveal Date setzen, sodass die Frage existieren kann, bevor die Antwort angezeigt wird.
- Verwenden Sie Categories für öffentliche FAQ Hubs und für das Mapping von FAQ-Kategorien zu PrestaShop-Kategorien, wo Kontextblöcke auf Kategorieseiten nützlich sind.
- Verwenden Sie Questions für die echten FAQ-Einträge; weisen Sie Produkte direkt zu, wenn eine Frage in einem Product FAQ Tab erscheinen soll.
- Verwenden Sie Tags, um FAQ-Suche, Tag-Seiten und interne Entdeckung zu verbessern.
- Verwenden Sie Pending Questions und Additional Replies, um Besucher-Einreichungen zu moderieren, bevor sie öffentlich werden.
Für Produktseiten sollten Sie sich nicht auf breite Kategorie-Mappings verlassen, wenn Sie eine exakte Produkt-FAQ benötigen. Der Product Tab lädt Fragen aus der direkten Product-Question-Assignment-Tabelle und gibt nichts zurück, wenn diesem Produkt keine Frage zugewiesen ist. Fragen, die genau einem Produkt zugewiesen sind, können eine Antwort im initialen Produktseiten-HTML rendern; Fragen, die über mehrere Produkte geteilt werden, gelten als related/shared, und ihre Antworten werden erst beim Öffnen lazy-loaded. Dadurch werden große Troubleshooting-Artikel nicht in jede Produktseite injiziert, und störender Duplicate Content wird vermieden.
Kategorieseiten werden von diesem Modul nicht als Tab gerendert. Die Kategorieintegration ist ein Left-Column-/Sidebar-Block, der eine begrenzte Menge Fragen für die aktuelle Kategorie lädt und sie in die FAQ-Erfahrung verlinkt.
Die SEO-Steuerungen sind bewusst granular. FAQ Hub Indexing ist standardmäßig an, aber Kategorieseiten, Tag-Seiten und einzelne Frageseiten werden nicht indexiert, sofern nicht der jeweilige globale Schalter aktiviert ist und, bei Kategorien oder Fragen, die Entität selbst als indexierbar markiert ist. Suchseiten sind immer noindex. Meta Title- und Meta Description-Felder fallen auf sichtbaren Titel, Kategoriebeschreibung oder Answer Excerpt zurück, wenn sie leer bleiben, und Canonical URLs werden aus lokalisiertem FAQ Slug, Category Slug und Question Slug gebaut.
Schema ist ein Schalter, keine automatische Magie. Die Einstellung ist SCHEMA_ENABLED und standardmäßig 0; der Admin-Hinweis sagt, dass Google FAQ Rich Results im Mai 2026 deprecated hat. Behandeln Sie es daher als optionale Structured Data, nicht als garantierten Rich-Result-Trigger. Scheduled-Answer-Handling ist nicht in jedem Schema-Pfad des aktuellen Codes konsistent: Die Front-Question- und Category-JSON-LD-Builder prüfen answer_visible, aber die Module-Level-Header-QAPage-Ausgabe liest questionData['answer'] direkt, und der FAQ-Hub-Schema-Query-/Build-Pfad prüft date_response oder answer_visible nicht. Wenn Sie verzögerte Antworten nutzen, lassen Sie Schema deaktiviert oder fixen diese Pfade, bevor Sie sich darauf verlassen, dass Schema künftige Antwortinhalte verbirgt.
Der Besucher-Submission-Flow ist moderiert. Ask a Question ist standardmäßig aktiviert, validiert Name, E-Mail und Fragetext, begrenzt Fragetext auf 5000 Zeichen, nutzt ein Honeypot-Feld und speichert das Element in mprfaq_pending mit Pending-Status. Das Standard-Rate-Limit ist ASK_MAX_PENDING=2 ausstehende Fragen pro E-Mail und Top-Level-Produktkategorie; setzen Sie es nur auf 0, wenn Sie bewusst kein Pending-Question-Limit möchten. Wenn der Besucher von einer Produktseite fragt und keine FAQ-Kategorie geliefert wird, löst der Controller eine Kategorie aus dem Produktkontext auf.
Öffentliche Replies sind von der offiziellen Antwort getrennt. CA_ENABLED ist standardmäßig 0; wenn aktiviert, kann das Modul Login verlangen, validiert Autorendetails, begrenzt Reply-Text auf 5000 Zeichen und speichert die Reply als Pending. Genehmigte Additional Replies können als Community Answers erscheinen und gevotet werden. Helpful Votes sind auf eine Stimme pro IP je Frage oder Antwort begrenzt, mit einem PrestaShop-Cookie, das nur dazu dient, den UI-Zustand des Besuchers zu merken.
FAQ_SLUG=faq
FAQ_HUB_INDEXABLE=1
FAQ_CATEGORY_INDEXABLE=0
FAQ_TAG_INDEXABLE=0
QUESTION_INDEXABLE=0
SCHEMA_ENABLED=0
ASK_ENABLED=1
ASK_MAX_PENDING=2
CA_ENABLED=0Für eine SEO-FAQ ist die praktische Regel: Halten Sie den Hub breit, machen Sie nur starke eigenständige Kategorie- oder Frageseiten indexierbar, weisen Sie Produktfragen direkt zu und lassen Sie kleine produktspezifische Antworten im Product Tab. So erhalten Kunden Antworten dort, wo sie sie brauchen, während der Index auf Seiten fokussiert bleibt, die eigenständig bestehen können.
Ja, Sie können nach IP, CIDR Range, Country Code oder User-Agent Pattern blockieren, einschließlich checkout-only Scope. Der PrestaShop Ban Manager prüft zuerst Whitelist-Einträge, dann aktive Ban-Regeln und wendet je nach aktuellem Request-Kontext full, checkout oder authentication Scope an.
Das Ban-Formular unterstützt eine einzelne IP, eine Wildcard-IP wie 192.168.1.*, eine IP Range wie 1.1.1.1-1.1.1.255, CIDR wie 192.168.1.0/24, einen Country ISO Code und ein User-Agent Pattern. User-Agent-Regeln können Plain Text sein, case-insensitive gematcht, oder eine Regex in Slashes.
Scope basiert auf dem aktuellen Controller. Checkout Scope gilt für order, orderopc, cart, supercheckout, onepagecheckout und checkout. Login/Auth Scope gilt für authentication, my-account, identity, registration und password. Full Bans werden vor scope-spezifischen Bans geprüft, sodass ein Full Ban den Besucher überall blockiert.
- Enablement:
BAN_ENABLEDwird standardmäßig enabled installiert. - Temporary bans: Ein Ban kann
date_expiryhaben; abgelaufene aktive Bans werden beim Laden aktiver Bans deaktiviert. - Message: Jeder Ban kann eine eigene Nachricht haben, andernfalls fällt das Modul auf die konfigurierte mehrsprachige Standardnachricht zurück.
- Multishop: Ban-Datensätze mit
id_shop=0gelten global, während shop-spezifische Bans nur im aktuellen Shop-Kontext gelten.
Checkout-only CIDR example:
ip_cidr = 203.0.113.0/24
ban_type = checkout
reason = Repeated fraudulent checkout attemptsMit der Zeit füllt sich eine PrestaShop-Datenbank mit Daten, die Sie nicht mehr benötigen: abgebrochene Warenkörbe, verwaiste Warenkorbzeilen, abgelaufene Specific Prices und Cart Rules, alte Connection- und Guest-Datensätze, Suchstatistiken, Mail- und 404-Logs, Page Views und geschlossene Kunden-Threads. Unkontrolliert verlangsamen diese Tabellen Abfragen und blähen Backups auf. Um sie sicher zu löschen, verwenden Sie Cleanup Revolution: Es gruppiert jede Bereinigung in benannte Tasks, zählt die betroffenen Zeilen vor der Löschung, unterstützt Dry-run-Previews standardmäßig und zeichnet echte Löschläufe in der Cleanup History auf. Starten Sie mit abgebrochenen Warenkörben älter als 30 Tage und alten Such-/Connection-Statistiken, prüfen Sie die Preview Counts und löschen Sie dann in Batches. Erstellen Sie immer zuerst ein Datenbankbackup. Für laufende Pflege planen Sie Tasks, statt sie manuell auszuführen; siehe unseren PrestaShop performance guide.

Before any real cleanup, make a fresh database backup and run the module preview first. Do not delete rows manually with SQL; use Cleanup Revolution's dry-run counts, review the affected tasks, then run the cleanup from the module in controlled batches.
mysqldump -u db_user -p db_name > prestashop-before-cleanup.sqlDie Standardkonfiguration ist bewusst konservativ: Dry Run ist standardmäßig aktiviert, Trash Mode ist aktiviert, abgebrochene Warenkörbe standardmäßig 30 Tage, viele Logs/Statistiken 90 Tage, geschlossene Kundenthreads 180 Tage, leere Accounts 365 Tage, und die Engine nutzt Batch Sizes je Task plus ein Total Limit von 50000. Ein Task ohne zu entfernende Zeilen wird vom Bulk Runner übersprungen, und echte Löschung erfolgt in Batches statt als ein riesiges Statement.
Ein Audit-Log-Detail ist wichtig: Dry-run-Ausführungen geben die betroffene Anzahl zurück, bevor MPRCleanupLog::record() aufgerufen wird. Dry-run-Previews werden daher nicht in die Cleanup History geschrieben. Echte Datenbank-Cleanup-Läufe werden mit dry_run = 0 protokolliert. Manuelle Aktionen im Back Office rufen DatabaseCleanupEngine::executeTask(..., $employeeID) oder DatabaseCleanupEngine::executeAll($dryRun, $employeeID) auf, daher verwenden sie den Standardwert trigger_type = manual und speichern die Mitarbeiter-ID, wenn eine verfügbar ist. Die geplante Datenbankbereinigung ruft MPRCleanupRevolution::cronDBCleanup() auf, wodurch DatabaseCleanupEngine::executeAll(false, null, 'cron') übergeben wird. Diese Protokolleinträge speichern daher trigger_type = cron ohne Mitarbeiter-ID.
Die Database Cleanup Engine enthält benannte Tasks für abgebrochene Warenkörbe, verwaiste Cart Products, Suchstatistiken, abgelaufene Specific Prices, abgelaufene Cart Rules mit Nullmenge, alte Logs, alte Connections, verwaiste Connection Rows, alte Guests, Mail Logs, 404 Logs, Page Views, geschlossene Customer Threads und Referrer Cache. Sie hat außerdem risikoreichere kommerzielle Cleanups wie Gastkonten ohne Bestellungen, verwaiste Adressen und alte registrierte Konten ohne Bestellungen oder aktuelle Warenkörbe. Die Cron-Defaults trennen Arbeit in Datenbankbereinigung, Dateibereinigung und Tabellenoptimierungsfenster, sodass Sie Wartung automatisieren können, ohne jede schwere Operation gleichzeitig laufen zu lassen.
Wenn Sie nur einen klaren Accept-or-deny-Cookie-Hinweis benötigen, ist ein leichtgewichtiges Banner die einfachste Implementierung. Lightweight Cookie Banner rendert das Banner über Footer-Level-Hooks, speichert die Wahl des Besuchers in einem Consent Cookie und lässt Sie Bannertext, Buttons, Farben, Position, Datenschutzerklärungslink und die Dauer der Einwilligung konfigurieren, bevor erneut gefragt wird (standardmäßig 365 Tage). Es ist bewusst minimal - keine schweren Scripts - und verlangsamt Ihren Shop daher nicht. Nutzen Sie es, wenn Ihre Tracking-Fläche klein ist und Sie Besucher hauptsächlich informieren und ihre Wahl speichern müssen. Wenn Sie außerdem Scripts bis zur Einwilligung blockieren, Consent Records loggen oder granulare Präferenzen je Kategorie anbieten müssen, ist eine full consent platform die passendere Wahl. Kombinieren Sie das Banner immer mit einer korrekten, aktuellen Cookie- und Datenschutzerklärung.
Das Modul ist standardmäßig aktiviert, Position bottom-left, Buttons nebeneinander, Dark Theme, COOKIE_EXPIRY von 365 Tagen, Google Consent Mode aktiviert und DEFAULT_CONSENT auf denied. Es kann als Full-width Top- oder Bottom-Bar, Corner Banner, Floating Bottom Banner oder Center Modal mit Overlay rendern. Die Besucherwahl wird im First-Party-Cookie mprcookie_consent mit entweder granted oder denied gespeichert; JavaScript schreibt es mit path=/, SameSite=Lax und Secure, wenn der Shop über HTTPS läuft.
Wenn Google Consent Mode aktiviert ist, injiziert der Header Hook das Default-Consent-Signal und lädt head-sichere Assets/Config; er rendert nicht das sichtbare Banner-Markup. Das Banner-Markup wird aus displayFooterAfter oder displayFooter gerendert, mit Guard, sodass es nur einmal ausgegeben wird, und das Front-Script sendet nach Accept oder Deny des Besuchers ein Consent Update. Das Modul kategorisiert keine Cookies, schreibt keine Third-Party-Scripts um und führt keine Consent-Log-Tabelle. Es warnt außerdem, wenn Cookies Revolution verfügbar ist, weil nur ein Cookie-Consent-Modul den Storefront gleichzeitig steuern sollte.
Für vollständige GDPR- und ePrivacy-Compliance brauchen Sie mehr als ein Banner: Käufer müssen Cookies nach Zweck akzeptieren oder ablehnen können. Cookies Revolution ergänzt PrestaShop um granulare Einwilligung mit den Standardkategorien — notwendig, funktional, Analytics und Marketing — und ein Präferenzpanel, in dem Besucher alles akzeptieren, optionale Kategorien ablehnen oder eine individuelle Auswahl speichern können; ihre Wahl wird in einem Consent Cookie gespeichert. Es kann außerdem passende Tracking Scripts bis zur Einwilligung blockieren, Tags so umschreiben, dass sie nur für erlaubte Kategorien laufen, und Consent Records mit gehashten Identifiers für Ihren Audit Trail loggen. Vorherige Einwilligung (keine vorangekreuzten optionalen Kästchen) und Widerruf genauso einfach wie Zustimmung sind gesetzliche Anforderungen — dies deckt beides ab. Kombinieren Sie es mit Google Consent Mode v2, damit Ihre Google Tags sich automatisch an die Wahl jedes Käufers anpassen.
Bei der Installation erstellt das Modul Tabellen für Kategorien, Cookies, Script Rules, Consent Logs, Scan Results und Design. Die angelegten Kategorien sind necessary, functional, analytics und marketing; necessary ist erforderlich und standardmäßig aktiviert, während die optionalen Kategorien standardmäßig aus sind, sofern Sie den Default Consent Mode nicht ändern. Der gespeicherte Browserzustand ist kompakt, zum Beispiel necessary:1|functional:0|analytics:0|marketing:0 in mprcr_consent, mit einem separaten mprcr_version-Cookie, das verwendet wird, wenn RECONSENT_ON_CHANGE aktiviert ist.
Script Blocking funktioniert in zwei Schichten. Bei der Serverausgabe schreibt das Modul passende externe Scripts zu type="text/plain" mit data-cookiecategory um und speichert die ursprüngliche Quelle in data-original-src; es kann außerdem passende Inline Scripts anhand von Script-Content-Regeln umschreiben. Browserseitig prüft ein MutationObserver dynamisch injizierte Scripts gegen dieselbe Regelliste und blockiert sie, wenn die passende Kategorie nicht gewährt ist. Wenn Consent gespeichert wird, aktualisiert das Modul Google Consent Mode, aktiviert erlaubte Scripts, löscht Cookies für widerrufene Kategorien, wo konfiguriert, dispatcht mprcr:consent und loggt die Entscheidung per AJAX, wenn Logging aktiviert ist, mit einem kurzen Throttle, um doppelte Log-Spam-Einträge zu vermeiden.
Ja, es kann einen cron-job.org Job erstellen oder synchronisieren, wenn es konfiguriert ist. Die PrestaShop-Admin-Konfiguration kann den cron-job.org API-Schluessel testen, externe Erreichbarkeit pruefen und den Remote-Job auf die tokenisierte Cron-Status- oder Ausfuehrungs-URL des Moduls richten.
Nutzen Sie den Cleanup-Arbeitsbereich, um unterstützte alte Datensätze aus PrestaShop zu entfernen. Das Modul zählt und löscht über 30 Tage alte Warenkörbe ohne Bestellung, alte Suchstatistiken, abgelaufene spezifische Preise, Logs, Verbindungen, verwaiste Gäste und Maildaten.
Das Modul verwaltet digitale Katalogeinträge für Module, Themes und Addons. In PrestaShop kann jedes digitale Produkt technischen Modulnamen, Branch, aktuelle Version, Kompatibilitätsfelder, Dokumentations-URL, Demo-URL, Repository-URL, Changelog, Supportmonate und Domainlimits speichern.
Käufer konvertieren besser, wenn sie sehen können, wann eine Bestellung ankommt. Um ein geschätztes Lieferdatum in PrestaShop anzuzeigen, verwenden Sie Estimated Delivery Date: Es addiert Ihre konfigurierten Bearbeitungstage zum aktuellen Datum und zeigt das Ergebnis auf der Produktseite über den displayProductAdditionalInfo-Block an. Sie können eine tägliche Cutoff-Stunde setzen (Bestellungen danach zählen ab dem nächsten Tag), Wochenenden ausschließen, sodass Samstag und Sonntag nicht gezählt werden und ein finales Wochenendergebnis auf Montag vorrollt, und das Datumsformat wählen, das Käufer sehen. Die Nachricht erscheint automatisch auf berechtigten Produktseiten und gibt eine konkrete Erwartung „kommt an bis“ statt eines vagen „wird bald versendet“. Halten Sie Ihre Bearbeitungszeit realistisch und stimmen Sie den Cutoff auf Ihren echten Versandablauf ab, damit das versprochene Datum dem entspricht, was Kunden erhalten — präzise Schätzungen reduzieren „wo ist meine Bestellung“-Tickets.
Die Install-Defaults sind ENABLED=1, PROCESSING_DAYS=1, CUTOFF_HOUR=14, EXCLUDE_WEEKENDS=1 und DATE_FORMAT=l, F j. Die Berechnung verwendet das aktuelle DateTime des Servers, liest die aktuelle Stunde als ganze 24-Stunden-Zahl und addiert einen zusätzlichen Bearbeitungstag, wenn die aktuelle Stunde größer oder gleich der Cutoff-Stunde ist. Dann geht sie Tag für Tag weiter, bis die konfigurierte Anzahl von Bearbeitungstagen gezählt ist, und überspringt Samstag und Sonntag, wenn Wochenendausschluss aktiviert ist.
Die Storefront-Nachricht erhält außerdem hours_left, was einfach die Ganzstunden-Differenz bis zum Cutoff ist, wenn die Bestellung noch vor dem Cutoff liegt. Dieses Modul prüft keine Lieferzeitspannen von Versanddienstleistern, Lagerstatus, Lagerkalender, Feiertage, Ziel-Postleitzahl oder produktspezifische Vorlaufzeiten. Es ist ein einfaches Produktseiten-Versprechen auf Basis shopweiter Bearbeitungsregeln und funktioniert daher am besten, wenn Ihr Katalog dasselbe Versandmuster teilt.
Das Meta (Facebook) Pixel trackt Käuferaktionen, damit Sie Anzeigenleistung messen und Retargeting Audiences bauen können. PrestaShop hat kein natives Pixel, daher fügen Sie es mit einem Tracking-Modul hinzu. Mit Facebook Pixel geben Sie Ihre Pixel ID ein und aktivieren Browser-Tracking; das Modul feuert dann die Standard-Ecommerce-Events — PageView, ViewContent, AddToCart, InitiateCheckout, Search, AddToWishlist, CompleteRegistration und Purchase — mit einzelnen Schaltern, damit Sie bestimmte Events ein- oder ausschalten können. Für genaue Conversions trotz Browser- und Ad-Blocker-Verlusten aktivieren Sie zusätzlich die serverseitige Conversions API, die Purchase Events mit passender Event ID an Meta sendet, sodass Browser- und Server-Hits dedupliziert werden. Verifizieren Sie alles im Test-Tool von Metas Events Manager, bevor Sie Kampagnen starten, und stellen Sie sicher, dass Pixel Firing Ihr Cookie-Consent-Banner respektiert, damit Tracking nur nach Marketing Consent läuft.
Das Modul installiert sich mit ausgeschaltetem ENABLED und leerer PIXEL_ID, sodass kein Browser-Tracking startet, bis Sie es konfigurieren. Pixel IDs werden als nur Ziffern validiert. Die meisten Standard-Event-Schalter sind standardmäßig an, sobald das Modul selbst aktiviert ist, während CAPI_ENABLED standardmäßig aus ist und eine Pixel ID plus CAPI_ACCESS_TOKEN erfordert. Die Standard-Graph-API-Version im Modul ist v25.0, und ein optionaler Test Event Code kann während der Validierung in Meta Events Manager gesendet werden.
Consent wird geprüft, bevor das Tracking-Template gerendert wird. Wenn Cookies Revolution aktiv ist, liest das Modul den marketing-Wert aus mprcr_consent; wenn Lightweight Cookie Banner aktiv ist, liest es mprcookie_consent; wenn keines aktiv ist und Consent-Respect aktiviert ist, behandelt das Modul Marketing Consent als verfügbar. Mitarbeiter-Browsing kann ebenfalls ausgeschlossen werden. AddToCart wird über das PrestaShop-updateCart-Event getrackt, wenn verfügbar, mit Click-Fallbacks für ältere Themes. Purchase wird auf Order Confirmation mit einer deterministischen Order Event ID ausgegeben, und wenn CAPI konfiguriert ist, wird derselbe Purchase über die gemeinsame Conversion Queue in die Warteschlange gestellt und verarbeitet, einschließlich einer alle 300 Sekunden geplanten Cron-Aufgabe für Retry/Processing.
Ja, MPR FAQ kann Kundenfragen zur Prüfung sammeln. In PrestaShop speichern Pending-Question-Datensätze Name, E-Mail, Frage, Produkt oder FAQ-Kategorie, Status, optionale Admin-Antwort und Zeitstempel vor der Veröffentlichung.
Die Darstellung im Storefront wird uber den Hook displayMprSubtitle gesteuert. Der Resolver kann die aktuelle Produkt-, Kategorie-, CMS-, Hersteller- oder Lieferantenseite erkennen, und Templates konnen bei Bedarf auch eine explizite Produkt-ID ubergeben.
Ja, whitelisted IPs werden vor Bans geprüft und vom Ban Matcher nie blockiert. Das PrestaShop-Modul unterstützt Whitelist-Einträge nach exakter IP oder CIDR Range, mit shop-aware Filtering, sodass shop-spezifische Whitelist-Datensätze nur im relevanten Shop-Kontext gelten.
Die Whitelist ist IP-basiert, nicht länder- oder user-agent-basiert. Im Admin-Formular geben Sie entweder ein IP-Adressfeld oder eine CIDR Range ein, nicht beides. Das IP-Adressfeld ist für eine einzelne IP oder Wildcard wie 192.168.1.* dokumentiert; das CIDR-Feld erwartet Notation wie 192.168.1.0/24.
Wenn ein Request geprüft wird, ruft isBanned() zuerst isWhitelisted() auf. Wenn die Besucher-IP zu einer Whitelist-Zeile passt, gibt die Funktion sofort false zurück, und kein Country-, User-Agent-, Exact-IP- oder CIDR-Ban wird angewendet. Das ist nützlich für Office-, Entwickler-, Zahlungsprovider- oder Monitoring-IPs, die nicht durch breite Länder- oder Range-Regeln ausgesperrt werden dürfen.
- Storage: Whitelist-Zeilen speichern IP Address, CIDR, Label, Employee ID, Shop ID und Creation Date.
- Shop handling: Wenn Multishop aktiv ist, lädt die Whitelist-Query Zeilen für den aktuellen Shop und globale
id_shop=0-Zeilen. - Gotcha: Eine Whitelist hilft nur, wenn das Modul dieselbe echte Besucher-IP erkennt, die Sie gespeichert haben. Wenn ein Proxy oder CDN die von PrestaShop gesehene IP verändert, whitelisten Sie die Adresse, die PrestaShop tatsächlich empfängt.
PrestaShop hat keinen eingebauten Blog. Um Artikel, Guides und SEO-Inhalte zu veröffentlichen, fügen Sie daher ein Blog-Modul hinzu. Blog Revolution erstellt einen vollständigen Blog in Ihrem Shop: Es registriert dedizierte Routen für Blog-Index, einzelne Beiträge, Kategorien, Tags, Autoren, Monatsarchive, Suche und RSS-Feed und fügt Blöcke für Homepage, Seitenspalten, Footer, Produktseiten und kategorieartige Listings hinzu, damit Ihre neuesten Beiträge im gesamten Shop sichtbar werden. Da der Blog Ihr Theme, Design und Sprachsetup teilt, übernehmen Artikel automatisch Ihr Branding und mehrsprachige URLs. Ein Blog ist eine der wirksamsten PrestaShop-SEO-Investitionen: Er zielt auf Informationssuchen ab, die Ihre Produkt- und Kategorieseiten nicht abdecken können, baut interne Links zu diesen Seiten auf und gewinnt Backlinks. Planen Sie zuerst eine Kategoriestruktur, veröffentlichen Sie dann konsequent und verlinken Sie jeden Beitrag mit den relevanten Produkten.
Im Code ist das nicht nur ein CMS-Seiten-Wrapper. Das Modul erstellt eigene Tabellen für Beiträge, Beitragsübersetzungen, Kategorien, Tags, Autoren, Kommentare, Post-Product-Links, View-/Like-Tracking, Bilder, Gruppenbeschränkungen und Slug-Redirects. Beiträge haben SEO-Felder wie Meta Title, Meta Description, Meta Keywords und Canonical URL pro Sprache, und das Modul kann Open Graph-Daten, RSS-Autodiscovery, hreflang-Links und Previous/Next-Pagination-Links aus dem Header Hook ausgeben.
Das Standard-URL-Präfix ist blog, sodass das generierte Routenset Pfade wie /blog, /blog/tag/{rewrite}, /blog/author/{slug}, /blog/archive/{year}/{month}, /blog/search und /blog/rss enthält. Die Defaults gehen außerdem von 12 Beiträgen pro Seite, einem dreispaltigen Grid, Kommentaren, Ratings, Excerpts, Autor-/Datum-/View-/Kommentar-Metadaten, Social Sharing, Schema, hreflang, Open Graph und aktiviertem RSS aus. Das gibt Ihnen eine vollständige Publishing-Oberfläche, aber Sie sollten dennoch redaktionelle Regeln definieren: welche Beiträge auf Produkte verlinken, welche Kategorien kommerziellen Begriffen zugeordnet werden und welche alten URLs redirecten sollten statt 404 zu liefern.
Canonical Tags teilen Google mit, welche Version einer Seite das Original ist, und verhindern Duplicate-Content-Probleme durch Filter, Pagination und nahezu identische Produkte. PrestaShop setzt Canonicals automatisch, bietet aber keine Möglichkeit, sie pro Seite zu überschreiben. Um für ein bestimmtes Produkt, eine Kategorie, CMS-Seite, einen Hersteller oder Lieferanten ein Custom Canonical zu setzen, verwenden Sie Product Canonical Manager: Erstellen Sie eine Regel für die Zielentität, geben Sie die URL ein, die Suchmaschinen als maßgeblich werten sollen, und speichern Sie bei Bedarf je Shopsprache einen anderen Wert. Greifen Sie dazu, wenn mehrere Produkte Varianten eines Masters sind, wenn eine CMS-Seite einen Blogartikel wiedergibt oder wenn eine Kampagnen-URL in die saubere Produktseite konsolidieren soll. Wie Canonicals, URLs, Schema und Sitemaps zusammenpassen, erklärt unser PrestaShop SEO guide.
Das Modul speichert Regeln in einer dedizierten Tabelle mprcanonical_rule und unterstützt die Entity Types product, category, cms, manufacturer und supplier. Jede Regel hat eine Action: override ersetzt ein bestehendes Canonical durch die Entity URL, add_missing fügt nur eines ein, wenn die Seite noch kein Canonical hat, und custom verwendet die mehrsprachige Custom URL, die auf der Regel gespeichert ist. Regeln können außerdem noindex und nofollow setzen.
Für Produktregeln kann der Resolver ein bestimmtes Produkt, alle Produkte, Produkte nach Kategorie, Hersteller oder Lieferant matchen und unterstützt Selector Exclusions. Wenn mehrere Regeln matchen, sortiert die Abfrage nach priority DESC, sodass die höher priorisierte Regel für die Canonical URL gewinnt, während noindex/nofollow-Flags akkumulieren können. Der Output Hook bearbeitet den fertigen HTML Head, sodass er bestehende Canonical Tags ersetzen, Robots Directives hinzufügen, hreflang-Links bei Aktivierung hinzufügen und generierte URLs mit konfiguriertem Parameter-Stripping, Kleinschreibung und optionalem Trailing-Slash-Handling normalisieren kann.
Ja, der Dry-run-Modus zeigt Cleanup-Ergebnisse vor dem Löschen an. Das Modul aktiviert Dry-run standardmäßig, nutzt aufgabenspezifische Batchgrößen und konfigurierbare Sicherheitslimits und protokolliert Verlauf, Auslöser, betroffene Zeilen, Dry-run-Status und Mitarbeiterkontext. So bleibt die Einrichtung an Moduleinstellungen und das Verhalten im PrestaShop-Frontend gebunden.
Ja, es unterstuetzt Google Consent Mode v2, wenn die Option aktiv ist. Das Modul schreibt vor den Tags einen Standard-Consent-Befehl und aktualisiert ad_storage, ad_user_data, ad_personalization und analytics_storage, nachdem der Kunde Cookies in PrestaShop akzeptiert oder ablehnt.
Ja, es kann passende Skripte blockieren, bis Zustimmung erteilt wurde. Bei aktiviertem Script-Blocking schreibt der Output-Hook passende Script-Tags zu type text/plain mit Kategorie-Metadaten um, und das Front-JavaScript stellt nur Skripte wieder her, deren Kategorie erlaubt ist.
Ja, das Modul bietet einen Back-Office-Arbeitsbereich fuer geplante Aufgaben. Es kann Tasks von Modulen mit gemeinsamem CronTrait auflisten, Testlaeufe starten, Tasks aktivieren oder deaktivieren, Zeitplaene bearbeiten, eigene Tasks loeschen, Logs einsehen und Massen-Frequenzaenderungen anwenden.
Ja, der Admin-Arbeitsbereich zeigt Zählungen, bevor Bereinigungen laufen. In PrestaShop enthält jede Aufgabe eine Count-Abfrage, und das Template zeigt Gesamtzahl sowie Einzelzahlen, damit der Händler eine Aufgabe oder alle Aktionen ausführen kann.
Das hängt davon ab, welchen Download Sie meinen:
- Ein lizenziertes Modul – ja. Lizenzierte Downloads sind an Ihren Shop gebunden; der Download-Controller prüft daher Lizenz-Inhaberschaft, Gültigkeit, verbleibende Download-Limits und ob der ausgewählte Shop der Lizenz zugewiesen ist, bevor er eine tokenisierte Download-URL ausstellt. Diese Bindung ist es, die eine bezahlte Lizenz bei ihrem Shop hält.
- Die kostenlose 30-Tage-Demo – nein. Die Angabe Ihrer E-Mail-Adresse und der Installations-Domain beim Download ist optional. Sie bringt Ihnen nur eines: Komfort später. Wenn Sie mit derselben E-Mail-Adresse kaufen, kann Ihr Shop die Aktivierung mit einem Klick anbieten. Lassen Sie die Angabe weg, fügen Sie stattdessen einfach einen Lizenzschlüssel ein.
Den gesamten Weg von der Testphase über die Aktivierung bis zum Support finden Sie unter So funktionieren Lizenzierung, Aktivierung & Support.
Flash Sales, saisonale Aktionen und zeitlich begrenzte Angebote funktionieren am besten, wenn sie automatisch starten und stoppen. Um zeitbasierte Rabatte in PrestaShop zu planen, verwenden Sie Smart Dynamic & Scheduled Discounts: Erstellen Sie Kampagnen mit Start- und Enddatum, und der Preis-Hook prüft aktives Zeitfenster, Produktscope, Kundengruppenzugriff und Nutzungslimits und wendet dann den besten berechtigten Rabatt auf den Produktpreis an, ohne manuelle Arbeit. Da der Rabatt zur Anzeige- und Checkout-Zeit berechnet wird, fallen Preise automatisch zurück, wenn das Zeitfenster schließt — Sie müssen nicht daran denken, einen Sale rückgängig zu machen. Nutzen Sie Kundengruppen-Scoping für member-only Deals und verlassen Sie sich auf die Best-Price-Logik, damit überlappende Kampagnen vorhersagbar bleiben. Zeigen Sie immer den Originalpreis neben dem Angebot, damit die Ersparnis sichtbar ist, und prüfen Sie, dass geplante Preise Ihre Mindestmargenregeln respektieren.
Das Kampagnenmodell unterstützt Kampagnentypen wie scheduled, recurring, flash sale, countdown, early bird und last chance, mit Discount Types percent, amount und fixed_price. Produktscope kann direkte Produkt-/Kombinationszuweisung, Kategorien mit optionalen Unterkategorien, Hersteller, Kundengruppen oder kein Scope sein; in letzterem Fall kann eine aktive Kampagne auf alle Produkte angewendet werden. Per-product Custom Discounts können den Kampagnenrabatt überschreiben, wenn die Produktzeile nicht den Default erbt.
Wiederkehrende Kampagnen fügen Schedule Rows mit täglichen, wöchentlichen, monatlichen oder benutzerdefinierten Fenstern, Start-/Endzeiten und einer Zeitzone hinzu. Nutzung wird pro Bestellung/Produkt/Kunde in mprdsd_campaign_usage verfolgt, und das Modul prüft Gesamtnutzungslimits, Limits pro Kunde und Mengenlimits pro Produkt, bevor ein Rabatt angewendet wird. Der Price Hook verwendet bewusst den aktuellen Preis, den PrestaShop übergibt, statt Product::getPrice() aufzurufen, weil das zurück in den Price Hook rekursieren würde. Er zieht dann den größten berechtigten Rabattbetrag vom aktuellen berechneten Preis ab und schreibt nie native Specific-Price-Zeilen. Deshalb verschwindet der Rabatt automatisch, wenn keine Kampagne aktiv ist.
Ja, das Modul kann Samstage und Sonntage überspringen, wenn der Wochenend-Ausschluss aktiv ist. Die PrestaShop-Berechnung zählt Wochenenden bei der Bearbeitungszeit nicht mit und verschiebt ein Enddatum am Wochenende auf Montag.
Ja, es unterstützt serverseitige Purchase-Events über die Meta Conversions API. In PrestaShop legt das Modul Kauf-Conversions in eine Queue, sendet sie an die konfigurierte Graph-API-Version und nutzt passende Event-IDs für Browser- und Server-Tracking.
Ja, zusätzliche freigegebene Antworten und Hilfreich-Votes werden unterstützt. In PrestaShop speichern Antwortdatensätze Autorentyp, Kunden- oder Mitarbeiterbezug, Status, Vote-Zähler und Inhalt, während Frage- und Antwortvotes separat nach Entität und IP erfasst werden.
Ja. Produkt-Untertitelregeln konnen alle Produkte, bestimmte Produkte, Produkte in Kategorien, Produkte nach Hersteller und Produkte nach Lieferant ansprechen. Ausschlussregeln konnen ausserdem einzelne Produkte oder Kategorie-Treffer aus einer breiteren Regel entfernen.
Ja, das Modul enthält einen automatischen Authentication-Ban-Pfad für fehlgeschlagene PrestaShop-Logins, aber er läuft nur, wenn der Failed-Login-Recorder des Moduls von der Authentication-Integration aufgerufen wird. Jeder aufgezeichnete Fehler speichert Besucher-IP, versuchte E-Mail, User Agent, Shop ID und Timestamp in mprceiipban_failed_logins.
Die zwei Einstellungen, die den Ban steuern, sind MPRCEIIPBAN_AUTOBAN_THRESHOLD und MPRCEIIPBAN_AUTOBAN_WINDOW. Die Installationsdefaults sind Threshold 0 und Window 60 Minuten, also ist Auto-Ban deaktiviert, bis ein positiver Threshold konfiguriert wird. Wenn die Zahl der Fehler von derselben IP innerhalb des konfigurierten Fensters den Threshold erreicht, fügt das Modul einen auth-Ban mit dem Reason Auto-banned: X failed login attempts in Y min und einem Ablauf eine Stunde in der Zukunft hinzu.
Ein auth-Ban ist enger als ein Full-Site-Ban: Er zielt auf authentication-related pages, während bestehende Full Bans weiterhin Vorrang haben. Da dieser Source Checkout Recorder und Ban-Logik enthält, aber keine konkrete Authentication-Override-Datei, prüfen Sie, dass Ihr installierter Build die Authentication-Integration enthält, bevor Sie sich darauf als einzigen Login-Schutz verlassen.
Der Threshold-Counter ist IP-basiert. Die fehlgeschlagene E-Mail wird zur Prüfung gespeichert, aber countRecentFailedLogins() zählt nur Zeilen mit derselben ip_address, die neuer als das konfigurierte Fenster sind; es zählt nicht getrennt pro versuchter E-Mail-Adresse. Der Auto-Ban-Check überspringt außerdem das Erstellen eines neuen temporären Auth-Bans, wenn die IP bereits unter einem Full Ban steht.
- To enable it: Setzen Sie
AUTOBAN_THRESHOLDauf eine positive Zahl wie5und lassen oder ändern SieAUTOBAN_WINDOWin Minuten. - What is created: Eine aktive Zeile in
mprceiipban_bannedmitban_type=auth, der Besucher-IP und einer einstündigendate_expiry. - Cleanup: Failed-Login-Zeilen werden vom Purge-Pfad des Moduls abgedeckt, der die konfigurierten Log-Retention-Tage nutzt.
AUTOBAN_THRESHOLD = 5
AUTOBAN_WINDOW = 60
Result after 5 failures from one IP in 60 minutes: temporary auth ban for 1 hourFotobewertungen lassen Käufer echte Produktbilder an ihre Bewertungen anhängen. Das baut Vertrauen auf und ergänzt Ihre Produktseiten um einzigartige, keywordreiche Inhalte. PrestaShop hat keine eingebaute Image-Review-Funktion, daher fügen Sie sie mit einem Bewertungsmodul hinzu. Mit Reviews & Ratings aktivieren Sie Bild-Uploads in den Review-Einstellungen: Das Formular akzeptiert dann JPEG-, PNG- und WebP-Dateien, erzwingt Ihre maximale Dateigröße und Bildanzahl, verkleinert große Uploads automatisch, erzeugt Thumbnails und hängt die Bilder an den gespeicherten Review-Datensatz. Genehmigte Fotobewertungen werden neben dem Produkt angezeigt und speisen Star-Rating Rich Results. Setzen Sie ein sinnvolles Limit - zum Beispiel 3-5 Bilder pro Bewertung - und lassen Sie Moderation aktiviert, damit nur echte, thematisch passende Fotos live gehen. Kundenfotos reduzieren auch Retouren, weil sie vor dem Kauf realistische Erwartungen setzen.

In der lokalen Quelle lebt diese Funktion im Modul mprcomments. Bild-Uploads werden durch ALLOW_IMAGES aktiviert, mit Defaults von 3 Bildern pro Bewertung und 2 MB pro Bild. Das Produktbewertungs-Template verwendet ein Multiple-File-Input namens review_images[] und akzeptiert image/jpeg, image/png und image/webp. Der Uploader validiert MIME Type, Dateigröße und Bilddimensionen, verkleinert dann große Bilder auf maximal 1200 mal 1200 Pixel und erstellt 150 mal 150 Thumbnails.
Die Bewertung wird zuerst mit Status pending oder approved gespeichert, abhängig von den Moderationseinstellungen, und anschließend werden Bild-Uploads sofort gegen diese gespeicherte Review ID verarbeitet. Freigabe steuert öffentliche Sichtbarkeit, nicht Bildanhang. Normale Review-Validierung gilt zuerst: Der Bewertungsinhalt muss die Mindestlänge erfüllen, das Rating muss zwischen 1 und 5 liegen, Gäste werden blockiert, sofern nicht erlaubt, doppelte Kundenbewertungen werden geprüft, und Moderation kann die Bewertung pending lassen, statt sie sofort öffentlich zu machen. Structured Data basiert bewusst auf nativen Produktbewertungen; importierte Unternehmensbewertungen sind aus Product Schema ausgeschlossen, und der Schema Renderer begrenzt eingebettete Review Items, während er weiterhin Aggregate Rating ausgibt, wenn native Bewertungen existieren.
PrestaShop liefert eine feste Kontaktseite mit, was nicht ausreicht, wenn Sie Angebotsanfragen, B2B-Anfragen, Support Intake oder Event-Anmeldungen benötigen. Um eigene Formulare zu bauen, verwenden Sie Better Contact Form: Es speichert Formulare und ihre Felder in dedizierten Tabellen und rendert sie über einen Modul-Controller oder Hook, mit funktionierendem Submitted-Value-Handling für Text-, E-Mail-, Telefon-, Textarea-, Select-, Checkbox-, URL- und Number-Felder. Sie können mehrere Formulare für unterschiedliche Zwecke erstellen, sie auf jeder Seite platzieren und strukturierte Submissions statt Freitext-E-Mails sammeln. Halten Sie jedes Formular kurz, markieren Sie Pflichtfelder klar und ergänzen Sie Anti-Spam-Schutz. Für GDPR fügen Sie eine Consent-Checkbox und einen Link zu Ihrer Datenschutzerklärung hinzu, damit Anfragedaten rechtmäßig erhoben werden.
Das Template hat außerdem einen file-Input-Zweig, aber der aktuelle Submission Processor liest Feldwerte über Tools::getValue() und behandelt $_FILES nicht. Das bedeutet, File Fields können gerendert werden, aber hochgeladene Dateien werden in der aktuellen Implementierung nicht als Submitted Field Values persistiert. Verlassen Sie sich nicht auf File Upload Collection, sofern kein File Handling ergänzt wird.
Formulare, Felder, Submissions und einzelne Submission Values werden in getrennten Tabellen gespeichert, sodass eine Anfrage sowohl eine Summary Row als auch strukturierte Felddaten behält. Der Renderer kann ein bestimmtes Formular oder das aktive Standardformular wählen, gibt nichts zurück, wenn ein Formular inaktiv ist oder keine Felder hat, und füllt Name/E-Mail eingeloggter Kunden vor, wenn verfügbar.
Submission Processing prüft, ob der Submit Button gepostet wurde, führt Pflichtfeldprüfungen, Typvalidierung, Select-Option-Validierung, optionale PrestaShop-Validierungsmethoden, GDPR-Checkbox-Erzwingung, Spam-Erkennung und Datenbankpersistenz durch. Der versteckte _mpr_ft-Wert ist kein CSRF Token; er ist ein Base64-Zeitstempel, der von der Timing-Anti-Spam-Prüfung verwendet wird. Honeypot- und Time-Check-Anti-Spam sind standardmäßig aktiviert, mit einer Standard-Mindest-Submit-Zeit von 3 Sekunden. Spam-Submissions werden trotzdem mit is_spam und spam_reason gespeichert, aber Admin-/Kunden-E-Mails werden nur für Nicht-Spam-Submissions gesendet. Das gibt Ihnen einen Audit Trail, ohne offensichtlichen Bot-Traffic Benachrichtigungen auslösen zu lassen.
Ja, Einwilligungen koennen protokolliert werden, wenn Logging aktiviert ist. Der PrestaShop-AJAX-Controller speichert Consent-Map, Quelle und Consent-Version, waehrend das Log-Modell Besucher-, IP- und User-Agent-Kennungen hasht, statt sie im Klartext zu speichern.
Sie koennen Criteo OneTag zu PrestaShop hinzufuegen, indem Sie eine numerische Criteo Partner ID konfigurieren und Browser-Tracking aktivieren. Das Modul baut dann OneTag-Events im Header fuer unterstuetzte E-Commerce-Seiten und bleibt inaktiv, wenn die Partner ID fehlt oder ungueltig ist.
Ja, eigene Cron-Aufgaben koennen im Task-Controller hinzugefuegt werden. Das PrestaShop-Adminformular validiert Besitzer-Modul, Zeitplan, Kontext und Executor-Typ und unterstuetzt URL-, Callable- und Command-Tasks, wobei Commands auf Cron- oder explizite Admin-Test-Kontexte begrenzt sind.
In PrestaShop ist die H1 der Kategorieseite der Kategoriename. Wenn Sie die Überschrift für SEO ändern, ändern sich normalerweise auch Menülables und Breadcrumbs — was Sie meistens nicht möchten. Die Lösung ist, die H1 unabhängig zu überschreiben. Mit Custom Category H1 speichern Sie pro Kategorie einen separaten H1-Wert, und das Modul tauscht ihn über PrestaShop-Hooks in die Kategorieseite ein, während der Name des Category-Objekts (und damit Navigation und Breadcrumbs) unverändert bleibt. So können Sie eine keywordreiche Überschrift wie "Waterproof Shower Trays for Wet Rooms" ansprechen, während das Menü weiterhin kurz "Shower Trays" liest. Beachten Sie, dass Root-Kategorien bewusst ausgeschlossen sind, weil sie keine normale Storefront-Kategorieseite rendern, auf der eine käufersichtbare H1 gelten würde. Verwenden Sie eine klare, eindeutige H1 pro Kategorie und halten Sie sie mit dem Title Tag dieser Seite abgestimmt — siehe unseren PrestaShop SEO guide.
Das Modul speichert Overrides in dedizierten Tabellen für Override Rows, Sprachwerte und Kategoriezuweisungen. Die Defaults sind aktiviert, zeigen das Kategorie-Edit-Feld, ersetzen den Kategorieseitennamen im gefilterten Kategorieinhalt, wenden denselben Wert auf Product-Listing-Labels an, fallen auf die Standardsprache zurück, fallen von einem shopspezifischen Wert auf einen All-Shops-Wert zurück, entfernen HTML-Tags und normalisieren Whitespace. Parent-Category-Fallback existiert, ist aber standardmäßig deaktiviert, um doppelte Überschriften über Child-Kategorien zu vermeiden.
Für Bulk-SEO-Arbeit kann ein Override mehreren Kategorien zugewiesen werden. Wenn ein Händler später eine Kategorie direkt bearbeitet und diese Kategorie zu einem Shared Override gehört, trennt der Code diese eine Kategorie ab und erstellt einen category-local Override, während der Shared Override für die anderen bestehen bleibt. Der H1-Wert kann Platzhalter wie {category_name}, {nb_products}, {page}, {page_label}, {shop_name} und {lang} verwenden. Pagination kann außerdem automatisch ein Page Label anhängen, wenn aktiviert. Das Modul ändert die gerenderten Kategoriedaten; es benennt den gespeicherten PrestaShop-Kategoriedatensatz nicht um.
Sie koennen Besucher-IP und Geraeteinformationen mit diesem PrestaShop-Modul erfassen, wenn die Sammlung aktiviert ist. Es speichert Kunden- oder Gast-ID, Shop-ID, IP-Adresse, Laenderdaten, analysierte Geraetedetails sowie optionale User-Agent-, Betriebssystem-, Browser- und Bildschirmaufloesungsfelder.
Kunden können Projektgalerien über den Front-Office-Einreichungsablauf des Moduls senden. In PrestaShop speichert die Showcase-Funktion Projekte, mehrsprachige Titel und Beschreibungen, Bilder, Kategorien und Moderationsstatus mit Standardlimits von 20 Bildern und 5 MB je Bild.
Das Modul bleibt installiert, aber hookDisplayHeader() gibt nichts zurück, da isActive() die Brand ID voraussetzt. Der Hinweis zur erforderlichen Konfiguration informiert Ihr Team zudem darüber, dass das Tracking inaktiv bleibt, bis die Brand ID hinterlegt wird.
Nein. Das Modul prüft, ob mprcheckoutrevolution installiert und aktiviert ist. Wenn es aktiv ist, überlässt dieses Modul ihm die Oberfläche zur Bestellbearbeitung, anstatt die Hooks für die Bestellbearbeitung selbst zu verarbeiten.
Der Generator prüft das Referenzprotokoll des Moduls, die native Tabelle orders sowie die Referenzen in order_payment. Er probiert bis zu 10 Kandidaten aus, bevor er einen Fehler protokolliert und aufgibt.
Das Formular bietet Komma, Semikolon, Tabulator und Pipe als Trennzeichen. Der Controller löst die Option tab in ein echtes Tabulatorzeichen auf, bevor er die CSV streamt.
Das Schema enthält Tabellen für Teams, Team-Mitarbeiter, Team-Status-Zuordnungen, Workflow-Status und Übersetzungen, Bestellhistorie, Bestellkommentare, Erinnerungen, Benachrichtigungen und Mitarbeiterpräferenzen für Benachrichtigungen.
Es registriert displayHeader, displayOrderConfirmation, actionValidateOrder und actionCustomerAccountAdd. Diese Hooks rendern Browser-Tracking und stellen Conversion-Daten zu Bestellungen oder Registrierungen in die Warteschlange.
Nein. Der Erkennungscode prüft, ob die Produktreferenz mit mpr-pack- beginnt. Pack-Inhalte werden anschließend aus der moduleigenen Tabelle mpr_pack_content gelesen.
Der Hook prüft actionDispatcherBefore und behandelt nur Dispatcher::FC_FRONT und Dispatcher::FC_MODULE. Back Office-Dispatches werden ignoriert.
hookPaymentOptions() benötigt ein aktives Modul, aktivierte Konfiguration, einen eingeloggten Kunden, mindestens ein aktives Zahlungsziel, das den Kundengruppen zugewiesen ist, und ausreichend Kredit für die aktuelle Warenkorbsumme.
Der Resolver sortiert aktive Treffer nach Prioritat. Im Einzelmodus gibt er den Untertitel mit der hochsten Prioritat zuruck; im Alle-Modus gibt er die sortierte Liste zuruck, damit das Template mehr als einen Untertitel ausgeben kann.
Es erkennt das Besucherland in einer festen Fallback-Reihenfolge. Das Modul liest zuerst Cloudflares HTTP_CF_IPCOUNTRY-Header, wenn er existiert und nicht XX ist. Wenn dieser nicht verfügbar ist, versucht es PrestaShop GeoIP über GeoIp::getCountryByAddr($ip) und konvertiert den zurückgegebenen Ländernamen wieder zu einem ISO-Code. Wenn GeoIP nicht verfügbar ist, prüft es zuletzt das PrestaShop-Kontext-Cookie iso_code_country.
1. Cloudflare reverse proxy sends HTTP_CF_IPCOUNTRY=US -> module stores country code US and resolves the country name.
2. No Cloudflare header -> PrestaShop GeoIP returns United States -> module looks up ISO code US.
3. GeoIP unavailable -> PrestaShop cookie iso_code_country=US is used.
4. No signal -> empty country code and empty country name.Das bedeutet: Länder-Bans hängen vom Signal ab, das für diesen Request verfügbar ist. Wenn Sie sich auf Cloudflare-Ländererkennung verlassen, stellen Sie sicher, dass Shop-Traffic tatsächlich über Cloudflare bei PrestaShop ankommt, damit der Header vorhanden ist.
Die für GeoIP genutzte Besucher-IP kommt aus Tools::getRemoteAddr(), wenn PrestaShop sie liefert. Das Modul hat eine Fallback-Kette für HTTP_CF_CONNECTING_IP, HTTP_X_REAL_IP, den ersten Wert aus HTTP_X_FORWARDED_FOR und dann REMOTE_ADDR. Das ist wichtig, weil GeoIP-Qualität von der echten Client-IP abhängt, nicht von der IP eines Zwischen-Proxys.
Ein Länder-Ban matcht nur, wenn der aktuelle Request einen nicht-leeren Country Code hat. Wenn Cloudflare XX sendet, GeoIP fehlt, die Country-Name-Lookup das GeoIP-Ergebnis nicht auf einen ISO-Code mappen kann und das Cookie fehlt, feuern country-only Regeln für diesen Request nicht. VPNs, Proxies und CDN-Konfiguration können außerdem dazu führen, dass das erkannte Land vom physischen Standort des Käufers abweicht.
Nein. S2S_ENABLED ist standardmäßig false. Das Readiness-Panel behandelt S2S ausdrücklich als optional, und Browser-Pixel-Tracking kann mit gültiger Marketer ID und aktiviertem Browser-Tracking laufen.
Ja, das Modul enthält Import- und Exportwerkzeuge für Bloginhalte im PrestaShop Back Office. Der PrestaShop-Admin-Controller kann WordPress WXR XML inklusive optionaler Kommentare importieren und Blogdaten über den BlogExporter Service als XML oder JSON exportieren.
Der eigene Checkout-Controller leitet Kunden zur nativen PrestaShop-Bestellseite zurück, wenn der One Page Checkout deaktiviert ist. So erzwingt das Modul seinen Checkout-Fluss nicht, wenn die Einstellung one_page_checkout_enabled in der Konfiguration ausgeschaltet ist. So bleibt die Einrichtung an Moduleinstellungen und das Verhalten im PrestaShop-Frontend gebunden.
Das Banner erscheint erneut, wenn das Consent-Cookie fehlt oder abgelaufen ist. Im PrestaShop-Frontend liest das JavaScript mprcookie_consent und blendet das Banner fuer wiederkehrende Kunden aus; die konfigurierte Ablaufzeit steuert die Speicherdauer, standardmaessig 365 Tage.
Ja, das Modul hat einen Schalter fuer mobile Anzeige. Bevor das Crisp-Widget gerendert wird, prueft der PrestaShop-Guard die Einstellung SHOW_MOBILE und den aktuellen Geraetekontext; ist mobile Anzeige deaktiviert und der Kontext mobil, wird kein Crisp-Skript ausgegeben.
Der Front Controller akzeptiert einen Eventnamen und JSON-Parameter, lehnt Payloads über 8192 Zeichen ab, behält höchstens 50 normalisierte Schlüssel pro Ebene, begrenzt die Verschachtelungstiefe und kürzt String-Werte auf 512 Zeichen.
Nein, Datei-Uploads werden vom aktuellen Einsende-Code nicht verarbeitet. Die Admin-Feldliste enthaelt zwar einen Datei-Input, aber der Prozessor liest Werte mit Tools::getValue und verarbeitet weder das PHP-Files-Array noch Speicherpfade oder E-Mail-Anhaenge.
Ja, das Modul enthaelt einen Storefront-Cookie-Scanner. Er kann eine PrestaShop-URL crawlen, Set-Cookie-Header und inline document.cookie-Zuweisungen pruefen, neu gefundene nicht kategorisierte Cookies speichern und Kategorien fuer bekannte Muster wie Analyse, Marketing und funktionale Cookies vorschlagen.
Ja, Haendler koennen eigene Trigger-Regeln fuer unterstuetzte Criteo-Events definieren. Die PrestaShop-Konfiguration akzeptiert validierte JSON-Regeln mit Klick-, URL-, Controller- oder DOM-Event-Triggern und normalisiert Eventnamen auf das von Criteo unterstuetzte OneTag-Vokabular.
Nein, die Deinstallation entfernt die gemeinsamen Cron-Tabellen nicht. Der PrestaShop-Uninstall-Pfad entfernt das Admin-Menue des Moduls und deregistriert eigene Tasks, behaelt die Cron-Tabellen aber bewusst, weil andere MPR-Module dieselbe Scheduled-Task-Infrastruktur nutzen koennen.
Nein, Root-Kategorien werden von der Speicherlogik fuer Overrides abgelehnt. Der PrestaShop-Admin-Controller prueft, dass ausgewaehlte Kategorien Storefront-Kategorien sind, weil Root-Kategorien keine normalen Storefront-Kategorieseiten rendern, auf denen ein sichtbarer H1-Override greifen wuerde.
Ja, es kann User-Agent-Muster als Sperrziele abgleichen. Im PrestaShop-Admin kann eine Sperrregel Klartext fuer eine nicht case-sensitive Contains-Pruefung oder eine Regex in Schraegstrichen nutzen und diese Regel mit IP-, CIDR- oder Laenderfiltern kombinieren.
Ja. Der Validator akzeptiert Ziffern, die durch Kommas oder Leerraum getrennt sind, bis zu den konfigurierten Längenregeln; so können mehrere numerische IDs im Feld Marketer ID gespeichert werden.
Das Diagnosepanel enthält eine Aktion Retry failed events. Sie ruft den gemeinsamen Queue-Reset für dieses Modul und den Provider outbrain auf und setzt fehlgeschlagene Events wieder auf den Status pending.
Das Modul speichert Produkt-IDs im Browser-Cookie mprrecent_ids des Besuchers. Das Cookie wird mit Pfad /, 30 Tagen Laufzeit und SameSite=Lax geschrieben.
Nein. Der AJAX-Controller erstellt fur jede angeforderte ID ein Product-Objekt und uberspringt Eintrage, die nicht geladen oder nicht aktiv sind, bevor Produktkartendaten zuruckgegeben werden.
Die AJAX-Antwort enthalt den Namen jedes Produkts, die Produkt-URL, die Coverbild-URL mit home_default und einen formatierten Preis. Das Front-Script rendert diese Werte als kompakte Produktkarten.
Es ist kein Konto erforderlich, und die Source-Beschreibung sagt, dass es für Gäste, eingeloggte Kunden und wiederkehrende Besucher funktioniert. Es merkt sich aktuelle Produktseiten in einem Browser-Cookie, statt eine PrestaShop-User-History-Tabelle zu füllen. Sie sollten Cookie-Nutzung trotzdem in Ihren Datenschutz- oder Cookie-Informationen beschreiben, wo die rechtlichen Anforderungen Ihres Stores das verlangen.
Das Storefront-Script nutzt ein Cookie namens mprrecent_ids. Auf Produktseiten setzt es die aktuelle Product ID an den Anfang der Liste, entfernt Duplikate, begrenzt die Liste auf das konfigurierte Maximum und schreibt das Cookie für 30 Tage mit SameSite=Lax. Der Installationsdefault ist MAX_PRODUCTS=8, und der Standard-Display-Hook ist displayFooterProduct.
Wenn das Widget gerendert wird, liest der Browser das Cookie und postet die Product-ID-Liste an den Modul-AJAX-Controller. Der Controller bereinigt die IDs mit intval, entfernt leere Werte, begrenzt den Request auf 20 IDs und gibt nur aktive Produkte zurück. Die Antwort enthält Product ID, Name, URL, Cover Image und formatierten Preis, damit das Widget die Recent-Products-Liste zeichnen kann.
Das Modul baut also kein serverseitiges Browsing-Profil, das an ein Kundenkonto gebunden ist. Der Server erhält während des AJAX-Lookups trotzdem die aktuellen Product IDs, und die IDs werden im Browser-Cookie des Besuchers gespeichert. Aus Sicht eines Datenschutzhinweises bleibt die Funktion daher cookie-basiertes Tracking.
Geben Sie die AdRoll Advertiser ID aus adroll_adv_id ein, geben Sie die Pixel ID aus adroll_pix_id ein, aktivieren Sie Browser Tracking und wählen Sie die Events, die Sie senden möchten. Beide IDs dürfen nur Buchstaben, Zahlen, Unterstriche oder Bindestriche enthalten, und Tracking bleibt inaktiv, bis die IDs gültig und das Modul aktiviert ist.
- Required setup: Advertiser ID, Pixel ID und Browser Tracking enabled.
- Page journey events: Page View, Product View, Checkout Start und Search.
- Interaction events: Add to Cart, Add to Wishlist, Signup und konfigurierte Custom Browser Events.
- Purchase event: wird auf Order Confirmation gesendet, wenn Purchase Tracking aktiviert ist.
Das Modul ist eine Browser-Pixel-Integration. Seine eigene Demo-Metadata markiert AdRoll server-side purchase als unavailable, weil öffentlicher AdRoll-S2S-Zugang in diesem Modul nicht als stabiler Token-/Endpoint-Flow bereitgestellt wird.
Bei Installation ist Browser Tracking selbst standardmäßig deaktiviert, während die Standard-Event-Toggles standardmäßig aktiviert sind. So kann ein Händler zuerst IDs konfigurieren und Tracking dann aktivieren, wenn alles bereit ist. Employee Exclusion und Marketing-Consent Respect sind beide standardmäßig aktiviert, sodass Back-Office-Mitarbeiter, die die Storefront ansehen, und Besucher ohne unterstützten Marketing-Consent unterdrückt werden können, bevor Events gesendet werden.
Der Header Hook bereitet die AdRoll Queue vor, setzt window.adroll_adv_id, window.adroll_pix_id und window.adroll_version='2.0' und lädt dann https://s.adroll.com/j/roundtrip.js. Header Events werden serverseitig für Page View, Product View, Checkout Start, Search und Signup gebaut, während Add-to-cart- und Wishlist-Events in JavaScript an PrestaShop-Events oder übliche Button-Selektoren gebunden werden.
Custom Browser Events sind optional und standardmäßig deaktiviert. Wenn aktiviert, muss JSON ein Array oder ein Objekt mit einem events-Array sein. Eventnamen sind auf Buchstaben, Zahlen, Unterstriche und Bindestriche begrenzt, mit 64 Zeichen Limit, und dieses Modul begrenzt Custom Events auf 15 verschiedene Eventnamen. Unterstützte Trigger sind click, url, controller und event.
[{"event":"GalleryBrowse","trigger":"click","selector":".product-images img","params":{"segment_name":"gallery_browse"}}]Ja, Purchase Tracking sendet Bestellwert und Währung von der PrestaShop-Order-Confirmation-Seite. Das Modul baut außerdem Item Count, Order Reference, Product IDs, Names, Categories, Prices und Quantities und sendet das Purchase Event über den Browser Pixel, wenn Purchase Tracking aktiviert ist.
Der Order-Confirmation-Hook prüft zuerst das normale Tracking Gate: Das Modul muss aktiv sein, die IDs müssen gültig sein, Employee Exclusion darf den Request nicht blockieren, Marketing Consent muss bestehen, wenn aktiviert, und TRACK_PURCHASE muss an sein. Dann akzeptiert er entweder order oder objOrder aus den PrestaShop-Hook-Parametern und baut den Purchase Payload aus dieser geladenen Bestellung.
Das Value Mapping ist ausdrücklich. Common Conversion Data wird in AdRoll-artige Parameter konvertiert: value wird conversion_value, currency wird adroll_currency, num_items bleibt Item Count, order_id wird auf die PrestaShop Order Reference gesetzt, und Product Data wird product_id, content_ids und ein products-Array mit Item ID, Name, Price und Quantity, wo verfügbar.
Das Event bleibt browserseitig. Das Template ruft window.mpradrollTrack('purchase', params, 'Order confirmation') auf, wenn das Header-Script vorhanden ist, oder fällt auf window.__adroll.track/window.adroll.track zurück. Wenn AdRolls Legacy-Funktion record_user existiert, ruft das Template auch diese auf, aber das Modul sendet keinen Server-to-Server-Purchase-Request.
Ja. Wenn MPRADROLLPIXEL_RESPECT_CONSENT aktiviert ist, prüft das Modul unterstützte Cookie-Consent-Module, bevor es AdRoll Tracking rendert oder auslöst. Mit mprcookiesrevolution ist Marketing Consent nur granted, wenn das mprcr_consent-Cookie marketing:1 enthält. Mit mprcookiebanner ist Consent granted, wenn mprcookie_consent=granted. Wenn das relevante Cookie fehlt, fällt das Modul auf den DEFAULT_CONSENT-Wert dieses Consent-Moduls zurück.
mprcookiesrevolution allowed: mprcr_consent=essential:1|marketing:1|statistics:1
mprcookiesrevolution blocked: mprcr_consent=essential:1|marketing:0|statistics:1
mprcookiebanner allowed: mprcookie_consent=grantedWenn kein unterstütztes Consent-Modul aktiv ist, blockiert die Consent-Prüfung Tracking nicht. Employee Exclusion kann Tracking weiterhin separat unterdrücken, wenn MPRADROLLPIXEL_EXCLUDE_EMPLOYEES aktiviert ist.
Die Installationsdefaults sind privacy-orientiert: RESPECT_CONSENT=1 und EXCLUDE_EMPLOYEES=1. Die serverseitige Methode canTrack() gibt false zurück, wenn das Modul inaktiv ist, ein gültiger Employee Context im Front Office browst oder Marketing Consent nach den unterstützten Consent-Modul-Prüfungen nicht granted ist.
Das Browser-Template führt ebenfalls eine Consent-Prüfung aus, bevor AdRoll geladen wird. Wenn ein unterstütztes Consent-Modul aktiv ist, prüft es window.MPRCR.isGranted('marketing'), wenn verfügbar, dann dieselben zwei Cookies. Wenn diese clientseitige Prüfung fehlschlägt, kehrt das Script zurück, bevor roundtrip.js geladen oder queued Events gefeuert werden. Ein praktischer Gotcha ist, dass die clientseitige Prüfung den serverseitigen DEFAULT_CONSENT-Wert nicht kennt. Ein Setup, das sich auf default granted Consent ohne Consent Cookie verlässt, sollte daher im Browser getestet werden.
Nein, dieses Modul sendet AdRoll Events über den Browser Pixel, nicht über eine öffentliche serverseitige API. Der PrestaShop-Code enthält einen Demo-Hinweis, dass AdRoll S2S support-gated Beta ist; produktiv lädt das Modul roundtrip.js und sendet nur Browser Events.
Verwenden Sie dieses Modul, um separate Display Names für PrestaShop-CMS-Seiten zu setzen. Es speichert einen Display Name pro id_cms, Sprache und Shop in seiner eigenen mprcmsnames-Tabelle, sodass der native CMS-Datensatz und sein SEO-meta_title in der CMS-Tabelle nicht umgeschrieben werden.
- Beispiel: Lassen Sie den CMS-Seiten-Meta-Title für SEO als
Terms and Conditions | My Shop. - Öffnen Sie den CMS Display Names-Bildschirm des Moduls und finden Sie diese CMS-Seitenzeile nach ID und bestehendem Meta Title.
- Geben Sie einen kürzeren Display Name wie
Termsim Display Name-Feld ein und speichern Sie. - Im Front Office bekommt die CMS-Seitenüberschrift den Display Name über
filterCmsContent, und CMS-Links, die zu PrestaShopscms-page-link-Pattern passen, werden im finalen HTML ersetzt. - Wenn Sie das Display-Name-Feld leeren, löscht das Modul seine Custom-Zeile für diese CMS-Seite und der Shop fällt auf den ursprünglichen CMS-
meta_titlezurück.
Die praktische Trennung lautet also: Nutzen Sie den nativen CMS Title für Search Snippets und Browser-Title-Verhalten, und nutzen Sie dieses Modul für kürzere Seitenüberschriften, Footer-Links und Menülabels, die Käufer tatsächlich scannen.
Das Modul hat zwei Front-Office-Pfade. Erstens ändert filterCmsContent das CMS-Objekt, das an das Seitentemplate übergeben wird, indem es meta_title durch den gespeicherten Display Name für aktuelle Sprache und Shop ersetzt. Zweitens bearbeitet actionOutputHTMLBefore das finale HTML für passende CMS-Links, bevor die Antwort gesendet wird.
Der Source-Kommentar ist ausdrücklich, dass das echte HTML-<title>-Tag unberührt bleibt, weil PrestaShop es über Meta::getMetaTags() mit seinem eigenen SQL-Pfad baut. Deshalb kann dieses Modul sichtbare Namen kürzen, ohne den von PrestaShop gespeicherten CMS-SEO-Title zu überschreiben.
Theme-Markup ist weiterhin wichtig. Link-Relabeling läuft nur auf Anchors, die zum erwarteten CMS-Link-Pattern des Moduls passen, mit CMS Page ID in link-cms-page-{id}-... und dem exakten cms-page-link-Class-Attribut in der von der Regex erwarteten Reihenfolge. Wenn ein Theme CMS-Menüs mit anderem Markup oder verschachteltem HTML innerhalb des Anchor-Texts baut, kann die Überschrift weiterhin geändert werden, aber der Linktext möglicherweise nicht ersetzt werden.
Nein, es schreibt das HTML-title-Tag nicht um. Das Modul ist bewusst auf sichtbaren CMS-Inhalt und gerenderten CMS-Linktext begrenzt, sodass PrestaShop weiterhin den ursprünglichen CMS Meta Title für Page Head und Search Snippets verwenden kann.
Der Source-Kommentar sagt, dass das <title>-Tag durch PrestaShops Meta::getMetaTags()-Pfad gebaut wird und unberührt bleibt. Das Modul aktualisiert die native CMS-Tabelle nicht, hängt sich nicht in Meta-Tag-Generierung ein und schreibt keinen neuen SEO Title zurück nach PrestaShop.
Was es ändern kann, ist das CMS-Objekt, das durch filterCmsContent läuft. Wenn das Seitentemplate den meta_title dieses gefilterten CMS-Objekts als sichtbare Überschrift nutzt, sehen Käufer den kürzeren Display Name auf der Seite. Separat kann actionOutputHTMLBefore passenden CMS-Linktext im finalen HTML ersetzen. Das sind Änderungen an sichtbarem Inhalt, keine Head-Tag-Änderungen.
Für SEO-Arbeit bearbeiten Sie weiterhin den echten CMS Meta Title in der nativen PrestaShop-CMS-Seite. Nutzen Sie dieses Modul, wenn der SEO Title zu lang für Menüs, Footer, Breadcrumbs oder On-page-Headings ist.
Es benennt CMS-Links um, die PrestaShops erwartetem CMS-Link-Markup entsprechen. Der Output-Hook sucht nach einem Anchor, dessen id mit link-cms-page-{id}- beginnt und dessen Klasse cms-page-link ist, und ersetzt dann den reinen Linktext durch den gespeicherten Display Name für aktuelle Sprache und Shop.
<a id="link-cms-page-3-1" class="cms-page-link" href="/content/3-terms-and-conditions">Terms and conditions</a>Dieses Pattern ist wichtig für angepasste Themes: Wenn der CMS-Link eine andere Klasse hat, keine link-cms-page-...-ID hat, die Klasse vor der ID im vom Modul anvisierten Markup erscheint oder das Label aus verschachteltem HTML statt Plain Text gebaut ist, matcht die Output-Ersetzung möglicherweise nicht.
Die Regex ist bewusst eng. Sie erwartet das id-Attribut vor class="cms-page-link" und erfasst Plain Text zwischen öffnendem und schließendem Anchor-Tag. Ein Link mit mehreren Klassen wie class="footer-link cms-page-link", ein Span innerhalb des Anchors oder eine komplett eigene Menükomponente kann außerhalb dieses Patterns liegen.
Die Ersetzung tut außerdem im Back Office nichts und kehrt früh zurück, wenn es keine Display Names für aktuelle Sprache und Shop gibt. Wenn der CMS-Footer oder das Menü Ihres Themes nicht umbenannt wird, prüfen Sie zuerst das generierte Anchor-Markup; oft besteht die Lösung darin, das Template das native PrestaShop-CMS-Link-ID- und Class-Pattern ausgeben zu lassen.
Ja, Display Names werden pro CMS-Seite, Sprache und Shop gespeichert. Die Modultabelle nutzt id_cms, id_lang und id_shop als Key, und das Speichern eines leeren Werts entfernt dieses gespeicherte Label, sodass PrestaShop auf den nativen CMS Title zurückfällt.
Der Front-Office-Lookup ist ebenfalls sprach- und shopspezifisch. Er lädt Zeilen aus mprcmsnames, bei denen id_lang der aktuellen Kontextsprache und id_shop dem aktuellen Kontextshop entspricht. Es gibt keinen breiten id_shop=0-Fallback in diesem Lookup. Ein für einen Shop gespeicherter Display Name wird also nicht automatisch von einem anderen Shop wiederverwendet.
Beim Speichern iteriert das Modul durch CMS-Seiten und Sprachen, ersetzt Zeilen, wenn ein Wert gepostet wurde, und löscht Zeilen, wenn der übermittelte Wert leer ist. Deshalb ist das Leeren eines Felds ein echter Reset, nicht nur ein leeres Custom Label.
Ein Implementierungsdetail in dieser Source-Version sollte geprüft werden: Die gerenderte Konfigurationstabelle zeigt den Default-Language-Input für jede CMS-Seite. Datenbank und Save-Logik unterstützen id_lang, aber das sichtbare Formular in diesem Checkout rendert keine separaten Eingabespalten für jede Sprache. Wenn Sie Display Names in Nicht-Default-Sprachen brauchen, bestätigen Sie, dass der installierte Build diese Inputs bereitstellt, oder ergänzen Sie sie, bevor Sie sich auf mehrsprachige Bearbeitung über das Standardformular verlassen.
Ja, das Modul generiert automatisch ein Passwort für unterstützte Registrierungs- und Checkout-Formulare. In PrestaShop zielt es auf übliche Customer-, Authentication- und Checkout-Passwortfelder und füllt password, passwd, confirmation und password_confirmation Inputs, wenn der konfigurierte Page Scope passt.
Die Installationsdefaults aktivieren das Modul, wenden es auf Registration und Checkout an, verstecken Passwortfelder, generieren ein 12-Zeichen-Passwort und enthalten Großbuchstaben, Zahlen und Sonderzeichen. Die anwendbaren Controller sind authentication, registration und identity für Registration, plus order, orderopc und order-opc für Checkout.
Auf PrestaShop 1.7+ registriert das Modul seine Front-CSS- und JavaScript-Dateien über actionFrontControllerSetMedia. Auf PrestaShop 1.6 lädt es die Assets aus displayHeader. Derselbe Header-Hook injiziert die Passwort-Einstellungen in window.mprcustomerpassword_config, damit das JavaScript sie nutzt.
Das Front Script findet benannte Felder wie password, passwd, confirmation und password_confirmation und scannt außerdem übliche Registration-/Authentication-Formulare nach jedem type=password-Input. Es generiert ein Passwort pro Seite, füllt alle passenden Felder mit demselben Wert, setzt autocomplete=new-password und fügt dem Formular einen versteckten mprcustpass_auto=1-Marker hinzu.
- Hidden mode: Der Passwortfeld-Wrapper wird versteckt und mit
aria-hiddenmarkiert. - Optional mode in code: Das Feld wird mit dem generierten Wert und einer Info-Nachricht angezeigt, aber das Script setzt das Feld auf
readonly. - Dynamic checkout forms: Ein
MutationObserververarbeitet neu eingefügte Passwortfelder erneut, und das Script schützt generierte Werte beim Submit und mit einer periodischen Prüfung.
Ja, es kann das generierte Passwort per E-Mail senden, wenn der E-Mail-Modus auf send password steht. Der PrestaShop-Account-Add-Hook sendet diese E-Mail nur, wenn das übermittelte Formular den Auto-Generation-Marker des Moduls enthält, sodass normale Kundenkonten nicht versehentlich verarbeitet werden.
Der Standard für EMAIL_MODE ist send_password. Wenn actionCustomerAccountAdd läuft, prüft das Modul zuerst, dass es aktiviert ist, und dann auf mprcustpass_auto im übermittelten Formular. Dieser Marker wird vom JavaScript erst hinzugefügt, nachdem es Passwortfelder gefüllt hat. Der E-Mail-Pfad ist also an modul-generierte Passwörter gebunden.
Für die Passwort-E-Mail liest das Modul das übermittelte Passwort zuerst aus password und fällt für ältere PrestaShop-Formulare auf passwd zurück. Wenn keiner der beiden Werte zur Hook-Zeit vorhanden ist, kehrt es ohne Senden zurück. Wenn es sendet, verwendet es das Mail-Template mprcustomerpassword_account und übergibt Vorname, Nachname, E-Mail, generiertes Passwort, Shop-Name und Shop-URL des Kunden.
Es gibt zwei wichtige Alternativen. Mit EMAIL_MODE=silent beendet der Hook sich, ohne eine Passwort-E-Mail zu senden. Mit EMAIL_MODE=setup_link sendet er einen Reset-/Setup-Link statt des generierten Passworts. Händler, die keine Passwörter per E-Mail versenden möchten, sollten Setup-Link- oder Silent-Modus statt des Standard-Send-Password-Modus verwenden.
Ja, das Modul kann einen Setup-Link statt des generierten Passworts senden. Im PrestaShop-Setup-Link-Modus erstellt es ein Reset Token, speichert eine 24-Stunden-Gültigkeit auf dem Kundendatensatz oder Legacy-Feldern und sendet dem Kunden einen Link zur Passwortseite.
Dieser Pfad wird mit EMAIL_MODE=setup_link gewählt. Derselbe Account-Add-Hook und der mprcustpass_auto-Marker gelten weiterhin, sodass die Setup-E-Mail nur für Konten gesendet wird, bei denen das Front Script des Moduls Passwortfelder generiert und übermittelt hat.
Auf neueren PrestaShop-Customer-Objekten, die reset_password_token bereitstellen, erstellt das Modul ein Token aus random_bytes(32), macht es URL-freundlich durch Ersetzen unsicherer Base64-Zeichen, speichert es in reset_password_token, setzt reset_password_validity auf 24 Stunden in der Zukunft, aktualisiert den Kunden und baut eine Passwortseiten-URL mit token, id_customer und reset_token.
Für den Legacy-Pfad erstellt das Modul ein MD5-Token, aktualisiert die customer-Tabellenfelder reset_password_token und reset_password_validity direkt mit einem 24-Stunden-Gültigkeitsfenster und baut die Passwortseiten-URL mit token und id_customer. Die E-Mail nutzt das Template mprcustomerpassword_setup mit {setup_link}, Kundenidentitätswerten, Shop-Name und Shop-URL.
Das generierte Passwort wird weiterhin verwendet, damit PrestaShop das Konto während Checkout oder Registrierung erstellen kann. Der Unterschied ist, was der Kunde anschließend erhält: Setup-Link-Modus sendet einen Link zum Auswählen eines Passworts, während Send-Password-Modus das generierte Passwort selbst sendet.
Nein, der optionale Modus zeigt das generierte Passwort, macht das Feld im aktuellen Skript aber schreibgeschützt. In PrestaShop blendet der versteckte Modus den Passwortbereich aus, während der optionale Modus den Wert mit Hinweis sichtbar lässt.
Sie fügen einen Facebook Page Access Token und eine Page ID hinzu und aktivieren dann den Feed. In PrestaShop ruft das Modul Beiträge aus der Facebook Graph API ab und kann sie in Home-, Footer-, Left-Column- oder Right-Column-Hooks rendern.
Das Verbindungsformular erwartet Page Access Token und Page ID. Die Admin-Hilfe verweist Händler auf eine Facebook Developer App mit Pages API Access und den Berechtigungen pages_read_engagement und pages_read_user_content. Page Name ist optional und wird für den Feed Header verwendet, wenn angegeben.
- Der Standard-Display-Hook ist
displayHome, aber das Modul unterstützt außerdemdisplayFooterBefore,displayFooter,displayLeftColumnunddisplayRightColumn. - Die Standard-Post-Anzahl ist
6, das Standardlayout ist ein 3-column grid, und der Shared Feed Cache ist standardmäßig3600Sekunden. - Wenn Access Token oder Page ID fehlen, gibt der Facebook-API-Fetch keine Beiträge zurück, sodass der Front-Office-Block nichts rendern kann.
MPRFB_ACCESS_TOKEN=your-page-token
MPRFB_PAGE_ID=your-page-id
MPRFB_DISPLAY_HOOK=displayHome
MPRFB_POST_COUNT=6Wenn konfiguriert, ruft das Modul Facebook Graph API v21.0 für die Page Posts auf, speichert den normalisierten Feed im Cache und rendert nur in dem Hook, der in den Moduleinstellungen ausgewählt ist.
Ja, es kann Beitragstext, Medien, Datum, Reactions, Shares, Comments und Author-Informationen anzeigen. In PrestaShop werden diese Anzeigeoptionen getrennt konfiguriert, und geteilte Beiträge können ausgeschlossen werden, wenn die Einstellung EXCLUDE_SHARED aktiviert ist.
Die relevanten Schalter sind separate Einstellungen wie SHOW_TEXT, SHOW_MEDIA, SHOW_DATE, SHOW_REACTIONS, SHOW_SHARES, SHOW_COMMENTS und SHOW_AUTHOR. Text ist standardmäßig aktiviert und wird mit Ellipse gekürzt, wenn er TEXT_LENGTH überschreitet, standardmäßig 200 Zeichen.
- Medien werden zuerst aus Facebook Attachments und Subattachments gezogen, mit
full_pictureals Fallback. - Reaction-, Comment- und Share Counts kommen aus den Summary Fields, die Facebook zurückgibt. Die angezeigten Counts hängen also davon ab, was die API Response enthält.
- Wenn
EXCLUDE_SHAREDaktiviert ist, werden Beiträge mitstatus_typegleichshared_storyübersprungen. - Beiträge ohne Message Text und ohne Bild werden vor dem Rendering übersprungen.
Das ist wichtig, weil ein Händler einen kompakten Social-Proof-Block nur mit Bildern und Engagement Counts oder einen umfassenderen Editorial Feed mit Captions, Dates und Page Attribution bauen kann.
Freigegebene Projekte unterstützen Community-Votes und verschachtelte Kommentare. Vote- und Aufrufzahlen werden pro Projekt gespeichert und zeigen Ihnen einfach, welche Kundenarbeiten am besten ankommen.
Ja. Das Modul cached den Facebook Feed in einer JSON-Datei namens mprfb_feed_cache.json. Der Cache speichert einen cached_at-Zeitstempel und die abgerufenen posts und verwendet diese Posts wieder, bis die konfigurierte Dauer abläuft.
Cache file: mprfb_feed_cache.json
Duration setting: MPRFB_CACHE_DURATION=3600
Admin refresh: submitMprfbSync clears the file; the next front-office feed load fetches fresh posts and writes cached_at + postsDie Standard-Cache-Dauer im Shared Feed Trait beträgt 3600 Sekunden. Das Konfigurationsformular des Moduls bietet übliche Dauerwerte wie 30 Minuten, 1 Stunde, 2 Stunden, 6 Stunden, 12 Stunden und 24 Stunden. Admin Refresh und Clear-Cache-Aktionen entfernen beide die Cache-Datei, sodass der nächste Feed-Request wieder zur Facebook-Quelle gezwungen wird, statt veraltete gecachte Posts auszuliefern.
Der Cache ist request-unabhängig, sodass normale Käufer nicht bei jedem Seitenaufruf einen Facebook-API-Call auslösen. Wenn die Cache-Datei fehlt, leer ist, ungültiges JSON enthält oder älter als die konfigurierte Dauer ist, behandelt der Shared Feed Trait sie als abgelaufen und ruft erneut ab. Das Speichern feed-bezogener Konfiguration leert ebenfalls den Feed Cache, was verhindert, dass Layout- oder Count-Änderungen mit alten Post-Daten gemischt werden.
Für beschäftigte Stores ist das der wichtigste Schutz gegen langsame Seitenaufrufe und unnötigen API-Druck. Für Kampagnenstarts nutzen Sie nach dem Posten auf Facebook die Admin-Refresh-Aktion, wenn der Storefront-Block neuen Inhalt sofort aufnehmen soll, statt auf das nächste Cache-Ablaufen zu warten.
Ja, es kann Blogbeiträge auf Facebook veröffentlichen, aber der Autopublish-Workflow ist um MPR-Blog-Revolution-Beiträge gebaut, nicht um jedes mögliche Drittanbieter-Blogmodul. Das Facebook-Modul nutzt den Shared Social Publisher Trait, hört auf PrestaShop Object Add und Update Hooks, prüft, dass Auto-Publish aktiviert ist, prüft auf ein Blog-Revolution- oder Post-artiges Objekt und fährt nur fort, wenn das Objekt status = 1 hat.
Duplicate Prevention wird in der Tabelle mpr_social_publish gespeichert. Vor dem Senden prüft das Modul, ob mprfacebookpostsintegration bereits Object Type blog_post mit dieser Post ID auf Plattform facebook veröffentlicht hat. Erfolgreiche Sends werden mit Platform Post ID, Platform URL, Caption, Media URLs und Status published aufgezeichnet, sodass spätere Add- oder Update-Hooks denselben Beitrag überspringen, statt ihn erneut zu senden.
Captions kommen aus dem Auto-Publish-Template des Facebook-Moduls. Unterstützte Platzhalter sind {title}, {excerpt}, {url} und {shop_name}. Wenn der Blogbeitrag ein Featured Image hat, baut der Publisher seine Media URL aus img/mprblogrevolution/posts/. Wenn Facebook-Zugangsdaten fehlen, der Publisher nicht konfiguriert ist oder eine erforderliche Plattformbedingung nicht erfüllt ist, kehrt der Auto-Publish-Pfad ohne Posting zurück.
Der Facebook-spezifische Publisher ist nur konfiguriert, wenn sowohl PAGE_ID als auch ACCESS_TOKEN existieren. Er nutzt Facebook Graph API v21.0, unterstützt Text Posts, Link Posts und Photo/Image Posts im implementierten publish()-Pfad, erlaubt ein Media Item pro Send und hat ein Zeichenlimit von 63206. Ein media-only Image Post wird über den Page Photos Endpoint gesendet, während Link- oder Text Posts den Page Feed Endpoint nutzen.
Obwohl getSupportedMediaTypes() aktuell video auflistet, lädt der implementierte Publisher keine Videos hoch und ruft keinen Videos Endpoint auf. Behandeln Sie Video Publishing als unsupported, solange kein echter Video-Publishing-Pfad hinzugefügt wird.
MPRFB_AUTOPUBLISH=1
MPRFB_AUTOPUBLISH_CAPTION={title}
{excerpt}
Read more: {url}Das Modul überspringt außerdem seinen eigenen Publisher-Pfad, wenn die breitere mprsocialrevolution-Übernahme für Facebook aktiv ist, damit zwei Social-Module nicht versuchen, denselben Blogbeitrag gleichzeitig zu veröffentlichen.
Das Modul fügt eigene Seiten für Galerie, Kategorie, Projekt, Einreichung und einen Kundenbereich „meine Projekte“ hinzu, jeweils mit eigener SEO-freundlicher URL. Ausgewählte freigegebene Projekte lassen sich zusätzlich in bestimmten Shop-Bereichen anzeigen.
Alle Galerietexte – Kategorien, Projekte und Kommentare – werden pro Sprache gespeichert, sodass die Galerie vollständig mehrsprachig ist. Das Modul läuft auf PrestaShop 1.6.1 bis 9.x.
Ja, jedes Feed Profile kann eigene Sprache, Währung, Zielländer und Labels tragen. Das ist nützlich, wenn ein Store in mehrere Märkte mit unterschiedlicher Katalogsprache oder Werbestruktur verkauft. Klare Feed-Trennung hilft Managern außerdem zu verstehen, welcher Markt Umsatz bringt und welcher Aufmerksamkeit braucht.
Im Feed-Modell speichert jedes Profil id_lang, id_currency, id_shop, target_country, feed_label, content_language und sync_mode. Ein neuer Feed fällt im aktuellen Source auf französische Einstellungen zurück: target_country=FR, feed_label=FR und content_language=fr.
target_country=AE,AU,GB,US
feed_label=GB
content_language=en
sync_mode=file_only or apitarget_countrywird auf Uppercase normalisiert und kann ein Zwei-Buchstaben-Ländercode oder eine kommaseparierte Liste sein.feed_labelwird auf Uppercase normalisiert und muss zu Googles Merchant-API-Label-Form passen: Großbuchstaben, Zahlen und Bindestriche, bis 20 Zeichen.content_languagewird auf Lowercase normalisiert und muss für API Product Input ein Zwei-Buchstaben-Sprachcode sein.- Für API Sync sind getrennte Feed Profiles meist sauberer, wenn jeder Markt ein eigenes Label, eine eigene Währung oder Sprache braucht.
Der Front Feed Controller liefert einen bestimmten Feed nach ID oder Dateiname mit Token aus, nutzt eine Cache TTL von standardmäßig 3600 Sekunden und kann mit generate=1 regenerieren. So kann ein PrestaShop-Shop getrennte Merchant Feeds pflegen, ohne Länder, Sprachen oder Kampagnenlabels zu mischen.
Nein, die Source-Beschreibung sagt, dass PrestaShops interne numerische Werte darunter unverändert bleiben. Das Modul passt die Nummern an, die auf Rechnungen, Lieferscheinen und Gutschriften angezeigt werden. Wenn Sie die Bestellreferenzen selbst anpassen müssen, empfiehlt die Source das separate Produkt Custom Order Numbering.
Das Rechnungsmodul bestätigt diese Trennung im Code: hookActionSetInvoice generiert und loggt die formatierte Rechnungsreferenz, lässt PrestaShops gespeicherte Rechnungsnummer aber absichtlich numerisch/nativ. Der angezeigte formatierte String wird später über actionInvoiceNumberFormatted geliefert, und Delivery-Note-Generierung speichert den numerischen Counter-Wert in order_invoice.delivery_number.
Default invoice format: {DOC_TYPE}/{YYYY}/{NNNNNN}
Default delivery format: {DOC_TYPE}/{YYYY}/{NNNN}
Default credit slip format: {DOC_TYPE}/{YYYY}/{NNNN}Generierte Werte werden in mprinvoicenumber_number mit Document Type, Order-, Invoice- oder Slip-IDs, Counter Value, Pattern und Formatted Number aufgezeichnet. So erhalten Sie benutzerdefinierte kunden sichtbare Dokumente, ohne Order IDs oder zufällige Order References zu ändern; diese werden von mprordernumber behandelt.
Das Modul gibt über displayProductListReviews einen Indikator aus. Sein JavaScript findet die umgebende Produktminiatur und fügt ein Bundle-Badge in den Bildbereich ein.
Der Tab listet konfigurierte enthaltene Produkte in einem Grid auf. Jede Karte kann Produktbild, Produktname, formatierten Preis oder FREE bei Nullpreis und einen Link zum enthaltenen Produkt anzeigen.
Es enthält einen Dispatcher-Helper für reine Rewrite-Routen. Wenn einer Route eine ID fehlt, kann er passende Kategorie-, Produkt-, CMS- oder Hersteller-Slugs auflösen und Request-Parameter entsprechend aktualisieren.
Ja. Das Adminformular speichert das Enabled-Flag, und jeder Front-Hook kehrt früh zurück, wenn isFeatureEnabled() false ist.
Der serverseitige Pfad erfordert, dass CAPI aktiviert und ein Reddit Access Token konfiguriert ist. Die Events Testing ID ist optional und wird nur verwendet, wenn sie vorhanden ist.
Nein, die Quelle beschreibt Browser-Events und serverseitige Events, die mit gemeinsamen Conversion-IDs parallel laufen. Der serverseitige Pfad kann Lücken reduzieren, wenn Browser-Tracking blockiert wird, während das Browser-Pixel weiterhin clientseitiges Verhalten erfasst. Sorgfältig kombiniert geben beide Reddit vollständigere Signale als nur ein eingefügtes Pixel.
Das Browser-Tracking wird in den Header- und Bestellbestätigungs-Hooks vorbereitet. Das Modul kann Events wie PageVisit, ViewContent, Search, SignUp, InitiateCheckout, Add-to-cart-Bridge-Events und Purchase ausgeben. Wenn die Conversions API aktiviert ist, werden passende Events serverseitig mit derselben Identität in die Warteschlange gestellt: Browser-Parameter verwenden conversionId, während die API-Nutzlast conversion_id in den Event-Metadaten speichert.
- Für Browser-Tracking ist eine Reddit Pixel ID erforderlich.
- Die Conversions API benötigt zusätzlich ein Zugriffstoken, und das Modul sendet für das konfigurierte Pixel an den Conversion-Endpunkt von Reddit.
- Mitarbeiterausschluss und Marketing-Consent-Prüfungen laufen über
canTrack(), bevor Front-Office-Tracking vorbereitet wird. - Das Standard-Batch-Limit der CAPI-Warteschlange ist
20, während Front-Bridge- und Kaufpfade kleine Batches sofort verarbeiten.
Die praktische Einrichtung besteht darin, das Browser-Pixel für normale clientseitige Events aktiv zu lassen und die Conversions API als ergänzendes serverseitiges Signal zu verwenden, nicht als Ersatz.
Das Modul mappt die meisten Standardaktionen direkt, wahrend InitiateCheckout im serverseitigen Mapping als Reddit Custom Event namens InitiateCheckout gesendet wird.
Ja. Die Konfiguration enthalt Mitarbeiterausschluss, und die Tracking-Sperre pruft ihn, bevor die Front-Pixel-Ausgabe erstellt oder Ereignisse uber den Modul-Tracking-Pfad zugelassen werden.
Die verfuegbare Hook-Liste umfasst displayHome, displayFooterCategory, displayLeftColumn, displayRightColumn, displayFooterBefore, displayFooterProduct, displayProductAdditionalInfo, displayOrderConfirmation2 und displayCrossSellingShoppingCart.
Ja, die Quellbeschreibung umfasst kuratierte Produktsammlungen ebenso wie dynamische Widgets. Manuell ausgewählte Sammlungen sind nützlich für Kampagnen, redaktionelles Merchandising und margenorientierte Promotion. Dynamische Quellen sind nützlich, wenn Bestseller, neue Produkte oder wieder verfügbare Artikel mit weniger manueller Arbeit aktuell bleiben sollen.
Kuratierte Sammlungen werden getrennt von Widgets gespeichert. Die Collection-Product-Tabelle speichert id_collection, id_product und position, und setProducts() schreibt diese Liste in der vom Admin gespeicherten Reihenfolge neu. Ein Widget kann dann den Widget-Typ collection verwenden und auf die gewählte Sammlung zeigen.
- Collection-Typen umfassen
curated,staff_picks,seasonalundspotlight. - Öffentliche Collection-Abfragen geben aktive Shop-Produkte zurück und behalten die gespeicherte Collection-Product-Reihenfolge bei.
- Wenn das Widget Bilder benötigt, filtert der Provider Produkte ohne nutzbares Bild heraus.
- Automatische Widget-Typen mit implementierten Product Providern umfassen
bestsellers,new,sale,featured,trending,back_in_stockundcart_recommendations. recently_viewedist im Modell als Widget-Typ/Label aufgeführt, abergetProducts()hat dafür noch keinen Provider-Fall. Daher sollte es nicht als funktionale automatische Liste präsentiert werden, bis diese Implementierung ergänzt ist.
Das bedeutet, dass Sie für einen Homepage- oder Produktseitenblock eine Kampagnenkollektion manuell auswählen und gleichzeitig an anderer Stelle im selben PrestaShop-Shop implementierte dynamische Blöcke nutzen können.
Ja. Das Widget-Modell speichert hide_products_without_images, und Produktabfragen bzw. die Provider-Zusammenstellung verwenden dieses Flag, um fuer viele Widget-Quellen ein Shop-Coverbild zu verlangen.
Das Modul hoert auf actionUpdateQuantity. Wenn die Menge eines Produkts von null oder weniger auf einen positiven Wert steigt, fuegt es eine Zeile in mprshowcaserevolution_stock_change ein, die die Produktquelle fuer wieder verfuegbare Produkte nutzen kann.
Installieren und aktivieren Sie das Modul, um auf PrestaShop-Produktseiten einen Ask a question-Button hinzuzufügen. Er wird über den Hook displayProductAdditionalInfo gerendert, öffnet ein modales Formular neben den Produktinformationen und übernimmt Produktname, Referenz und Produkt-ID in die Anfrage.
Bei der Installation speichert das Modul ENABLED=1, setzt RECIPIENT_EMAIL aus PS_SHOP_EMAIL und verwendet [Product Question] als Standard-Präfix für den Betreff. Der Hook weist dem Smarty-Template Produktname, Produktreferenz, Produkt-ID, AJAX-URL und einen versteckten Token-Wert zu.
- Front Hook:
displayProductAdditionalInfo. - AJAX-Endpunkt:
module/mpraskaboutproduct/ask. - Admin-Einstellungen: Aktivierungsschalter, Empfänger-E-Mail und Betreff-Präfix.
Das Ergebnis ist ein produktspezifisches Anfrageformular auf der Produktseite, sodass der Händler die Nachricht mit Produktkontext erhält statt als allgemeine Kontaktanfrage.
Ja, Kunden senden die Produktanfrage direkt aus dem modalen Fenster im Storefront. Der PrestaShop Front Controller empfängt Absendername, Absender-E-Mail, Nachricht, Produktname und Produkt-ID per AJAX und gibt anschließend eine JSON-Erfolgs- oder Fehlermeldung zurück, ohne dass der Kunde ein E-Mail-Programm öffnen muss.
Das Template sendet eine FormData-Anfrage an den Front Controller des Moduls und aktualisiert das modale Fenster mit der JSON-Antwort. Bei Erfolg wird das Formular zurückgesetzt und der Kunde sieht die Erfolgsmeldung; bei Validierungs- oder Mailfehlern zeigt dasselbe Modal den zurückgegebenen Fehler.
- Die Anfrage gilt als ungültig, wenn der erwartete
sender_email-Submit-Marker fehlt. - Der Controller sendet an den konfigurierten Modulempfänger oder fällt auf die Shop-E-Mail zurück.
- Wenn das Mail-Template
questiondes Moduls existiert, wird es verwendet; andernfalls fällt der Code auf das PrestaShop-Core-Templatecontactzurück.
So bleibt die Anfrage im PrestaShop-Storefront-Workflow, und Produktname sowie Produkt-ID bleiben im E-Mail-Inhalt erhalten.
Es validiert die Anfrage im AJAX Front Controller, bevor die E-Mail gesendet wird. Eine Anfrage muss sender_email übermitteln, und die Pflichtfelder sind sender_name, sender_email und message. Die E-Mail wird mit PrestaShops Validate::isEmail() geprüft, und die Nachricht mit Validate::isCleanHtml().
POST /module/mpraskaboutproduct/ask sender_name=Alice&sender_email=alice@example.com&message=Can you confirm availability?&id_product=42&product_name=Demo product- Ein fehlender
sender_email-Submit-Marker gibt{"success":false,"message":"Invalid request."}zurück. - Leerer Name, leere E-Mail oder leere Nachricht gibt
{"success":false,"message":"All fields are required."}zurück. - Eine ungültige E-Mail gibt
{"success":false,"message":"Invalid email address."}zurück. - Unsicheres Nachrichten-HTML gibt
{"success":false,"message":"Invalid message content."}zurück.
Wenn die Validierung erfolgreich ist, sendet das Modul die Anfrage an die konfigurierte Empfänger-E-Mail und fällt auf die Shop-E-Mail zurück, wenn kein Modulempfänger gesetzt ist.
Nach der Validierung baut der Controller den E-Mail-Betreff aus dem konfigurierten Betreff-Präfix plus dem übermittelten Produktnamen. Die Nachricht wird escaped und mit nl2br() für das E-Mail-Template umgewandelt. Produktname und Produkt-ID werden in die Mail-Variablen aufgenommen, sodass Mitarbeiter den Artikel identifizieren können, ohne den Kunden erneut nach Details fragen zu müssen.
Das Modal enthält ein verstecktes Token-Feld, aber der aktuelle Controller-Pfad validiert Anfragefelder und Nachrichteninhalt, statt dieses Token zu prüfen. Wenn stärkerer Anti-Spam-Schutz erforderlich ist, ergänzen Sie ihn rund um das Front-Formular, statt davon auszugehen, dass dieser Controller eine CSRF-Token-Prüfung durchführt.
Ja, mit dem Modul können Sie Empfänger-E-Mail und Betreff-Präfix für Produktfragen festlegen. Wenn kein Empfänger konfiguriert ist, fällt der PrestaShop Front Controller auf die Shop-E-Mail-Adresse zurück und sendet die Nachricht mit enthaltenem Produktkontext.
Die Konfigurationsklasse stellt RECIPIENT_EMAIL und SUBJECT_PREFIX bereit. Während der Installation wird RECIPIENT_EMAIL aus PS_SHOP_EMAIL initialisiert, und SUBJECT_PREFIX ist standardmäßig [Product Question]. Im Front Controller wird ein leerer Empfänger durch Configuration::get('PS_SHOP_EMAIL') ersetzt.
Recipient: mpraskaboutproduct.RECIPIENT_EMAIL or PS_SHOP_EMAIL
Subject: SUBJECT_PREFIX + product nameDas ist nützlich, wenn Produktfragen statt an die allgemeine PrestaShop-Kontaktadresse an ein Sales-Postfach, ein technisches Team oder einen Lieferanten-Desk gehen sollen.
Ja. Bewertungen werden geprüft, bevor sie gespeichert werden, und fehlgeschlagene Prüfungen geben einen Validierungsfehler zurück, statt die Bewertung stillschweigend anzunehmen. Die Quelle enthält diese Schutzmechanismen:
- Same-IP-Rate-Limit: Wenn
MIN_TIME_BETWEENgrößer als null ist, prüft das Modul, ob dieselbe IP innerhalb der konfigurierten Sekundenzahl in diesem Shop bereits eine andere Bewertung gepostet hat. - reCAPTCHA: Wenn aktiviert, verifiziert das Modul das übermittelte Token bei Google. Es unterstützt v2 und v3; v3 verwendet einen Score-Schwellenwert von
0.5. Ein fehlendes Token lässt die Prüfung fehlschlagen, während ein fehlender Secret Key oder ein Netzwerkproblem bei der Verifizierung als nicht blockierend behandelt wird. - Link- und Tag-Prüfungen: Inhalte mit mehr als zwei URLs werden abgelehnt, und offensichtliches eingebettetes HTML wie
<script>,<iframe>,<object>,<embed>und<form>wird blockiert.
Der Mindestzeit-Schutz ist eine Prüfung des Zeitabstands zwischen Bewertungen für dieselbe IP, kein Formular-Ladetimer. Um reCAPTCHA als aktiven Schutz zu nutzen, aktivieren Sie es und konfigurieren Site Key und Secret Key in den Moduleinstellungen.
Der breitere Einreichungsablauf ergänzt weitere praktische Schutzmaßnahmen. Bewertungen benötigen einen gültigen Entity Type, eine Entity ID, Inhalt mit mindestens 10 Zeichen und eine Bewertung von 1 bis 5. Gastbewertungen sind standardmäßig deaktiviert, und eingeloggte Kunden werden daran gehindert, dieselbe Entität zweimal zu bewerten, sofern die vorherige Bewertung nicht als Spam markiert wurde.
MODERATIONist standardmäßig1, daher werden neue Bewertungen alspendinggespeichert, sofern Moderation nicht deaktiviert ist.MIN_TIME_BETWEENist standardmäßig30Sekunden.- Bei Produktbewertungen durch eingeloggte Kunden kann das Modul eine Bewertung als verifizierten Kauf markieren, wenn es eine gültige Bestellung findet, die dieses Produkt enthält.
- Foto-Uploads sind, wenn aktiviert, auf JPEG, PNG und WebP beschränkt, mit Standardlimits von 3 Bildern und 2 MB pro Bild.
Es ist dennoch kein Betrugserkennungssystem. Der Code bietet Rate Limiting, reCAPTCHA, Inhaltsprüfungen, Duplikatvermeidung, Verified-Purchase-Markierung und Moderation. Händler sollten Moderation daher aktiviert lassen, wenn Bewertungsqualität wichtig ist.
Ja, Bewertungen sind nicht auf Produktseiten beschränkt. Das Modul enthält Entity-Handling für Produkt-, Kategorie-, CMS- und Shop-Bewertungen sowie eine öffentliche Bewertungsroute. Jeder Anzeigebereich wird per Konfiguration gesteuert und über PrestaShop-Front-Office-Hooks oder Controller gerendert.
Das Datenmodell speichert Bewertungen mit entity_type und entity_id, und der Submission Service akzeptiert product, category, cms und store als gültige Entity Types. Die Einstellungsseite hat separate Schalter für PRODUCT_REVIEWS, CATEGORY_REVIEWS, CMS_REVIEWS und STORE_REVIEWS; in den aktuellen Defaults sind nur Produktbewertungen standardmäßig aktiviert.
Die automatische Produktseitenintegration ist der vollständigste Pfad im geprüften Code: Produktbewertungen werden über displayProductExtraContent gerendert, Listensterne über displayProductListReviews und das Produktbewertungs-Badge über Produktseiten-Hooks. Die öffentliche Bewertungsseite ist als /reviews verfügbar und kann genehmigte Bewertungen nach type=product, category, cms oder store filtern.
Allowed entity types: product, category, cms, store
Public route: /reviews
Filtered examples: /reviews?type=category or /reviews?type=storeFür Kategorie-, CMS- und Shop-Platzierungen sollten Sie die Front-Office-Platzierung sorgfältig planen. Die Quelle unterstützt diese Bewertungsdatensätze und den Reviews Hub, aber Produktseiten haben in den geprüften Dateien die stärkste eingebaute Hook-Abdeckung.
Ja, Erinnerungen können erstellt werden, nachdem eine Bestellung den konfigurierten Lieferstatus erreicht hat. Der PrestaShop-Bestellstatus-Hook plant Erinnerungen nur, wenn die Erinnerungsfunktion aktiviert ist, und das Modul speichert Erinnerungszeilen mit Bestell-, Kunden-, Verzögerungs- und Bewertungsstatusdaten.
Genauer gesagt lauscht der geprüfte Hook auf actionOrderStatusPostUpdate und prüft, ob der neue PrestaShop-Bestellstatus sein delivery-Flag gesetzt hat. Wenn REMINDERS_ENABLED aktiv ist, lädt er die Bestellprodukte und erstellt über ReviewReminder::createForOrder() eine Erinnerungszeile pro Produkt.
REMINDERS_ENABLEDist standardmäßig0.REMINDER_DELAY_DAYSist standardmäßig7.- Doppelte Zeilen für dieselbe Bestellung und dasselbe Produkt werden übersprungen.
- Produkte, die dieser Kunde bereits bewertet hat, werden übersprungen.
- Jede Erinnerungszeile speichert ein 64-Zeichen-Token und einen Status wie
pending,sentoderreviewed.
Das Modell enthält außerdem Helper, um ausstehende Erinnerungen nach der konfigurierten Verzögerung zu finden, Erinnerungen als gesendet zu markieren, sie als bewertet zu markieren und eine Erinnerung per Token zu laden. In den geprüften Dateien habe ich die Planung und das Datenmodell gefunden, aber keinen vollständigen E-Mail-sendenden Cron-Flow, der diese Helper-Methoden aufruft.
Ja, das Modul enthält externe Review Manager für Google Business Profile und Trustpilot. Wenn die erforderlichen API-Zugangsdaten konfiguriert sind, können externe Bewertungen in lokale External-Review-Tabellen synchronisiert und anschließend gemäß den PrestaShop-Moduleinstellungen angezeigt oder aggregiert werden.
Die External-Review-Tabelle speichert Quelle, Source Review ID, Autor, Titel, Inhalt, Bewertung, Source URL, Veröffentlichungsdatum, Sprache, optionale Produkt-ID, Shop-ID, rohe API-Daten und Sync-Zeitstempel. Ein Unique Key auf source plus source_review_id verhindert doppelte Importe, wenn dieselbe Bewertung erneut abgerufen wird.
- Trustpilot-Sync erfordert
EXT_TRUSTPILOT_ENABLED, einen API Key und eine Business Unit ID. Der Provider hat außerdem einen CSV-Import-Fallback für Trustpilot-Exporte. - Google Business Profile-Sync erfordert
EXT_GOOGLE_ENABLED, Service-Account-JSON mitclient_emailundprivate_keysowie Account ID und Location ID. - Der Cron Controller läuft unter
/module/mprcomments/cron?token=EXT_CRON_TOKEN&action=syncund gibt Sync-Ergebnisse je Quelle als JSON zurück. - Externe Unternehmensbewertungen können auf Produktseiten angezeigt, standardmäßig lazy-loaded und optional in Produktbewertungs-Badges mitgezählt werden, wenn externe Aggregation aktiviert ist.
Aus SEO-Sicherheitsgründen verwendet der Schema Renderer native Produktbewertungen für Product Structured Data. Importierte Unternehmensbewertungen können Käufern angezeigt werden, aber die Source-Kommentare halten sie ausdrücklich aus dem Product Review Markup heraus, sofern der Händler keine nativen Produktbewertungen hat.
Nein, eingereichte Projekte werden standardmäßig nicht automatisch veröffentlicht. In PrestaShop ist die Einstellung auto_approve standardmäßig 0, sodass neue Projekte als pending gespeichert werden und öffentliche Galerieabfragen den genehmigten Projektstatus verwenden, bevor sie angezeigt werden.
Der Submit Controller ist kundenauthentifiziert und erfordert ein gültiges Security Token, bevor ein Projekt erstellt wird. Er validiert den Projekttitel, verlangt mindestens ein hochgeladenes Bild und erzwingt das konfigurierte Bildanzahl-Limit, bevor das Projekt gespeichert wird. Die Standard-Bildeinstellungen sind max_images=20 und max_image_size_mb=5.
Default: auto_approve=0
Submitted project status: pending
Public gallery status filter: approved- Wenn
auto_approvedeaktiviert bleibt, wird der Kunde nach dem Absenden zu My Projects weitergeleitet und das Projekt wartet auf Moderation. - Wenn
auto_approveaktiviert ist, speichert derselbe Submit Flow das neue Projekt mit Statusapproved. - Die Projekt-Adminliste unterstützt Bulk-Aktionen zum Genehmigen, Ablehnen, Hervorheben und Löschen.
- Der öffentliche Project Controller gibt für nicht genehmigte Projekte einen 404 zurück, sofern keine gültige Admin-Preview-Session besteht.
Für die meisten Shops ist es sicherer, Auto-Approval deaktiviert zu lassen, weil kundenseitig eingereichte Titel, Beschreibungen und Fotos geprüft werden, bevor sie im öffentlichen Showcase erscheinen.
Ja, Admins können Showcase-Bildern Produkt-Pins hinzufügen. In PrestaShop speichert jeder Pin x- und y-Bildkoordinaten, ein Label und geordnete Fallback-Produkt-IDs und löst dann ein aktives, vorrätiges Produkt für die öffentliche Projektanzeige auf.
Der Admin-Pin-Controller fügt Pins per JSON-AJAX hinzu, aktualisiert, löscht und lädt sie. Koordinaten müssen zwischen 0 und 100 liegen und werden auf zwei Dezimalstellen gerundet. Product-Fallback-IDs werden normalisiert, dedupliziert und als JSON gespeichert; die erste ID wird zusätzlich in das Legacy-Feld id_product geschrieben.
Pin fields: id_showcase_image, id_product, product_fallback_ids, x_percent, y_percent, label, position
Resolution order: first active in-stock product, then first active product- Die Admin-Produktsuche gibt aktive Produkte nach Name, Referenz oder Produkt-ID zurück, begrenzt auf 20 Ergebnisse.
- Auf der öffentlichen Projektseite werden Pins mit Produkt-URL, Cover-Bild und formatiertem Preis angereichert.
- Der Front-AJAX-Pin-Endpunkt kann außerdem das Product-Miniature-Template des Themes rendern, wenn verfügbar.
- Wenn alle Fallback-Produkte inaktiv sind, bleibt der Pin positioniert, löst aber kein Produkt auf.
Damit kann ein Händler ein Kundengaleriebild in ein kaufbares Lookbook verwandeln und zugleich eine Fallback-Liste für ausverkaufte oder deaktivierte Produkte behalten.
Ja, doppelte Votes desselben Kunden für ein Projekt werden verhindert. In PrestaShop besitzt die Vote-Tabelle einen eindeutigen Schlüssel aus Projekt und Kunde, und das Vote-Modell aktualisiert den bestehenden Eintrag statt eine zweite Zeile anzulegen.
Ja. Eine Customer Showcase-Projektseite außerhalb der Preview kann JSON-LD ausgeben, wenn der Project Controller genügend Daten zum Erstellen hat. Der Controller sammelt Projekttitel, eine aufgelöste Page Meta Description, die kanonische Projekt-URL, große Showcase-Bild-URLs und Kategoriename. Anschließend gibt das Front-Template das JSON in einem application/ld+json-Script aus, wenn project_schema_json nicht leer ist.
{"@context":"https://schema.org","@type":"ImageGallery","name":"Bathroom renovation","description":"Short project summary","url":"https://shop.example/showcase/bathroom-renovation","mainEntityOfPage":"https://shop.example/showcase/bathroom-renovation","image":["https://shop.example/img/showcase/large/photo.jpg"],"about":"Bathrooms"}Der vom Modul verwendete Schema-Typ ist ImageGallery, beschreibt also die Kundenprojektgalerie, statt ein separates Produkt-, Service- oder Review-Schema zu beanspruchen.
Der Controller überspringt Schema bewusst im Preview-Modus: Preview-Seiten erhalten einen leeren project_schema_json-Wert, und der Preview Helper setzt noindex-Handling. Auf normalen Projektseiten werden große Bild-URLs aus img/showcase/large/ mit der Shop-SSL-Domain und Base URI gebaut, sodass die strukturierten Daten auf absolute Bild-URLs zeigen statt auf Thumbnail- oder Medium-Dateien, die an anderer Stelle auf der Seite verwendet werden.
- Quelle der Beschreibung: Das JSON-LD nutzt die aufgelöste Page Meta Description. Das ist die gespeicherte Projekt-Meta-Description, wenn eine vorhanden ist; andernfalls generiert der Controller eine titelbasierte Customer-Showcase-Beschreibung. Die bereinigte und gekürzte Projektbeschreibung ist nur ein letzter Fallback innerhalb von
buildProjectSchema(), falls die aufgelöste Meta Description weiterhin leer ist. - Optionale Felder:
imagewird nur eingebunden, wenn Projektbilder existieren, undaboutnur, wenn das Projekt einen Kategorienamen hat. - Ausgabesicherheit: Das JSON wird mit
json_encode(..., JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)erzeugt und fällt bei Bedarf aufTools::jsonEncode()zurück. Danach gibt Smarty dieses vorbereitete JSON ungefiltert innerhalb des JSON-LD-Scripts aus.
Nein. Das Modul implementiert nur den PrestaShop-seitigen Google Customer Reviews-Code; es enthält keinen Code, der einen Shop in Google Merchant Center anmelden, genehmigen oder berechtigt machen kann. Sie benötigen das für den Shop in Merchant Center verfügbare Google Customer Reviews-Programm, eine numerische Merchant ID und Bestelldaten, die Google für das Survey Opt-in akzeptiert.
Was das Modul steuern kann, ist die Storefront-Implementierung, nachdem diese Voraussetzungen erfüllt sind: Es speichert die Merchant ID, lädt Googles Survey Opt-in auf der Bestellbestätigungsseite, sendet Bestell-ID, Kunden-E-Mail, Lieferland, geschätztes Lieferdatum und Produkt-GTIN-Werte aus der Bestellung und rendert das Rating Badge an der konfigurierten Badge-Position.
Survey-Zustellung, Programmgenehmigung, Verkäuferbewertungsberechnung und die Anzeige von Bewertungen in Google-Eigenschaften bleiben unter Googles Kontrolle. Das Modul kann Opt-in- und Badge-Code ausgeben, aber es kann den Shop nicht genehmigen oder Google zwingen, Bewertungen anzuzeigen.
Bei der Installation startet das Modul deaktiviert mit leerer MERCHANT_ID, einer Standard-Badge-Position von BOTTOM_RIGHT und Badge-Sprache en. Der Storefront-Guard verlangt sowohl ENABLED als auch eine nicht leere Merchant ID, sodass ein installiertes, aber nicht konfiguriertes Modul weder Opt-in- noch Badge-Code ausgibt.
- Order confirmation opt-in: Der Hook läuft nur für eine geladene Bestellung, verwendet die Kunden-E-Mail der Bestellung, liest das Lieferland aus der Lieferadresse, nutzt ein einfaches geschätztes Lieferdatum von heute plus sieben Tage und übergibt
ean13jedes bestellten Produkts als GTIN-Wert. - Badge: Der Body-Closing-Hook rendert Googles Rating Badge mit der konfigurierten Merchant ID und einer der unterstützten Positionen, etwa
BOTTOM_RIGHT,BOTTOM_LEFToderINLINE. - Limit: Wenn Produkte keinen EAN13-Wert haben, sendet das Modul den Produkteintrag trotzdem mit leerer GTIN; ob Google diese Produktdaten akzeptiert oder verwendet, wird außerhalb von PrestaShop entschieden.
Nicht automatisch. Das Modul bietet Vorschau und Verlauf, aber die Quelle enthält keinen Ein-Klick-Rollback, der jedes Produkt auf seinen vorherigen Preis zurücksetzt. Bevor Sie ein Massenupdate anwenden, nutzen Sie die Vorschau, um betroffene Produkt-IDs, aktuellen Preis, berechneten neuen Preis und Differenz zu prüfen.
- Vor dem Anwenden: Exportieren oder sichern Sie die betroffenen Produkt-IDs und das Preisfeld, das Sie ändern, besonders bei einem breiten Scope wie allen Produkten, einer Kategorie oder einem Hersteller.
- Nach dem Anwenden: Das Modul schreibt einen Logeintrag mit Formel, Scope, Preisfeld, betroffener Anzahl, Mitarbeiter und Datum.
- Wenn Sie rückgängig machen müssen: Nutzen Sie das Log, um den Lauf zu identifizieren, und stellen Sie anschließend aus Ihrem Backup/Export wieder her. Die inverse Formel anzuwenden kann riskant sein, weil Rundung, spätere Preisänderungen und Änderungen am Produktscope die Rückrechnung von den ursprünglichen Werten abweichen lassen können.
Führen Sie bei risikoreichen Änderungen die Vorschau aus, exportieren Sie dieselbe Produktmenge und wenden Sie das Update in einer ruhigen Zeit an, damit Korrekturen aus bekannten Ausgangswerten erfolgen können.
Die Vorschau und das echte Update verwenden denselben Calculation Helper, sodass die Zahlen in der Vorschau auf denselben Formelaktionen basieren, die später angewendet werden: increase_percent, decrease_percent, increase_fixed und decrease_fixed. Prozentuale und feste Senkungen werden bei null begrenzt, und berechnete Preise werden vor dem Schreiben auf sechs Dezimalstellen gerundet.
increase_percent:10 => current price * 1.10; decrease_fixed:5 => max(0, current price - 5)Beim Anwenden aktualisiert das Modul sowohl product als auch product_shop für das ausgewählte Feld und unterstützt nur price oder wholesale_price. Der Scope Picker kann alle aktiven Produkte oder aktive Produkte in einer ausgewählten Kategorie, bei einem Hersteller oder bei einem Lieferanten ansprechen; inaktive Produkte werden von den Scope-Abfragen nicht ausgewählt.
Der Hook erlaubt URLs, die module/mprpasswordprotect oder module-mprpasswordprotect enthalten, und kehrt ebenfalls zurück, wenn der Parameter module des Requests dem Modulnamen entspricht.
Die Konfigurationsklasse stellt über das OptionsManager-Formular Schalter für Passwortschutz aktivieren, Passwort, Nachricht, Mitarbeiter-/Wartungs-Bypass und noindex bereit.
Ja. Die Installation erstellt eine nicht konfigurierbare Meta-Seite für module-mprpasswordprotect-gate mit dem Titel Password Required und dem URL-Rewrite password.
Der Gate-Controller setzt ein Fehlerflag und rendert dasselbe Passwort-Template erneut, das die übersetzte Nachricht Incorrect password. Please try again. anzeigt.
Nein. Der Resend-Controller sendet die neu aufgebaute Bestellbestatigungs-E-Mail und protokolliert eine private Nachricht, ruft aber keine Logik zur Anderung des Bestellstatus auf.
Vor dem Senden verlangt der AJAX Controller eine Bestell-ID und ein Modul-Token, validiert beides, lädt Bestellung und Kunde und ruft dann PrestaShops Standard-Mail::Send() mit dem Template order_conf aus _PS_MAIL_DIR_ und der ursprünglichen Shop-ID der Bestellung auf.
- Produkte: Es baut sowohl HTML- als auch Plain-Text-Produktzeilen aus
$order->getProducts()neu auf, einschließlich Produktname, optionale Referenz, Menge, Stückpreis inklusive Steuer und Gesamtpreis inklusive Steuer. - Adressen: Liefer- und Rechnungsblöcke werden mit
AddressFormat::generateAddress()erzeugt, mit einem Fallback aus Firma, Name, Straße, Postleitzahl und Stadt, falls die Adressformatierung fehlschlägt. - Audit Trail: Nach erfolgreichem erneuten Versand fügt es eine private Bestellnachricht hinzu und schreibt einen PrestaShop-Logeintrag; wenn das Mail-Senden fehlschlägt, gibt es einen JSON-Fehler zurück, statt den Bestellstatus zu ändern.
Das Modul sendet PrestaShops Standard-Template order_conf uber Mail::Send, nachdem Produktzeilen, Adressen, Summen, Versanddienst und Zahlungswerte aus der Bestellung neu aufgebaut wurden.
Nach erfolgreichem Versand erstellt das Modul eine private Bestellnachricht, die festhalt, dass die Bestatigung erneut gesendet wurde, inklusive Empfanger-E-Mail und Zeitstempel.
Das Modul muss aktiviert sein und PHONE_NUMBER muss gesetzt werden. Der Validator der Pflichtkonfiguration erwartet nur Ziffern und ein optionales fuehrendes Pluszeichen, zum Beispiel +1234567890.
Ja. Das gemeinsame Chat-Trait unterstuetzt ueber die Einstellung PAGES Seitenfilter fuer all, product, category und checkout.
Nein. Das gerenderte Template erstellt einen normalen Link zu Signal und verwendet lokales Modul-CSS sowie Inline-SVG fuer den Button. Im Hook-Template gibt es keinen externen Signal-JavaScript-Loader.
Wenn DELAY groesser als null ist, versteckt das Template das Widget zunaechst und zeigt es per Timeout nach der konfigurierten Anzahl von Sekunden an.
Das Modul speichert die Anzeigeauswahl des Besuchers im leichten mpr_tax_display-Cookie und bereitet früh im Front Controller PrestaShops Gruppen-Cache für Preisanzeige vor, damit Produktpreisberechnungen für diese Anfrage inklusive oder exklusive Steuer gerendert werden. Es aktualisiert keine Warenkörbe, Bestellungen, Steuerregeln, Rechnungen oder Kundengruppen in der Datenbank.
Auf Produkt-/Listing-Seiten injiziert es außerdem versteckte .mpr-tax-prices-Daten mit vorformatierten Preisen inklusive und exklusive Steuer, sodass JavaScript sichtbare Preise sofort austauschen kann. Wenn eine Seite keine injizierten Produktpreisdaten hat, etwa manche Warenkorb- oder Checkout-Seiten, speichert das Script die Präferenz und lädt neu, damit PrestaShop die Seite im gewählten Anzeigemodus rendert.
Checkout-Summe und Steuerbetrag werden weiterhin von PrestaShop aus Warenkorb, Adresse, Steuerregeln und normalem Checkout-Flow berechnet. Dieses Modul beeinflusst Anzeigepräferenz und Preislabels, nicht die steuerliche Berechnung.
Aktivieren Sie das Modul, um im PrestaShop-Storefront einen fixierten Back-to-top-Button zu rendern. Der Code gibt den Button aus Footer-/Body-Closing-Hooks aus, verhindert doppelte Ausgabe, wenn beide Hooks verfügbar sind, und enthält das benötigte CSS und JavaScript für den Button.
Nach der Installation sind die Defaults aktiviert: Anzeige nach 300 Pixeln, Stil circle und Position right. Das Modul registriert displayFooter, displayFooterAfter und displayBeforeBodyClosingTag; welcher unterstützte Hook von Ihrem Theme zuerst gerendert wird, gibt den Button aus, und spätere Hook-Aufrufe geben einen leeren String zurück, weil buttonRendered bereits gesetzt ist.
Das Template erstellt einen einzelnen fixierten Button mit ID mprb2t-btn, zugänglichem Label/Title, einem Inline-Up-Arrow-SVG sowie Inline-CSS/JavaScript. Es gibt in diesem Modul keine Produkt-, Kategorie- oder Seitenregel. Durch Aktivieren wird der Button daher überall verfügbar, wo das Theme einen dieser Footer-/Body-Closing-Hooks ausführt.
Ja, Sie können die Scroll-Distanz festlegen, bevor der Button erscheint. Die PrestaShop-Konfiguration speichert einen Show After-Wert in Pixeln, und das Storefront-JavaScript vergleicht diesen Schwellenwert mit window.pageYOffset, bevor es die sichtbare Button-Klasse hinzufügt oder entfernt.
Der Standard-Schwellenwert ist 300 Pixel, und das Admin-Feld wird als SHOW_AFTER gespeichert. Der Wert wird Smarty als mprb2t_show_after zugewiesen und wird im Template zur JavaScript-Variable threshold.
if (window.pageYOffset > threshold) { btn.classList.add('mprb2t-visible'); } else { btn.classList.remove('mprb2t-visible'); }Der Scroll Listener wird passiv registriert, und toggleBtn() läuft auch einmal direkt nach dem Laden des Scripts. Dadurch ist der Button-Zustand korrekt, auch wenn ein Käufer über einen Anker auf einer Seite landet oder zu einer gescrollten Position zurückkehrt.
Ja, das Modul unterstützt die in seiner Konfiguration vorhandenen Styling-Optionen: runde oder quadratische Form und linke oder rechte Bildschirmposition. Das PrestaShop-Template wendet diese Werte auf Inline-CSS an; der Code enthält keinen Color Picker und keine Regeln für Seitentargeting.
Die installierten Defaults sind STYLE=circle und POSITION=right. Im Template schreibt POSITION=left left: 30px; jeder andere konfigurierte Wert folgt dem rechten Zweig und schreibt right: 30px. Für die Form schreibt STYLE=circle border-radius: 50%, während die quadratische Option einen kleinen Radius von 6px nutzt.
- Feste Abmessungen: Der Button ist 48 mal 48 Pixel groß, am unteren Viewport fixiert und nutzt
z-index: 9999. - Eingebaute Farben: Das Template verwendet einen dunklen Hintergrund, weiße Icon-Farbe und einen dunkleren Hover-Zustand. Diese Werte sind im aktuellen Template hart codiert.
- Praktische Grenze: In der Konfigurationsklasse gibt es keine Einstellung für Icon-Auswahl, Position je Gerät, Animationsdauer oder benutzerdefinierte Farben.
Ja, ein Klick auf den Button scrollt die Seite sanft zurück nach oben. Das PrestaShop-Storefront-Script lauscht auf den Button-Klick, verhindert die Standardaktion und ruft window.scrollTo mit top auf 0 und behavior auf smooth auf.
Der Click Handler ist klein und direkt: Er ist an den erzeugten mprb2t-btn-Button gebunden, ruft e.preventDefault() auf und weist den Browser dann an, mit nativem Smooth Scrolling nach oben zu scrollen.
window.scrollTo({ top: 0, behavior: 'smooth' });Da das Modul das native scrollTo-Verhalten des Browsers statt einer eigenen Animationsschleife verwendet, bleibt es leichtgewichtig und speichert keinen Scroll-Zustand. Der Button wird erst sichtbar, nachdem der konfigurierte Schwellenwert überschritten ist; ein Klick lädt die Seite nicht neu und ändert die URL nicht.
Verwenden Sie MPR Compare, um PrestaShop eine clientseitige Vergleichsliste hinzuzufügen. Ausgewählte Produkt-IDs werden im Browser-localStorage unter dem Key mprcompare gespeichert, während das Modul Produktdetails nur per AJAX abfragt, wenn die Vergleichsseite oder schwebende Thumbnails Daten benötigen.
Der eigene Header-Kommentar des Moduls beschreibt das Design als null Datenbankspeicherung und null Cookies für die Interaktion auf Listing-Seiten. Produktlisten- und Produktseiten-Hooks geben statische Buttons mit einem data-id-product-Attribut aus; das Browser-Script fügt diese IDs zu localStorage hinzu oder entfernt sie und aktualisiert Button-Zustand, Zähler und Floating Bar lokal.
Der Server wird nur beteiligt, wenn echte Produktdaten benötigt werden. Die Vergleichsseite liest die IDs aus localStorage und postet sie an den Front Controller actions mit action=getProducts, während schwebende Thumbnails action=getProductImage aufrufen. Das Leeren der Vergleichsliste speichert einfach ein leeres Array zurück in localStorage.
Die Vergleichstabelle kann Produktname, URL, Cover-Bild, aktuellen Preis, alten Preis, Kurzbeschreibung, Referenz, Hersteller, Gewicht, Lagerstatus, Merkmale, Zustand und EAN13 anzeigen, wenn diese Werte vorhanden sind. Der AJAX Controller überspringt inaktive PrestaShop-Produkte.
Die Daten stammen aus geladenen Product-Objekten in der aktuellen Sprache und im aktuellen Shop. Preise werden aus Product::getPriceStatic() mit aktivierter Steuer formatiert; der alte Preis wird nur zurückgegeben, wenn der Preis ohne Reduktion höher ist als der aktuelle Preis. Cover-Bilder verwenden medium_default für die Vergleichstabelle und cart_default für den Floating-Thumbnail-Endpunkt.
- Merkmale: Der Controller ruft
getFrontFeatures()auf und gibt jedes Feature-Name/Wert-Paar zurück, während das Front-Script eindeutige Feature-Namen zu Vergleichszeilen gruppiert. - Verfügbarkeit: Der Lagerstatus wird aus
Product::getQuantity($idProduct) > 0zurückgegeben, ist also ein einfacher In-stock/Out-of-stock-Indikator. - Fehlende Daten: Optionale Felder wie Hersteller, Referenz, Gewicht, EAN13 und alter Preis sind leer oder werden in der Tabelle ausgelassen, wenn PrestaShop keinen Wert dafür hat.
Ja, die maximale Vergleichsgröße ist konfigurierbar. Die Einstellung MAX_ITEMS ist bei der Installation standardmäßig vier, das Front-Script lehnt weitere Artikel ab, sobald das Limit erreicht ist, und der AJAX-Produktendpunkt kürzt eingehende IDs auf dasselbe konfigurierte Maximum.
Bei der Installation wird MAX_ITEMS mit dem Wert 4 erstellt; der Admin Controller speichert ihn mit einem Minimum von 1. Dieser Wert wird im Browser in mprCompareConfig.maxItems gesendet und außerdem dem Template der Vergleichsseite als maxItems zugewiesen.
var max = config.maxItems || 4;Die Duplikatvermeidung erfolgt ebenfalls clientseitig: Wenn das Produkt bereits in localStorage ist, kehrt die Add-Funktion zurück, ohne es erneut hinzuzufügen. Der AJAX-Endpunkt kürzt die angeforderte ID-Liste trotzdem auf das konfigurierte Maximum, sodass eine manuell bearbeitete Anfrage die Vergleichsseite nicht mehr Produkte laden lassen kann als erlaubt.
Ja, es fügt Vergleichssteuerungen über PrestaShop-Hooks hinzu. Das Modul rendert Buttons auf Produktlisten und Produktseiten, einen Navigationszähler und eine optionale schwebende Vergleichsleiste mit Produkt-Thumbnails, Entfernen-Steuerungen und einem Link zur Vergleichsseite.
Für PrestaShop 1.7 und neuer registriert das Modul Media-, Produktseiten-, Navigations- und Body-Closing-Hooks; für ältere 1.6-Themes nutzt es die Legacy-Hooks für Header, Produktbutton, Navigation und Footer. Produktlisten-Buttons sind statische Links mit js-mprcompare-toggle, Produktseiten-Steuerungen sind Buttons, und beide verwenden denselben data-id-product-Wert für den JavaScript-Listenmanager.
Die Floating Bar wird von der Einstellung SHOW_FLOATING gesteuert, die standardmäßig aktiviert ist. Wenn ausgewählte Produkte vorhanden sind, zeigt das Script die Leiste, lädt Thumbnail-Daten per AJAX, wenn sie noch nicht gecacht sind, rendert Entfernen-Buttons für einzelne Produkte und hält Header-Zähler und Floating-Zähler mit der Anzahl der IDs in localStorage synchron.
Kunden können Feature Requests aus dem Produktseiten-Tab einreichen, wenn das Modul und die Produktanzeige aktiviert sind. In PrestaShop validiert der AJAX Controller Token, Produkt, Titel, Beschreibung und Gastidentitätsfelder und begrenzt anschließend Einreichungen nach Produkt und IP.
Der Produkt-Tab wird nur hinzugefügt, wenn ENABLED und SHOW_ON_PRODUCT aktiv sind und das Modul die Produkt-ID auflösen kann. Der Tab startet als Zusammenfassung/Lazy-Liste. Danach fordert das Front-Script die erste Seite von Einträgen an, sobald der Tab sichtbar wird, und nutzt dabei den konfigurierten Wert REQUESTS_PER_PAGE, der standardmäßig 10 ist.
- Sicherheit: Schreibaktionen erfordern ein CSRF-Token aus
Tools::getToken(false). JavaScript holt ein Token mitaction=getToken, wenn das initiale Tab-Markup nicht bereits eines enthält. - Validierung: Der Titel muss mindestens 5 Zeichen haben, die Beschreibung mindestens 10 Zeichen, Gäste müssen einen Namen und eine gültige E-Mail angeben, und eingeloggte Kunden verwenden automatisch ihren Kontonamen und ihre E-Mail.
- Rate Limit: Der Controller erlaubt höchstens 3 Einreichungen für dasselbe Produkt und dieselbe IP-Adresse während des vorherigen Tages.
- Gespeicherte Daten: Der Request speichert Produkt, Kunden- oder Gastidentität, bereinigten Beschreibungstext, Shop, Sprache, IP-Adresse, Status, Zeitstempel und einen initialen Vote Count von 1.
Ja, Requests können Kundenlogin und Admin-Freigabe verlangen. In PrestaShop blockiert REQUIRE_LOGIN Gast-Einreichungen, REQUIRE_APPROVAL speichert neue Requests als submitted, und öffentliche Listen verbergen submitted-Elemente vor Nicht-Einreichern, bis sie in einen öffentlichen Status wechseln.
Die Defaults sind händlerfreundlich: REQUIRE_LOGIN ist aus, aber REQUIRE_APPROVAL ist an. Bei aktivierter Freigabe speichert der Controller neue Elemente als submitted; ohne Freigabe starten neue Elemente als under_review.
Sichtbarkeit wird im Modell gehandhabt, nicht nur im Template. Normale Produktlisten schließen sowohl declined als auch submitted aus und fügen submitted-Elemente nur dann wieder hinzu, wenn der aktuelle Betrachter anhand von Kunden-ID oder IP-Adresse zum Einreicher passt. Die indexierbare öffentliche Roadmap-Abfrage schließt submitted und declined ebenfalls aus, sodass ausstehende Ideen nicht zu öffentlichem SEO-Content werden.
Für den Einreicher kann JavaScript einen Pending-Hinweis anzeigen: Your request is pending review and only visible to you. Das macht den Freigabe-Workflow klar, ohne ungeprüfte Requests anderen Käufern zu zeigen.
Ja, Voting kann aktiviert werden, und Gast-Voting kann erlaubt oder blockiert werden. In PrestaShop toggelt der Vote-Endpunkt eine Stimme pro Request, verwendet Kunden-ID oder IP-basiertes Tracking und gibt eine Login-Anforderung zurück, wenn Gast-Voting deaktiviert ist.
Voting ist standardmäßig aktiv, während Gast-Voting standardmäßig aus ist. Wenn Gast-Voting deaktiviert ist und der Besucher nicht eingeloggt ist, enthält die AJAX-Antwort require_login, und das Front-Script leitet zum Sign-in-Link weiter, wenn einer vorhanden ist.
Die Vote-Speicherung erfolgt in einer separaten Tabelle mprfeaturerequest_vote. Eingeloggte Wähler werden über id_customer zugeordnet; Gäste, wenn erlaubt, über die IP-Adresse. Ein erneuter Aufruf des Endpunkts toggelt die Stimme aus, indem die bestehende Zeile gelöscht wird, während eine neue Stimme eine Zeile einfügt und den zurückgegebenen voted-Zustand auf true setzt.
Nach jedem Toggle berechnet das Modul den Request-Zähler neu, indem es vote_count mit einem Datenbankupdate erhöht oder verringert, das GREATEST(0, ...) verwendet. Dadurch kann die angezeigte Anzahl nicht unter null fallen. Neu eingereichte Requests erhalten außerdem automatisch eine eigene Request-Stimme, weshalb die Anfangszahl bei 1 startet.
Ja, der zentrale Roadmap-Hub kann indexierbar sein, wenn das Feature Requests-Modul aktiviert ist, die Roadmap-Seite aktiviert ist und die Einstellung INDEX_ROADMAP_PAGE die Indexierung erlaubt. Detailseiten, produktspezifische Roadmap-Seiten und AJAX-Endpunkte werden bewusst aus dem Index ausgeschlossen.
- Saubere URL des Roadmap-Hubs, zum Beispiel
/feature-requests: Der Seitentyproadmapverwendet die SEO-Richtlinie des Moduls. Wenn die Indexierung aktiviert ist, ergibt robotsindex, follow. - Roadmap-Hub mit unterstützten Filter-/Sortierparametern, zum Beispiel
/feature-requests?status=planned: Der Controller leitet diese per 301 (status,sort,view,search,page) zurück zum kanonischen Hub/feature-requests, sodass Duplikate nie indexiert werden. Jeder andere, nicht weitergeleitete Query-String wird mitnoindex, followgerendert. - Produktspezifische Seite, zum Beispiel
/feature-requests/module/my-product: Der Seitentypmoduleist als nicht indexierbar konfiguriert, daher ergibt robotsnoindex, follow. - Detailseite einer Anfrage, zum Beispiel
/feature-requests/some-request: Der Seitentypdetailist als nicht indexierbar konfiguriert, daher ergibt robotsnoindex, follow. Detail-404-Antworten senden außerdemX-Robots-Tag: noindex, nofollow, noarchive. - AJAX-Endpunkt, zum Beispiel
module/mprfeaturerequest/ajax: Der Controller sendetX-Robots-Tag: noindex, nofollow, noarchive.
Der Sitemap-Hook folgt derselben Logik: Er hängt die URL des Roadmap-Hubs nur an, wenn das Modul, die Roadmap-Anzeige, die Sitemap-Aufnahme und die SEO-Richtlinie es gemeinsam erlauben.
Der Codepfad ist auf das Rendern des JivoChat-Widgets aus displayBeforeBodyClosingTag beschränkt. Er prüft, ob das Modul aktiviert ist, ob eine WIDGET_ID existiert, ob die aktuelle Seite zum konfigurierten Seitenfilter passt und ob mobile Anzeige erlaubt ist, wenn der Besucher mobil ist.
Beim Rendern injiziert das Template das externe JivoChat-Script von //code.jivosite.com/widget/{widget_id}, optional nach der konfigurierten Verzögerung. Wenn PASS_USER_DATA aktiviert ist und der Kunde eingeloggt ist, definiert es jivo_onLoadCallback() und ruft jivo_api.setContactInfo() mit Namen und E-Mail des Kunden auf.
In dieser Quelle gibt es keine Modultabelle, kein Modell und keinen Controller für Chat-Nachrichten oder Transkripte. Das Entfernen oder Deaktivieren des PrestaShop-Moduls stoppt die Einbettung des Widgets, exportiert, löscht oder verwaltet aber keine Gesprächsverläufe, die von JivoChat gehalten werden.
hookPaymentOptions() zeigt Pay by Invoice nur, wenn jede Berechtigungsprüfung erfolgreich ist. Das Modul muss aktiv sein, die Moduleinstellung muss aktiviert sein, der Warenkorb muss einem eingeloggten Kunden gehören, und das Kundenobjekt muss korrekt geladen werden.
- Kundenprüfung: Gast-Warenkörbe und ungültige Kundendatensätze geben keine Zahlungsoption zurück.
- Gruppenprüfung: Der Kunde muss mindestens einer Gruppe angehören, die einer aktiven Zahlungsbedingung zugewiesen ist.
- Bedingungsprüfung: Nur aktive Bedingungen, die über
mpr_payment_term_groupverknüpft sind, werden zurückgegeben, sortiert nach Position und Tagen. - Kreditprüfung: Das Modul nimmt das höchste Kreditlimit aus den Kundengruppen;
0bedeutet unbegrenzt. Andernfalls müssen unbezahlte aufgeschobene Bestellungen plus aktueller Warenkorbwert innerhalb des Limits bleiben. - Validierungsprüfung: Der Front Validation Controller wiederholt die Bedingungs- und Kreditprüfung, bevor er die Bestellung erstellt, sodass eine veraltete Checkout-Option die Regeln nicht umgehen kann.
Wenn eine Prüfung fehlschlägt, gibt das Modul eine leere Zahlungsoptionsliste zurück, und PrestaShop bietet Pay by Invoice für diesen Warenkorb einfach nicht an.
Die verfügbaren Bedingungen werden aus den Kundengruppen des aktuellen Warenkorbs berechnet. Der Service fragt aktive Bedingungen ab, die über mpr_payment_term_group verknüpft sind, verwendet die aktuelle Sprache für Name und Beschreibung der Bedingung und sortiert das Ergebnis nach position und danach days. Bei der Installation erstellte Standardbedingungen umfassen Due on Receipt sowie Net 15, Net 30, Net 60 und Net 90.
Das Checkout-Template rendert dann jede verfügbare Bedingung als Radio-Option, wobei die erste ausgewählt ist, zusammen mit Farbbadge, Fälligkeitstext und optionaler Beschreibung. Wenn das Kreditlimit nicht unbegrenzt ist, zeigt es außerdem verfügbaren Kredit und ausstehenden aufgeschobenen Betrag vor der Bedingungsliste.
Wenn der Kunde die Zahlungsoption absendet, liest der Validation Controller die ausgewählte mpr_pt_term_id, berechnet die Warenkorbsumme neu, ruft canPlaceDeferredOrder() erneut auf, erstellt die PrestaShop-Bestellung im konfigurierten Status OS_AWAITING, fällt bei Fehlen auf bankwire zurück und erstellt dann einen mpr_deferred_order-Datensatz mit Betrag, Kunde, Shop und Fälligkeitsdatum basierend auf den Tagen der ausgewählten Bedingung.
Das Fälligkeitsdatum wird berechnet, indem die Anzahl der Tage der ausgewählten Zahlungsbedingung zum Datum hinzugefügt wird, an dem die aufgeschobene Bestellung erstellt wird. Die standardmäßig installierten Bedingungen umfassen Due on Receipt / Net 0, Net 15, Net 30, Net 60 und Net 90.
- Wenn die Bestellung am
2026-06-17mit Net 0 erstellt wird, ist das Fälligkeitsdatum2026-06-17. - Wenn die Bestellung am
2026-06-17mit Net 15 erstellt wird, ist das Fälligkeitsdatum2026-07-02. - Wenn die Bestellung am
2026-06-17mit Net 30 erstellt wird, ist das Fälligkeitsdatum2026-07-17.
Das Modul speichert das Ergebnis als Datum im Format Y-m-d, nicht als Zeitstempel mit Uhrzeit. Die Berechnung verwendet das aktuelle PHP-Server-/Shop-Runtime-Datum, wenn die aufgeschobene Bestellung erstellt wird. Bestellungen nahe Mitternacht folgen daher der serverseitigen Datumsgrenze statt der lokalen Uhr des Kunden. Sommerzeitwechsel fügen dem gespeicherten Fälligkeitsdatum keine Stunde hinzu, können aber indirekt relevant sein, wenn die Bestellung nahe einer Datumsgrenze erstellt wird.
Beim Checkout wählt der Kunde eine Zahlungsbedingung über mpr_pt_term_id. Das Modul validiert, dass die Bedingung aktiv ist, zu einer der Kundengruppen gehört und zum effektiven Kreditlimit des Kunden passt, bevor es die PrestaShop-Bestellung erstellt. Erst nach der Bestellvalidierung erstellt es den Deferred-Payment-Datensatz mit ausgewählter Bedingung, Bestellsumme inklusive Steuer und berechnetem Fälligkeitsdatum.
$dueDate = date('Y-m-d', strtotime('+' . (int) $term->days . ' days'));Der gespeicherte Wert wird zum Bestellzeitpunkt in mpr_deferred_order.due_date kopiert. Das spätere Ändern der Tagezahl einer Zahlungsbedingung berechnet Fälligkeitsdaten bereits existierender Bestellungen nicht neu. Überfälligkeitsprüfungen vergleichen das gespeicherte Fälligkeitsdatum mit dem aktuellen Serverdatum. Eine unbezahlte Rechnung, die heute fällig ist, ist also heute noch fällig; sie wird erst überfällig, nachdem dieses Datum verstrichen ist.
Der Kreditlimit-Wert gilt pro Kundengruppe, nicht pro individuellem Kunden. Das Modul speichert Limits in mpr_pt_credit_limit, wobei id_group der Primary Key ist, und Zahlungsbedingungen selbst werden ebenfalls über mpr_payment_term_group Gruppen zugewiesen.
Bei einem Kunden in mehreren Gruppen ruft der Service alle Gruppen des Kunden ab und verwendet MAX(credit_limit) über diese Gruppen. Beispiel: Wenn Ana zu Retail ohne konfiguriertes Limit, B2B Silver mit 1000.00 und B2B Gold mit 2500.00 gehört, ist ihr effektives Kreditlimit 2500.00.
Ein konfiguriertes Limit von 0 wird vom Checkout Service als unbegrenzt behandelt. Wenn ein echtes Limit existiert, zieht das Modul die ausstehenden aufgeschobenen Bestellungen dieses Kunden im aktuellen Shop ab und zeigt Pay by Invoice-Bedingungen nur, wenn outstanding + cart total innerhalb des effektiven Gruppenlimits bleibt.
Kreditlimits und Verfügbarkeit von Bedingungen sind verwandt, aber getrennt. Ein Gruppenlimit zuzuweisen macht nicht automatisch jede Zahlungsbedingung verfügbar; die Bedingung muss außerdem aktiv und mindestens einer Kundengruppe zugewiesen sein. Ebenso bedeutet die Zuweisung einer Bedingung zu einer Gruppe ohne echtes Kreditlimit, dass die Gruppe die Bedingung verwenden kann, solange das effektive Limit als unbegrenzt aufgelöst wird oder eine andere Gruppe ausreichend Limit liefert.
Der ausstehende Betrag wird aus unbezahlten Zeilen in mpr_deferred_order für denselben Kunden und aktuellen Shop berechnet. Bereits als bezahlt markierte Zeilen werden ausgeschlossen, und die für die neue Bestellung verwendete Warenkorbsumme ist die Bestellsumme inklusive Steuer. Wenn der Kunde über dem effektiven Limit liegt, entfernt der Checkout Service alle Deferred-Bedingungen aus den verfügbaren Zahlungsoptionen, und der Validation Controller lehnt eine übermittelte Deferred-Zahlung ab, selbst wenn jemand die Bedingung manuell postet.
Die Installation erstellt einen Bestellstatus namens Awaiting Deferred Payment, speichert seine ID in OS_AWAITING, und der Validation Controller verwendet diesen Status, wenn er validateOrder() für Pay by Invoice-Bestellungen aufruft. Wenn der gespeicherte Status fehlt, fällt der Controller auf PrestaShops Bankwire-Status zurück.
logable = truebedeutet, dass PrestaShop die Bestellung als gültig platzierte Bestellung für Bestellhistorie- und Statistik-Workflows behandelt, obwohl die Zahlung noch aussteht.invoice = trueundpdf_invoice = truebedeuten, dass Rechnungserzeugung für den Deferred-Bestellstatus aktiviert ist.paid = falsebedeutet, dass der Bestellstatus die Bestellung nicht als bezahlt markiert; das Modul verfolgt die Begleichung separat inmpr_deferred_order.is_paid.
Wenn der Deferred-Datensatz erstellt wird, startet is_paid mit 0. Die Methode markAsPaid() des Deferred-Order-Modells setzt is_paid später auf 1 und zeichnet paid_date auf, ohne die Bedeutung des initialen Bestellstatus zu ändern.
Der installierte Status gehört dem Modul, verwendet das Label Awaiting Deferred Payment in jeder Sprache und wird mit send_email = false, unremovable = false und einem blauen Farbwert erstellt. Die Payment-Return-Seite kann dann die ausgewählte Zahlungsbedingung, den fälligen Betrag und das Fälligkeitsdatum anzeigen, während die Bestellung aus Sicht des PrestaShop-Zahlungsstatus unbezahlt bleibt.
Es gibt eine wichtige Back-Office-Nacharbeit: Wenn ein Admin eine aufgeschobene Bestellung über den Deferred-Orders-Controller des Moduls als bezahlt markiert, aktualisiert das Modul zuerst mpr_deferred_order. Wenn die zugehörige PrestaShop-Bestellung noch im Awaiting-Status des Moduls ist und der Standard-Paid-Status PS_OS_PAYMENT existiert, verschiebt es die PrestaShop-Bestellung auch in diesen bezahlten Status. Wenn die Bestellung bereits in einen anderen Status verschoben wurde, überschreibt das Modul diesen Status nicht blind.
Eine echte Benachrichtigung wird aus gultigen PrestaShop-Bestellungen im aktuellen Shop erstellt, begrenzt durch das konfigurierte maximale Bestellalter sowie Produkt-Include- oder Exclude-Regeln. Sie verwendet das bestellte Produkt, die Lieferstadt und den maskierten Vornamen.
Nein. Generierte Sales Notifications sind keine echten PrestaShop-Bestellungen und werden nicht in die Orders-Tabelle geschrieben. Das Modul hat drei Benachrichtigungsmodi:
- Nur echte Bestellungen: Zeigt aktuelle gültige Bestellungen aus PrestaShop mit maskierten Kundennamen, Stadt, Produktdaten, Produktbild, Preis und relativer Zeit.
- Nur generiert: Baut realistisch wirkende Benachrichtigungen aus aktiven Katalogprodukten plus konfigurierten oder eingebauten Namens- und Städte-Pools. Das sind Anzeigemeldungen, keine Bestellungen.
- Gemischt: Verwendet zuerst echte Bestellbenachrichtigungen und füllt verbleibende Plätze mit generierten Benachrichtigungen, wenn es nicht genug aktuelle echte Bestellungen gibt.
Der Standard-Installationsmodus ist mixed. Im Mixed-Modus erzeugt der Code automatisch Füllungen, wenn echte Benachrichtigungen weniger als die angeforderte Anzahl sind; es gibt keinen separaten Generated-Fill-Schalter innerhalb des Mixed-Modus. Wenn jede Benachrichtigung einem echten Kauf entsprechen muss, stellen Sie das Modul auf den Modus Nur echte Bestellungen um und stellen Sie sicher, dass maximales Bestellalter und Produktfilter breit genug sind, um aktuelle Bestellungen zurückzugeben.
Echte Benachrichtigungen werden aus gültigen PrestaShop-Bestellungen im aktuellen Shop geladen, begrenzt durch das konfigurierte maximale Bestellalter. Das Standard-Maximalalter ist 72 Stunden. Produkt-Include- und Exclude-Listen werden angewendet, bevor die Benachrichtigung zurückgegeben wird, und der angezeigte Kundenname wird maskiert, statt den vollständigen Vornamen zu zeigen.
Generierte Benachrichtigungen werden aus aktiven Produkten im Katalog gebaut. Das Modul wählt Produktdaten, berechnet einen Anzeigepreis, versucht das Produkt-Cover-Bild zu verwenden, wählt Name und Stadt aus seinen Pools und erstellt eine relative Zeit wie eine kürzliche Anzahl von Minuten. Das passiert zur Anzeigezeit über den Front-Office-Benachrichtigungsendpunkt; es erstellt keine Warenkörbe, Bestellungen, Kunden, Bestelldetails, Zahlungen oder Bestellhistorienzeilen.
Das Front-End-Toast labelt Benachrichtigungen im Display-Template als Verified Purchase, einschließlich generierter Benachrichtigungen. Dieses Label ist Teil der Pop-up-Präsentation, kein Beweis, dass eine generierte Benachrichtigung aus einer echten Bestellung stammt. Für strikt compliance- oder audit-sensible Shops verwenden Sie den Modus Nur echte Bestellungen.
Ja. Die Konfiguration akzeptiert kommagetrennte Include- und Exclude-Produkt-ID-Listen. Diese Filter werden sowohl bei der Auswahl echter Bestellpositionen als auch bei der Auswahl von Produkten fur generierte Benachrichtigungen angewendet.
Der Front Controller notifications gibt JSON mit einem noindex-Antwortheader zuruck, wenn das Modul aktiviert ist. Das Browser-Script ruft diesen Feed ab und rendert die Toast-Benachrichtigungen entsprechend den Timing-Einstellungen.
Nein, das Modul erstellt den Storefront-Einstiegspunkt zu Telegram. Nachdem der Käufer klickt, übernimmt Telegram die Unterhaltung in der Telegram-App oder Web-Erfahrung. Dadurch bleibt das Modul einfach und vermeidet ein zweites Nachrichtenpostfach in PrestaShop.
Das Widget rendert einen fixierten Telegram-Link mit dem konfigurierten Benutzernamen. Wenn eine optionale vorbefüllte Nachricht konfiguriert ist, fügt das Modul sie der https://t.me/...-URL hinzu und ersetzt {url} durch die aktuelle Seiten-URL, bevor der Käufer zu Telegram gesendet wird. Der Browser öffnet Telegram in einem neuen Tab oder App-Kontext; der Chat selbst ist nicht in die PrestaShop-Seite eingebettet.
Das Modul speichert keine eingehenden Telegram-Nachrichten, erstellt keine PrestaShop-Kundendienst-Threads und betreibt keinen Telegram-Webhook oder Bot-Posteingang im Back Office. Gesprächsverlauf, Antworten, Anhänge und Benachrichtigungen bleiben in Telegram.
Die Anzeige wird durch die Moduleinstellungen gesteuert. Das Widget rendert nur, wenn das Modul aktiviert ist und ein gültiger Telegram-Benutzername vorhanden ist. Sie können außerdem Storefront-Position, Icon- oder Bar-Stil, Call-to-action-Text, Farbe, Größe, Abstand, Tooltip, Animation, Anzeigeverzögerung, mobile Sichtbarkeit und Seitenscope wie alle Seiten, Produktseiten, Kategorieseiten oder Checkout-Seiten steuern.
Ja, Weekly Flash Sale kann automatisch posten, aber nur über kompatible Publisher-Module. Die Aufgabe sucht nach mprinstagramintegration mit publishToInstagram(), mprfacebookpostsintegration mit publishToFacebook() und mprxintegration mit publishToX(). Sie baut jede Caption aus den Instagram-, Facebook- und X-Templates mit Platzhaltern wie {product_name}, {original_price}, {sale_price}, {discount}, {code} und {product_url}.
ok:...bedeutet, dass der Publisher ein Plattform-Ergebnis zurückgegeben hat, sodass der Versand als erfolgreich behandelt wurde.skippedbedeutet, dass das Plattformmodul fehlt oder inaktiv ist, die erforderliche Publish-Methode fehlt oder die Caption für diese Plattform leer ist.FAILbedeutet, dass die Publish-Methode false zurückgegeben hat.FAIL:messagebedeutet, dass der Publisher eine Exception geworfen hat, und die Nachricht nach dem Präfix wird zur Diagnose gespeichert.dry-runist ein Gesamtstatus für Testläufe. Die Aufgabe kehrt zurück, bevor sie die Warenkorbregel erstellt, veröffentlicht oder Sale-Historie schreibt.disabledwird zurückgegeben, wenn Weekly Sale deaktiviert ist und der Lauf kein Dry Run ist.
Bei echten Ausführungen werden die Ergebnisse je Plattform in mprweeklysale_history als ig_result, fb_result und x_result gespeichert, zusammen mit Produkt, Rabatt, generiertem Code und Sale-Daten.
Der automatische Post ist Teil der Flash-Sale-Aufgabe. Ein echter Lauf wählt zuerst ein aktives Produkt, das gemäß dem konfigurierten History-Fenster kürzlich nicht verwendet wurde, erstellt eine Cart Rule für den Rabatt und ruft dann die verfügbaren Social-Publisher-Module auf. Die Standardkonfiguration nutzt 50% Rabatt, eine Dauer von 24 Stunden, Code-Präfix FLASH, ein 12-Wochen-History-Fenster und einen wöchentlichen Zeitplan am Mittwoch um 08:00.
Die generierte Cart Rule ist produktspezifisch, aktiv, hervorgehoben, auf Menge 1000 und Menge pro Nutzer 1 begrenzt. Captions werden gebaut, nachdem Sale-Preis, Rabattcode, Produkt-URL und Produktbild vorbereitet wurden. Die X-Caption wird gekürzt, um ins Plattformlimit zu passen, und auch die Instagram-Caption wird vor der Veröffentlichung begrenzt.
Automatisches Posting erfordert daher mehr als das Aktivieren von Weekly Flash Sale. Das passende Integrationsmodul muss installiert, aktiv sein und die erwartete Publish-Methode bereitstellen, und die geplante Cron-Aufgabe muss mit dem korrekten Token laufen. Wenn ein Plattformmodul fehlt, kann der Sale trotzdem erstellt werden, und die fehlende Plattform wird als skipped aufgezeichnet.
Verwenden Sie den Homepage-Slider des Moduls, um ein Hero-Carousel über PrestaShops displayHome-Hook zu rendern. Der Code löst den Standard-Slider über den Homepage-Identifier auf, lädt seine aktiven Banner, verbindet aktuelle Sprach-/Shop-Textfelder, wenn verfügbar, und gibt das Carousel nur aus, wenn nutzbare Bilder existieren.
Bei der Installation legt das Modul einen aktiven Slider mit dem Identifier homepage an. Um einen Homepage-Hero anzuzeigen, erstellen oder bearbeiten Sie Banner für diesen Slider, laden mindestens ein gültiges Bild hoch, lassen das Banner aktiv und stellen sicher, dass das Modul an displayHome gehookt bleibt. Der Hook ruft denselben Widget Renderer mit slider = homepage auf, daher folgt die Homepage-Ausgabe denselben Regeln wie eingebettete Widgets.
Die Carousel-Abfrage lädt aktive Banner, die dem ausgewählten Slider zugewiesen sind, und sortiert sie nach Position und anschließend nach Banner-ID. Die Sprach-/Shop-Zeile wird mit einem LEFT JOIN verbunden, sodass Titel, Untertitel und CTA-Text aus aktueller Sprache und aktuellem Shop genommen werden, wenn diese Zeile existiert. Ein Banner wird aber nicht verworfen, nur weil die Sprach-/Shop-Textzeile fehlt. Dadurch kann ein nicht übersetztes reines Bildbanner trotzdem rendern.
Wenn kein aktives Banner eine existierende Desktop- oder Mobile-Bilddatei hat, gibt das Modul einen leeren String zurück, statt einen kaputten Hero-Bereich zu rendern.
Das Anzeigeverhalten kommt aus der Modulkonfiguration. Die Standardgeschwindigkeit ist 5000 Millisekunden, Autoplay ist aktiviert, Controls und Indicators sind aktiviert, der Übergang ist slide, Ken-Burns-Styling ist aktiviert, und die Standardhöhe ist 500. Das Template gibt außerdem dem ersten Slide Eager Loading und Fetch Priority, während spätere Slides lazy-loaded werden, um das initiale Seitengewicht zu reduzieren.
Ja, jedes Banner kann ein Desktop-Bild und ein optionales Mobile-Bild für PrestaShop speichern. Das Carousel-Template gibt responsive Picture Sources aus, verwendet das Mobile-Bild auf kleinen Bildschirmen und ergänzt AVIF- oder WebP-Sources, wenn passende Dateien neben den konfigurierten Bildern existieren.
Das Mobile-Bild ist für schmale Bildschirme vorgesehen und wird mit einer Media Condition max-width: 767px ausgegeben. Das Desktop-Bild bleibt das normale Fallback-Bild für den Slide. Daher ist es am besten, für jedes Banner ein Desktop-Bild hochzuladen und ein Mobile-Bild zu ergänzen, wenn der Zuschnitt für Smartphones anders sein soll.
Das Modul konvertiert Bilder nicht während des Renderns. Es prüft, ob Geschwisterdateien mit demselben Basisnamen und den Erweiterungen .avif oder .webp bereits existieren, und fügt diese Sources dann hinzu. Wenn diese optimierten Dateien nicht auf dem Datenträger liegen, fällt das Carousel auf die ursprünglichen Upload-Pfade zurück.
Ein Banner ohne Desktop- oder Mobile-Bilddatei wird vor dem Rendern übersprungen. Das verhindert leere Carousel-Slides. Wenn nur ein Mobile-Bild existiert, kann das Banner die Datei-Prüfung trotzdem bestehen, aber Desktop-Besucher haben möglicherweise kein passendes Desktop-Fallback-Bild. Daher sollte die Händler-Einrichtung das Desktop-Bild als Basis und das Mobile-Bild als optionalen responsiven Override behandeln.
Ja, das Modul implementiert PrestaShop-Widget-Rendering für Slider außerhalb der Homepage. Ein Template kann das Widget mit einer numerischen slider_id oder mit einem Slider-Identifier aufrufen, der in der Slider-Tabelle des Moduls gespeichert ist.
{widget name='mprbannerrevolution' slider_id=2} {widget name='mprbannerrevolution' slider='homepage'} {widget name='mprbannerrevolution' slider='landing-sale'}Wenn kein Parameter übergeben wird, löst das Modul den Standard-homepage-Slider auf. Der Code weist Slider nicht automatisch CMS-Seiten zu; er löst den Slider aus den Widget-Parametern auf und rendert dann nur aktive Banner für diesen Slider, die ein verfügbares Desktop- oder Mobile-Bild haben.
Die Identifier-Version funktioniert nur für aktive Slider, weil die Suche den Active Check der Slider-Tabelle verwendet. Der numerische slider_id-Pfad lädt genau diese Slider-ID. Nachdem ein Slider aufgelöst ist, wird dieselbe Rendering-Pipeline wie auf der Homepage verwendet: aktuelle Sprache, aktueller Shop, aktive Banner, Datei-Existenzprüfungen, responsive Sources, Carousel-Einstellungen und das gemeinsame Carousel-Template.
Es gibt einen Code-Kommentar zu slider_cms, aber der implementierte Resolver behandelt slider_id, slider und den Standard-Homepage-Slider. Für CMS-Seiten oder Landing Pages verwenden Sie einen expliziten Widget-Aufruf im Seiteninhalt oder Theme-Template, statt zu erwarten, dass das Modul CMS-Seiten automatisch Slidern zuordnet.
Sie können den echten Bannerinhalt konfigurieren, der vom PrestaShop-Carousel verwendet wird: übersetzter Titel, Untertitel, CTA-Text und CTA-URL. Jedes Banner speichert außerdem Overlay-Farbe, Overlay-Deckkraft, Textausrichtung, Aktivstatus, Position, Desktop-Bild und optionales Mobile-Bild.
Die Inhaltsfelder sind mehrsprachig, sodass Bannertitel, Untertitel, Button-Text und Button-URL je Sprache variieren können. Der Titel wird als Hauptüberschrift des Slides verwendet, der Untertitel erscheint darunter, und der CTA-Button erscheint nur, wenn sowohl CTA-Text als auch CTA-URL für diese Sprache vorhanden sind.
Visuelle Steuerungen werden beim Banner selbst gespeichert. Die Overlay-Farbe ist standardmäßig Schwarz, Overlay-Deckkraft ist ein Prozentwert, und Textausrichtung unterstützt left, center und right. Das Active-Flag steuert, ob das Banner erscheinen kann, und der Positionswert steuert die Reihenfolge innerhalb des ausgewählten Sliders.
Die Bildfelder sind die tatsächlichen Medien, die vom Carousel verwendet werden. Das Desktop-Bild ist das primäre Slide-Bild, und das optionale Mobile-Bild gibt Smartphones einen anderen Zuschnitt. Der Admin-Upload-Flow akzeptiert gängige Webformate wie JPG, PNG, WebP und GIF, während der Front-Office-Renderer zusätzlich AVIF- oder WebP-Sources hinzufügen kann, wenn passende optimierte Dateien auf dem Datenträger existieren.
Leere Textfelder sind erlaubt. Ein Banner kann daher als rein visueller Slide, als Text-over-image-Hero oder als Promotion-Slide mit Button genutzt werden, abhängig davon, welche übersetzten Felder gefüllt sind.
Ja, eingereichte Nachrichten werden in PrestaShop gespeichert. Der Processor erstellt einen Submission-Datensatz mit Status, Spam-Flag, IP-Adresse, User Agent, Kunden- oder Gastkontext und speichert anschließend jeden übermittelten Feldwert in der Submission-Data-Tabelle des Moduls.
Die Haupt-Submission-Zeile wird in mprcontactform_submission gespeichert. Sie enthält Formular-ID, Shop-ID, Kunden-ID, wenn der Besucher eingeloggt ist, Kundenname, Kunden-E-Mail, IP-Adresse, User Agent, Status, Spam-Flag, Spam-Grund und Erstellungsdatum. Gast-Submissions werden mit Kunden-ID 0 gespeichert.
Einzelne Antworten werden separat in mprcontactform_submission_data gespeichert. Jede Zeile speichert Submission-ID, Feld-ID, Feldname und übermittelten Feldwert. So kann das Modul den Submission-Header und dynamische Formularfelder getrennt halten, was wichtig ist, weil jedes Formular einen anderen Satz von Feldern haben kann.
Der Processor validiert das aktive Formular und seine aktiven Felder vor dem Speichern. Pflichtfelder, E-Mail-Format, Telefonformat, URL-Format, numerische Felder, Select-Optionen, benutzerdefinierte Validatoren und die GDPR-Checkbox können die Submission ablehnen, bevor sie aufgezeichnet wird. Anschließend laufen Anti-Spam-Prüfungen; Spam-Submissions werden trotzdem mit is_spam = 1 und Grund gespeichert, aber normale Admin- und Kunden-E-Mails werden nur für Nicht-Spam-Submissions gesendet.
Die IP-Adresse wird aus Forwarded Headers genommen, wenn vorhanden, sonst aus der Remote-Address-Fallback, und der User Agent wird mit Längenbegrenzung gespeichert. Das erstellt einen Audit Trail für Anfragen, ohne das Modul in ein vollständiges CRM zu verwandeln; Nachverfolgung erfolgt weiterhin über die konfigurierten E-Mail-Empfänger oder den Back-Office-Workflow, den der Händler zur Prüfung von Submissions verwendet.
Ja, Anfragen können an konfigurierte Admin-Empfänger geroutet werden. Jedes Formular kann Admin-E-Mail-Adressen und eine Betreffzeile definieren; der Mailer akzeptiert kommagetrennte Empfänger und fällt auf die globale Modul-E-Mail oder die Shop-E-Mail zurück, wenn ein Formularempfänger leer ist.
Dieses Routing erfolgt pro Formular, sodass ein Kontaktformular Sales-Anfragen an ein Postfach senden kann, während ein anderes Formular Support-Anfragen an ein anderes Postfach sendet. Das Formular hat außerdem eine Einstellung send_admin_email; wenn Admin-E-Mails für dieses Formular deaktiviert sind, kann die Submission trotzdem gespeichert werden, ohne eine Admin-Benachrichtigung zu senden.
Der Empfänger-Fallback passiert der Reihe nach. Der Mailer nutzt zuerst die Admin-E-Mail-Liste des Formulars, dann die Module-Level-Admin-E-Mail-Einstellung und dann PS_SHOP_EMAIL. Mehrere Empfänger können als kommagetrennte Liste eingegeben werden. Ungültige E-Mail-Adressen werden übersprungen, statt für den Versand verwendet zu werden.
Der Admin-Betreff kommt aus dem übersetzten E-Mail-Betreff des Formulars, wenn gesetzt, andernfalls fällt er auf einen generischen New-Submission-Betreff zurück. Der Shopname wird angehängt, und die übermittelte Kunden-E-Mail wird als Reply-to-Adresse verwendet, wenn verfügbar, sodass Antworten aus dem Postfach an den Kunden zurückgehen können.
Die Kundenbestätigung ist getrennt. Wenn send_customer_email aktiviert ist und die Submission eine Kunden-E-Mail-Adresse enthält, kann das Modul dem Besucher ebenfalls eine Bestätigungsnachricht senden. Spam-Submissions werden zur Prüfung gespeichert, aber der Mailer wird für sie nicht aufgerufen. Spam wird daher normalerweise nicht an Admin-Empfänger oder Kunden weitergeleitet.
Ja. Das Modul prüft Submissions vor dem Versand von E-Mails, markiert erkannten Spam im Submission-Datensatz und speichert einen Spam-Grund. Die Quelle enthält diese Anti-Spam-Auslöser:
- Honeypot: Das versteckte Feld
website_url_confirmmuss leer bleiben. - Submit timing: Der versteckte
_mpr_ft-Zeitstempel muss vorhanden, gültig und älter sein als das konfiguriertemin_submit_timedes Formulars. - Rate limit: Die Absender-IP wird blockiert, wenn sie die maximale Anzahl von Submissions pro Stunde für das Formular bereits erreicht hat.
- Blocked IPs: Die Absender-IP wird mit der zeilenweise getrennten Blocked-IP-Liste des Formulars verglichen.
- Blocked words: Jedes übermittelte Feld wird anhand einer case-insensitive Substring-Suche auf konfigurierte blockierte Wörter geprüft.
Standardmäßig aktivieren neu installierte Formulare Honeypot und Timing-Prüfung mit einer Mindest-Submit-Zeit von 3 Sekunden. Spam-Submissions werden zur Prüfung gespeichert, aber der normale Admin-/Kunden-E-Mail-Flow läuft nur für Nicht-Spam-Submissions.
Das Module-Level-Standard-Rate-Limit ist 10 Submissions pro IP und Stunde. Das Setzen der maximalen Submissions pro IP und Stunde auf 0 deaktiviert diese Rate-Limit-Prüfung. Die Rate-Limit-Abfrage zählt gespeicherte Submissions von derselben IP-Adresse in der vorherigen Stunde, sodass wiederholte Versuche blockiert werden können, selbst wenn der Besucher dasselbe Formular erneut absendet.
Die Timing-Prüfung soll automatisierte Posts erkennen, die sofort senden oder den versteckten Zeitstempel auslassen. Ein echter Besucher erhält das versteckte _mpr_ft-Feld mit dem Formular, während ein Bot, der direkt postet, ohne die Seite zu laden, meist an der Zeitstempelanforderung scheitert.
Spam-Gründe werden als maschinenlesbare Labels wie honeypot, timing, rate_limit, blocked_ip und blocked_words gespeichert. Mehr als ein Grund kann bei derselben Submission aufgezeichnet werden. Das hilft, einen einfachen zu schnellen Submit von einer Nachricht zu unterscheiden, die zusätzlich blockierte Formulierungen enthält.
Ja, es kann die Standard-Kontaktseite von PrestaShop ersetzen, wenn diese Einstellung aktiviert ist. Das Modul fügt Kontakt-Routen hinzu und nutzt den Dispatcher-Hook, um den Core Contact Controller auf sein eigenes Kontaktseiten-Rendering umzuleiten, während normale Modul-Display-Links verfügbar bleiben.
Die Einstellung ist standardmäßig deaktiviert. Wenn replace_core_contact aktiviert ist, stellt das Modul Kontakt-Routen über hookModuleRoutes bereit, verwendet dabei möglichst den Contact-Page-Rewrite des Shops und behandelt außerdem den Core-contact-Controller über den Dispatcher-Hook.
Implementierungstechnisch sendet der Dispatcher-Hook keinen browserseitigen 301- oder 302-Redirect. Er schreibt die aktuellen Request-Parameter an Ort und Stelle um, indem er den Controller zum Module Display Controller ändert und den Modulnamen auf mprcontactform setzt. Der Käufer bleibt im Kontaktfluss, aber PrestaShop rendert die Kontaktseite des Moduls statt des Core Contact Controllers.
Das Modul kann Formulare außerdem über seine eigene Module-Display-Route und über Hooks wie displayMprContactForm und displayContactContent rendern. Das bedeutet, Händler können die Hauptkontaktseite ersetzen, ein bestimmtes Formular anderswo einbetten oder die Core-Kontaktseite unverändert lassen und nur Modullinks nutzen.
Wenn der Ersatz nicht aktiviert ist, gibt der Route Hook keine Kontakt-Ersatzrouten zurück, und die Core-Kontaktseite bleibt unter normaler Kontrolle von PrestaShop. Dadurch ist die Funktion über die Konfiguration reversibel, ohne das Modul zu deinstallieren.
Das Modul fügt der PrestaShop-Admin-Bestelldetailseite eine Löschaktion hinzu. Es rendert über die Hooks displayAdminOrderMain und displayAdminOrder, wenn das Modul aktiviert ist und eine Bestell-ID verfügbar ist, und sendet die Bestellung dann in den Trash Flow des Moduls.
Bei einer Standardinstallation ist das Modul aktiviert und Bestätigung erforderlich. Die Bestellseite zeigt einen Delete Order-Block mit einem Button, der mit einem trash_order-Parameter auf den Modul-Admin-Controller verlinkt. Wenn Bestätigung aktiviert ist, fügt das Template vor dem Absenden der Aktion eine Browser-Bestätigungsabfrage hinzu.
Wenn der Admin bestätigt, übergibt der Controller die Bestell-ID und die aktuelle Mitarbeiter-ID an den Trash Service. Der Service lädt die PrestaShop-Order, erstellt den Trash Snapshot, speichert, wer sie gelöscht hat, und ruft anschließend PrestaShops native Order-Delete-Methode auf. Wenn die Bestellung nicht als gültiges Objekt geladen werden kann, gibt die Trash-Aktion false zurück, statt irgendetwas zu löschen.
Die Aktion ist für Test-, doppelte oder unerwünschte Bestellungen gedacht, die ein Händler bewusst aus dem Back Office entfernen möchte. Es ist kein Soft-Hide-Flag auf der ursprünglichen Bestellzeile; nachdem der Trash Flow abgeschlossen ist, wurde die native PrestaShop-Order-Delete-Methode aufgerufen, und der verbleibende Moduldatenensatz ist nur der Trash Snapshot.
Vor dem Löschen lädt das Modul die PrestaShop-Order, erstellt eine kompakte JSON-Zusammenfassung, fügt eine Zeile in mprdeleteorders_trash ein und ruft danach die native Order-Delete-Methode auf. Die Trash-Tabelle bleibt bei der Deinstallation aus Sicherheitsgründen bewusst erhalten.
{"id_order":1234,"reference":"ABCDEF123","id_customer":42,"total_paid":149.90,"date_add":"2026-06-17 10:15:00","current_state":2}id_order: Die ursprüngliche PrestaShop-Bestell-ID, zusätzlich als Top-Level-Spalte der Trash-Tabelle zur Filterung gespeichert.reference: Die Bestellreferenz, zusätzlich alsorder_referencegespeichert.id_customer: Die Kunden-ID, die mit der gelöschten Bestellung verknüpft ist.total_paid: Die Bestellsumme austotal_paid_tax_incl.date_add: Das ursprüngliche Erstellungsdatum der Bestellung.current_state: Die Bestellstatus-ID zum Löschzeitpunkt.deleted_by: Die Back-Office-Mitarbeiter-ID, die die Trash-Aktion geklickt hat.date_deleted: Wann der Trash-Datensatz erstellt wurde.
Das ist ein Audit Snapshot, kein vollständiges reversibles Backup jeder bestellbezogenen Tabelle, Rechnung, Nachricht und Positionszeile. Verwenden Sie ihn, um vor dem endgültigen Bereinigen zu identifizieren, was gelöscht wurde und von wem.
Die Trash-Tabelle selbst speichert id_trash, id_order, order_reference, order_data, deleted_by und date_deleted. Der List Controller kann diese Trash-Zeilen anzeigen, sodass ein Admin die ursprüngliche Bestell-ID, Referenz, den löschenden Mitarbeiter und das Löschdatum prüfen kann.
Das JSON enthält bewusst nur eine kleine Menge von Bestell-Header-Werten. Es speichert keine Produkte, Bestelldetails, Adressen, Zahlungen, Rechnungen, Nachrichten, Versanddienstzeilen, Warenkorbinhalte, Gutscheine oder Bestandsbewegungshistorie. Deshalb sollte es als Nachvollziehbarkeit für Löschungen behandelt werden, nicht als Wiederherstellungspaket.
Nein, das Modul baut eine gelöschte PrestaShop-Bestellung nicht aus dem Trash neu auf. Wenn eine Bestellung in den Trash verschoben wird, speichert es einen kleinen JSON Snapshot mit Werten wie Bestell-ID, Referenz, Kunden-ID, bezahlter Summe, Erstellungsdatum und aktuellem Status und ruft anschließend PrestaShops Order-Delete-Methode auf.
Die Restore-Methode liest nur die Trash-Zeile, bestätigt, dass sie existiert, löscht diese Trash-Zeile und gibt Erfolg für diese Cleanup-Aktion zurück. Sie erstellt die ursprüngliche Bestellzeile, Bestelldetails, Zahlungen, Rechnungen, Bestellhistorie, Warenkorbdaten oder verwandte Datensätze nicht neu.
Diese Einschränkung ist wichtig, weil das Modul nicht genug relationale Daten speichert, um eine sichere vollständige Wiederherstellung einer Bestellung durchzuführen. Behandeln Sie den Trash als Audit- und Cleanup-Puffer, nicht als vollständiges Backup. Für echte Wiederherstellung verwenden Sie ein Datenbankbackup oder einen manuellen Restore-Prozess außerhalb dieses Moduls.
Die permanente Trash-Cleanup-Aktion ist ebenfalls von der Bestellwiederherstellung getrennt. Das Entfernen einer Trash-Zeile entfernt nur den Audit Snapshot des Moduls; es beeinflusst keine bereits gelöschte PrestaShop-Bestellung, weil die ursprünglichen Bestelldaten bereits durch den nativen Delete-Aufruf entfernt wurden.
Für Live-Shops ist der praktische Workflow: Nutzen Sie das Modul zum Bereinigen bekannter Test- oder unerwünschter Bestellungen, behalten Sie Datenbankbackups zur Wiederherstellung und prüfen Sie die Bestellung vor dem Löschen. Wenn eine Bestellung möglicherweise mit Produkten, Zahlungen, Rechnungen und Historie intakt wiederhergestellt werden muss, verlassen Sie sich nicht auf die Trash-Zeile des Moduls als Wiederherstellungsquelle.
Nein, die Deinstallation behält die Papierkorb-Tabelle aus Sicherheitsgründen. In PrestaShop entfernt das Modul Tabs und Konfiguration, aber der Codekommentar sagt, dass mprdeleteorders_trash beim Deinstallieren nicht gelöscht wird.
Ja. Wenn Purchase Tracking aktiviert ist und das Modul den Besucher tracken darf, feuert es ein Hotjar-purchase-Event aus dem PrestaShop-Bestellbestätigungs-Hook. Das Front-Office-Template ruft hj('event', 'purchase') auf der Bestellbestätigungsseite auf.
Das ist für Hotjar-Analysen nützlich, weil Sie Recordings, Heatmaps, Surveys oder Funnels nach Sessions filtern können, die einen Kauf erreicht haben, und dann das Verhalten vor der Bestellung prüfen. Es hilft Fragen zu beantworten, etwa wo Käufer gezögert haben, welche Checkout-Schritte sie wiederholt haben oder welche Seitenmuster in erfolgreichen Sessions auftreten.
Es ist kein Ersatz für Umsatzanalysen oder serverseitiges Bestellreporting. Hotjar erhält das benannte Event für Behavioral Segmentation; die Bestelldetails des Moduls werden hauptsächlich genutzt, um lokalen Event-Kontext zu bauen, und sind kein vollständiger Transaktionsfeed.
Die Funktion hängt von den normalen Hotjar-Modul-Guards ab. Das Modul muss aktiviert sein, die Hotjar Site ID muss als Ziffern konfiguriert sein, Purchase Tracking muss aktiviert sein, und der Besucher muss die Tracking-Prüfungen des Moduls bestehen, etwa Consent Handling, wenn Consent Respect aktiviert ist. Wenn Tracking nicht erlaubt ist, gibt der Bestellbestätigungs-Hook nichts zurück.
Wenn der Hook läuft, baut das Modul lokalen Purchase-Kontext aus der PrestaShop-Bestellung, einschließlich Werten wie Bestell-ID, Währung, Gesamtwert, Artikelanzahl und Produktkennungen. Dieser Kontext wird dem Bestellbestätigungs-Template zugewiesen und kann vom lokalen Event Recording/Demo Tooling des Moduls genutzt werden. Der vom Template ausgeführte Hotjar Events API-Aufruf bleibt jedoch das einfache benannte Event purchase.
Verwenden Sie in Hotjar das purchase-Event als Verhaltensmarker. Für Summen, Steuer, Marge, Attribution, Rückerstattungen oder verbindliches Conversion Reporting nutzen Sie weiterhin PrestaShop-Bestelldaten oder eine Analytics-Plattform, die für Transaktionsreporting ausgelegt ist.
Nein. Das Modul sendet PrestaShop-Events und Kundenkontext an Klaviyo, aber Kampagnenlogik, Segmente, E-Mail-Inhalte und SMS-Flows werden in Klaviyo verwaltet. Diese Trennung ist nützlich, weil Shopdaten aus PrestaShop kommen, während die Marketingstrategie in der Marketingplattform bleibt.
Quellseitig ist die PrestaShop-Seite auf Onsite-Datenlieferung begrenzt. Wenn ENABLED gesetzt ist und PUBLIC_API_KEY vorhanden ist, lädt der Header-Hook Klaviyos Onsite-Script mit der Company ID. Install-Defaults lassen das Modul deaktiviert, halten den Public Key leer und stellen Tracking-Schalter wie TRACK_VIEWED, TRACK_CART und TRACK_PURCHASE bereit.
Das Front-Template kann eingeloggte Kunden mit E-Mail und Vorname identifizieren, eine Produktseite als Viewed Product tracken und die Warenkorbseite als Added to Cart tracken. Es enthält keinen Klaviyo Flow Builder, Segment Editor, E-Mail-Template-Editor, SMS-Workflow-Screen oder Campaign-API-Layer. Die Quelle stellt einen Purchase-Schalter bereit, aber das geprüfte Browser-Tracking-Template gibt keinen Purchase-Tracking-Aufruf aus. Purchase Automation sollte daher weiterhin in Klaviyo verifiziert werden, statt allein aus der PrestaShop-Einstellung angenommen zu werden.
PUBLIC_API_KEY=YOUR_KLAVIYO_PUBLIC_KEY ENABLED=1 TRACK_VIEWED=1 TRACK_CART=1Teilweise. Das Modul hat Product-Card-Templates und Produktdaten-Laden, aber der implementierte Storefront-Pfad ist keine eigenständige product_list-Dropdown-Spalte. MenuBuilder kann product_list-Spaltenelemente aus einer Kategorie-ID und einem Limit laden, aber extractChildrenFromColumns() macht product_list-Elemente nicht als Menü-Children verfügbar. Händler sollten sich daher nicht darauf verlassen, dass dieser Spaltentyp Produktkarten rendert, bis Template-/Child-Support ergänzt ist.
Der aktuell implementierte Pfad sind Produktvorschauen unter Category-Tree-Children. Fügen Sie eine Dropdown-Spalte vom Typ category_tree hinzu, aktivieren Sie PRODUCTS_NB mit einem Wert größer null, und der Builder kann Produkte aus jedem Category Child anhängen. Das Storefront-Template rendert dann das erste angehängte Produkt als Featured Card und die übrigen angehängten Produkte als kleinere Karten im Panel.
SHOW_PRICES und SHOW_DISCOUNTS steuern, ob Preise und Rabatt-Badges erscheinen; beide sind standardmäßig aktiviert. PRODUCTS_NB steuert, wie viele Produktvorschauen je Category Child angehängt werden. Die Menu Cache TTL steuert, wie schnell strukturelle Änderungen erscheinen, und Produkt-, Kategorie- und CMS-Update-Hooks sind registriert, um gecachte Menüdaten zu leeren, wenn sich Shopinhalte ändern.
Implemented storefront path:
category_tree child + PRODUCTS_NB > 0 = product previews under that category child.
Not currently implemented as rendered storefront cards:
standalone product_list column.Das Modul rendert das mobile Menü aus derselben Top-Level-Menükonfiguration, mit einem dedizierten Mobile Parser. Das reduziert doppelte Pflege und hilft, Desktop- und Mobile-Navigation abgestimmt zu halten. Sie sollten das mobile Layout trotzdem prüfen, weil lange Labels und tiefe Kategorie-Bäume die Nutzbarkeit beeinflussen können.
Desktop- und Mobile-Ausgaben erhalten beide dieselben $menu.children-Daten für den Off-Canvas-Baum. Auf Mobile rendert das Template diesen Baum, während HtmlMobileTreeParser und der Menu Builder mehrere Desktop-Spaltenlayouts in eine einfachere mobile Struktur umwandeln können, darunter Category Trees, CMS Category Trees, Blog Categories, Link Groups, CMS Links, Link Lists, HTML-abgeleitete Mobile Trees und Visual Tabs.
Das bedeutet, dass Sie Labels, Links, Category Trees, CMS Links, Visual Tabs und kompatible Custom-Mobile-Tree-Inhalte normalerweise einmal im Modul pflegen. Die praktische Ausnahme ist Inhalt, der nicht in menu.children extrahiert wird. Insbesondere werden Desktop-product_list-Spalten nicht in den aktuellen Mobile Tree extrahiert, und das Mobile-Template rendert nur $menu.children; Product-List-Inhalt bräuchte Storefront-/Mobile-Template-Support, bevor er im Off-Canvas-Menü erscheint.
Custom HTML ist ein weiterer Bereich zum Testen. Wenn eine Spalte ungewöhnliches Markup enthält und kein nutzbarer Mobile Tree vorhanden ist, kann der Mobile Parser auf eine einfache oder leere Struktur zurückfallen. Testen Sie daher lange Labels, verschachtelte Trees und Promotion-HTML auf echter Mobile-Breite, bevor Sie sich darauf für Navigation verlassen.
Nein. Das gerenderte Template verwendet skype:username?chat, also einen Chat-Link. Der Code rendert weder einen ?call-Link noch einen separaten Button fuer Sprach-/Videoanrufe.
Das Modul muss aktiviert sein und USERNAME muss konfiguriert werden. Der Validator der Pflichtkonfiguration erlaubt Buchstaben, Zahlen, Punkte, Bindestriche und Unterstriche mit einer Laenge von 3 bis 64 Zeichen.
Der Hook displayHeader registriert views/css/mprskypechatintegration.css nur, wenn der Chat-Guard besteht; inaktive oder nicht konfigurierte Widgets laden dieses Stylesheet daher nicht.
Ja. Der gemeinsame Guard prueft SHOW_MOBILE und gibt in mobilen Kontexten false zurueck, wenn diese Einstellung deaktiviert ist.
Nein. Das Modul verbindet PrestaShop mit Tidio und steuert das Ladeverhalten im Storefront. Chatbot-Flows, Inbox-Handling und Operator-Workflows werden in Tidio verwaltet, wo diese Werkzeuge hingehören.
PrestaShop-Einstellungen sind Verbindungs- und Rendering-Einstellungen: PUBLIC_KEY ist erforderlich und wird validiert, ENABLED ist standardmäßig 1, und das Widget kann verzögert, auf Mobile verborgen, nach Seitentyp begrenzt und optional mit E-Mail/Name eingeloggter Kunden über PASS_USER_DATA versorgt werden.
PUBLIC_KEY=your_tidio_public_key ENABLED=1 PAGES=all DELAY=0 PASS_USER_DATA=1Im Front Office definiert das Template nur optionale document.tidioIdentify-Daten und hängt Tidios gehostetes Script von code.tidio.co an. In diesem Modul gibt es keinen PrestaShop-seitigen Bot Builder, keine Inbox-Ansicht, keinen Operator-Zuweisungsscreen, keine Nachrichtentabelle und keine Flow API. Sales-/Support-Automation muss daher weiterhin im Tidio-Dashboard konfiguriert werden.
Die Konfiguration speichert Aktivierungsstatus, Titel, HTML-Nachricht, Sichtbarkeit des Newsletter-Felds, Verzogerung in Sekunden, Cookie-Dauer in Tagen und ob die Anzeige auf allen Seiten oder nur auf der Startseite erfolgen soll.
Nachdem der Besucher es geschlossen hat, setzt das Script das Cookie mprwpop_seen fur die konfigurierte Anzahl von Tagen. Vor einer erneuten Anzeige pruft das Popup-Script dieses Cookie.
Nein. Das E-Mail-Feld ist in diesem Modul nur Anzeige. Wenn SHOW_NEWSLETTER aktiviert ist, rendert das Front-Template ein Newsletter-Formular mit E-Mail-Eingabe und Subscribe-Button, aber das Modul selbst enthält keinen Front Controller, AJAX Handler, Subscriber-Table-Insert und keine Newsletter-Modul-Integration, die übermittelte Adressen speichert.
Das Popup-Script behandelt nur Anzeigezeitpunkt, Schließen des Modals, Schließen per Escape-Taste und das mprwpop_seen-Cookie. Es fängt den Form Submit nicht ab und sendet die Adresse nirgendwohin.
Wenn Sie Leads erfassen möchten, verbinden Sie dieses Formular mit Ihrem eigenen Handler, einem Newsletter-Modul, Brevo- oder Mailchimp-Endpunkt oder einer Theme-Level-Form-Action, die Ihr Shop verarbeitet. Bis diese Integration existiert, zeigt das Aktivieren des Feldes nur ein E-Mail-Feld; es erstellt keine Newsletter-Abonnenten.
Die zugehörigen Moduleinstellungen entscheiden nur, ob das Feld angezeigt wird und wie oft das Popup erscheint. Install-Defaults setzen SHOW_NEWSLETTER auf 0, DELAY auf 3 Sekunden, COOKIE_DAYS auf 7 und SHOW_ON auf all; SHOW_ON=homepage beschränkt es auf den Index Controller.
Das Sichtbarkeits-Cookie wird gesetzt, wenn der Käufer das Popup schließt, das Overlay klickt oder Escape drückt. Das Absenden des Newsletter-Formulars legt in diesem Modul keinen Subscriber-Datensatz an, und das Template-Formular hat keine Action URL. Ein Händler sollte es daher als Front-End-Platzhalter behandeln, bis es mit einem echten Newsletter-Endpunkt verbunden ist.
<form class='mprwpop-newsletter' id='mprwpop-nl-form' method='post'>Ja. Wenn die Anzeigeeinstellung nur Startseite lautet, gibt der hook nur dann Inhalte zuruck, wenn die aktuelle front controller-Seite die Indexseite ist.
Fügen Sie Ihre numerische Microsoft UET Tag ID hinzu und aktivieren Sie Browser-Tracking im Modul. Der PrestaShop Header Hook lädt das UET-Script, pusht das Page Load Event und sendet dann konfigurierte Browser-Events, wenn Tracking aktiv ist und Consent-Regeln es erlauben.
Bei einer Neuinstallation ist Tracking erst live, wenn diese Einstellungen vollständig sind: ENABLED ist standardmäßig 0, TAG_ID ist leer, und das Modul betrachtet sich nur als aktiv, wenn die Tag ID numerisch ist. Speichern Sie im Admin-Formular die Microsoft Ads UET Tag ID ohne Buchstaben oder Leerzeichen, lassen Sie RESPECT_CONSENT aktiviert, wenn Sie ein unterstütztes Cookie-Modul verwenden, und entscheiden Sie, welche Event-Schalter aktiv bleiben sollen.
TAG_ID=123456789 ENABLED=1 RESPECT_CONSENT=1 TRACK_PAGE_VIEW=1 TRACK_PRODUCT_VIEW=1 TRACK_PURCHASE=1Wenn der Header Hook läuft, kann er außerdem msclkid aus der Landing-URL für späteres Conversion Matching erfassen. Mitarbeiterausschluss ist über EXCLUDE_EMPLOYEES standardmäßig aktiviert, sodass eingeloggte Back-Office-Tests möglicherweise keine Events feuern, wenn Sie diese Einstellung nicht berücksichtigen.
Ja, es unterstützt die Microsoft Conversions API für serverseitige Purchase Events, aber nur, wenn die erforderlichen Einstellungen vollständig sind. Das Modul benötigt aktiviertes Tracking, eine numerische TAG_ID, eingeschaltetes CAPI_ENABLED, ein gespeichertes CAPI_ACCESS_TOKEN und aktiviertes Purchase Tracking.
- Admin-Validierung: Die UET Tag ID darf nur Ziffern enthalten, CAPI kann ohne numerische Tag ID nicht aktiviert werden, der Bearer Token ist erforderlich, wenn CAPI aktiviert ist, und das Queue Batch Limit muss 1-100 sein.
- Bestellflow: Bei
actionValidateOrderprüft das ModulcanTrack(),TRACK_PURCHASEund CAPI-Bereitschaft, bevor es etwas in die Warteschlange stellt. - Queue Flow: Eine Purchase Conversion wird für Provider
microsoft_uetin die Warteschlange gestellt, mit der Bestell-ID verknüpft und das Modul verarbeitet sofort einen kleinen Batch von 3 Events. Die Cron-Aufgabe verarbeitet später den normalen konfigurierten Batch.
Das Browser-UET-Tag kann weiterhin Page-, Cart-, Search- und Remarketing-Events behandeln; der CAPI-Pfad in diesem Modul ist speziell der serverseitige Purchase-Pfad.
Für die Einrichtung sind die wichtigen CAPI-Felder:
CAPI_ENABLED=1 CAPI_ACCESS_TOKEN=your_microsoft_token CAPI_BATCH_LIMIT=20 TRACK_PURCHASE=1Der API Client sendet Events an Microsoft UET CAPI und verwendet dabei die numerische Tag ID im Endpunkt und ein Bearer Token. Die Nutzlast normalisiert Event Name/ID/Time/Source URL, Ad-Storage-Consent, User Data und benutzerdefinierte Purchase-Daten. User Matching kann IP-Adresse, User Agent, gespeicherte msclkid, gehashte Kundendetails und anonyme Warenkorb-/Gastkennungen umfassen, wenn verfügbar.
Dies ist kein serverseitiger Ersatz für jedes Browser-Event im Modul. Page View, Product View, Search, Add-to-cart, Wishlist und Custom Click/URL/Controller Events bleiben in der geprüften Quelle browserseitig; CAPI ist die serverseitige Purchase-Ergänzung.
Das Modul gruppiert Microsoft Ads UET Events rund um Storefront-Commerce, Konto, Suche und Custom-Trigger-Aktivität. Die Haupt-Events sind in den Moduleinstellungen einzeln konfigurierbar.
- Commerce/Storefront:
pageView,productView,addToCart,addToWishlist,initiateCheckoutundpurchase. Produkt-, Warenkorb- und Purchase Events enthalten Commerce-Parameter wie Produkt-IDs, Bestellwerte, Währung und Mengen, wenn verfügbar. - Suche:
searchfeuert auf Suchergebnisseiten mit dem Query-Kontext. - Konto:
signUpwird nach Kundenregistrierung über den Registration-Hook-Flow des Moduls ausgelöst. - Custom: Custom Events können mit Click-, URL-, Controller- oder DOM-Event-Triggern konfiguriert werden, wobei Event-Namen auf die erlaubten UET-Naming-Regeln des Moduls begrenzt sind.
Das Purchase Event wird auf der Bestellbestätigungsseite gesendet, während Add-to-cart- und Wishlist-Events von Front-Office-JavaScript-Listenern erfasst werden.
Die meisten dieser Schalter sind bei der Installation standardmäßig aktiviert, darunter TRACK_PAGE_VIEW, TRACK_PRODUCT_VIEW, TRACK_ADD_CART, TRACK_ADD_WISHLIST, TRACK_INITIATE_CHECKOUT, TRACK_SEARCH, TRACK_PURCHASE und TRACK_SIGNUP. TRACK_CUSTOM_EVENTS ist standardmäßig aus, bis Sie Custom-Event-Regeln definieren.
Custom Rules sind bewusst begrenzt: Der Config Normalizer akzeptiert bis zu 15 unterschiedliche Event-Namen, entfernt reservierte event_id-Parameter und unterstützt Click Selectors, URL-Contains-Matches, Controller-Namen oder Custom DOM Events. Front-Office-JavaScript dedupliziert Add-to-cart- und Wishlist-Button-Events für etwa eine Sekunde, damit dieselbe Aktion seltener doppelt gezählt wird.
Ja. Mit aktiviertem RESPECT_CONSENT prüft das Modul Marketing Consent, bevor es Microsoft UET Tracking als aktiv behandelt. Es prüft zuerst mprcookiesrevolution, indem es das mprcr_consent-Cookie liest und nach marketing:1 sucht. Wenn dieses Cookie fehlt, fällt es auf den DEFAULT_CONSENT-Wert dieses Moduls zurück. Wenn Cookies Revolution nicht aktiv ist, prüft es mprcookiebanner über mprcookie_consent=granted und fällt erneut auf die Default-Consent-Einstellung dieses Moduls zurück, wenn das Cookie fehlt.
Wenn kein unterstütztes MPR-Consent-Modul aktiv ist, gibt die Consent-Funktion allowed zurück, sodass Tracking nicht allein durch Consent blockiert wird. Für striktes GDPR-Gating lassen Sie RESPECT_CONSENT aktiviert und installieren/konfigurieren eines der unterstützten Consent-Module.
Der msclkid-Flow läuft im Header Hook. Das Modul liest msclkid aus der Landing-URL, akzeptiert nur A-Za-z0-9._:--Zeichen bis 500 Zeichen, spiegelt den Wert in $_COOKIE['mprbuet_msclkid'] und schreibt dann ein HTTP-only-Cookie namens mprbuet_msclkid für 7776000 Sekunden. Spätere serverseitige Conversion User Data kann diese gespeicherte Microsoft Click ID enthalten, wenn vorhanden.
https://shop.example/?msclkid=abc123speichertabc123im Modul-Cookie.- Ein späterer Kauf kann diesen Wert an Microsoft UET Conversion Data anhängen, wenn serverseitige Conversions konfiguriert sind.
Die serverseitige Consent-Prüfung und das Front-Office-JavaScript-Gate arbeiten zusammen, sind aber nicht identisch. Der PHP-canTrack()-Guard blockiert Event-Erstellung für Mitarbeiter, deaktivierte Module und fehlgeschlagenen Marketing Consent; das Header-Template prüft außerdem Browser-Cookies, bevor bat.js geladen wird, wenn ein unterstütztes Client-Consent-Modul vorhanden ist.
Wenn RESPECT_CONSENT auf 0 gesetzt ist, wird die Consent-Prüfung umgangen. Wenn kein unterstütztes MPR-Consent-Modul installiert ist, erlaubt die PHP-Funktion Tracking allein aus Consent-Sicht. Strikte Shops sollten sich daher nicht auf das UET-Modul selbst als einzige Consent-Schicht verlassen.
Das msclkid-Cookie wird vor dem späteren Kauf geschrieben. Das ist wichtig, weil ein Käufer von Microsoft Ads kommen, browsen und in einer späteren Anfrage bestellen kann. Der Wert wird nur akzeptiert, wenn er zur Zeichen-Whitelist des Moduls passt; ungültige oder überlange Werte werden ignoriert, statt an Microsoft gesendet zu werden.
Nein. Der Browser-Tag wird vom PrestaShop Header-Hook nur eingefügt, wenn das Tracking aktiv ist, also eine numerische TAG_ID gespeichert und ENABLED gleich 1 ist. Dabei wird die Microsoft-Bibliothek mit script.async = true von https://bat.bing.com/bat.js geladen und blockiert das Rendern der Seite nicht.
Beim Laden sendet das Modul ein einzelnes pageLoad an window.uetq und danach nur die von Ihnen aktivierten Events wie Produktansicht, In-den-Warenkorb oder Kauf über uetq.push('event', ...). Ist ein unterstuetztes Consent-Modul aktiv, wird der Pixel erst nach bestaetigter Marketing-Einwilligung geladen, sodass ablehnende Besucher keine Anfrage an Microsoft ausloesen.
Der serverseitige Versand ueber die Conversions API laeuft in einem geplanten Cron-Task, nicht in der Anfrage des Kunden, und angemeldete Mitarbeiter sind standardmaessig ueber EXCLUDE_EMPLOYEES ausgeschlossen.
Wenn die Conversions API aktiviert und ein Microsoft Bearer-Token gespeichert ist, werden Kauf-Events bei der Bestellvalidierung in eine Warteschlange gestellt und serverseitig von einem geplanten Cron-Task send_bing_uet_conversions gesendet, der alle 300 Sekunden laeuft. Jeder Lauf verarbeitet die Warteschlange bis zum konfigurierten Batch-Limit (CAPI_BATCH_LIMIT, Standard 20, erlaubt 1–100 und pro Lauf auf 100 Zeilen begrenzt), sodass fehlgeschlagene oder ausstehende Events im naechsten Zyklus wiederholt statt verworfen werden.
Die serverseitigen Nutzerdaten koennen die gespeicherte Microsoft Click-ID (msclkid), gehashte E-Mail und Telefonnummer, Client-IP und User-Agent enthalten. Verarbeitete und veraltete Eintraege werden automatisch bereinigt, die juengste Historie bleibt erhalten und alte Zeilen werden mit der Zeit entfernt.
Fehlt der Bearer-Token oder ist er leer, zeigt der Admin-Bereich einen Hinweis und es werden keine serverseitigen Events gesendet, bis Sie ihn hinzufuegen. Das Browser-UET kann waehrend der Einrichtung der Conversions API unabhaengig fuer Seitenaufrufe und Remarketing aktiv bleiben.
Nein, nicht für den einfachen Messenger-Kontaktbutton. Die erforderliche Einstellung ist die numerische Facebook Page ID; ohne konfigurierte App ID rendert das Storefront-Template einen direkten https://m.me/{page_id}-Link, sodass Käufer Messenger über den Floating Button öffnen.
- m.me-Link-Modus: Benötigt aktiviertes Modul und gültige Page ID. Er ist schnell eingerichtet und funktioniert als einfacher externer Messenger-Kontaktlink.
- SDK-Modus: Das Modul behandelt ein ausgefülltes App-ID-Feld als Schalter, um Facebooks Customer Chat Plugin Markup zu rendern und das Facebook Customer Chat SDK zu laden. Der Begrüßungstext wird in diesem SDK-Modus-Markup verwendet.
Händler, die nur einen zuverlässigen Messenger-Button möchten, können die App ID also leer lassen. Fügen Sie die App ID nur hinzu, wenn Sie bewusst den SDK-basierten eingebetteten Chat-Pfad nutzen möchten und die Facebook-seitige Einrichtung bereit ist.
Die Page-ID-Anforderung ist strikt: Der Required-Config-Validator des Moduls akzeptiert nur Ziffern, 5 bis 32 Zeichen, und das Widget rendert nicht, wenn das Modul aktiviert ist, dieses Feld aber leer bleibt. Defaults aktivieren das Widget, zeigen es auf allen Seiten inklusive Mobile, verwenden den Bottom-right-Icon-Stil und verzögern die Anzeige um 0 Sekunden.
Appearance-Einstellungen wie POSITION, STYLE, CTA_TEXT, COLOR, SIZE, MARGIN, Tooltip und Animation werden vom Floating-Link-Button-Pfad verwendet. Seitenfilterung und mobile Sichtbarkeit kommen aus dem gemeinsamen Chat Guard, sodass Sie den Messenger-Einstiegspunkt nur auf Produkt-, Kategorie- oder Checkout-Seiten anzeigen können, wenn das zu Ihrem Support-Flow passt.
Die Fetch-Methode prüft zuerst RSS_URL. Wenn sie leer ist, erstellt sie eine RSS-URL aus BOARD_URL. Pin-URLs werden nur verwendet, wenn der RSS-Pfad keine Posts liefert.
Nein. mprpinterestintegration ist ein Pinterest-Content-/Feed-Modul, nicht das Pinterest-Ads-Tracking-Modul. Es zeigt Pinterest Pins, Boards oder RSS-gesteuerte Inhalte im Shop an und enthält Cache-Handling für den angezeigten Feed. Die Quelle enthält außerdem optionale Pinterest-API-Publishing-Einstellungen für Produkt-/Content-Publishing.
- Pinterest Feed Integration: Verwenden Sie es, um Pinterest-Inhalte im Storefront anzuzeigen, Benutzernamen, Pin-URLs, Board-URLs oder RSS-Quellen zu konfigurieren und optional Shop-Inhalte zu Pinterest zu veröffentlichen.
- Pinterest Tag: Verwenden Sie das separate Pinterest Tag-Modul für Werbemessung, Browser-Tag-Events und optionale Conversions API-Tracking-Events wie Page Visits, Product Views, Add-to-cart, Checkout, Search und Signup.
Wenn das Ziel besseres visuelles Merchandising oder das Einbetten von Pinterest-Inhalten ist, verwenden Sie diese Feed-Integration. Wenn das Ziel Pinterest Ads Attribution oder Conversion Optimization ist, verwenden Sie stattdessen das Pinterest Tag-Modul.
Für den Feed-Pfad kann die erforderliche Quelle so einfach sein wie eine oder mehrere gespeicherte Pin-URLs oder eine Board-URL/RSS-Quelle, je nachdem, wie Sie Inhalte kuratieren möchten. Die gemeinsamen Feed-Einstellungen steuern Display Hook, Post Count, Spalten, Grid-/Slider-Layout, Follow Button, Mobile-Sichtbarkeit und Cache-Dauer; der Cache ist standardmäßig 3600 Sekunden und kann aus dem Modul-Admin aktualisiert werden.
Der optionale Publishing-Pfad ist ebenfalls getrennt vom Ads Tracking. Pinterest Publishing erfordert Pinterest-API-Zugangsdaten wie Access Token und Board ID, und der Publisher sendet bildbasierte Pin-Daten an Pinterest. Das installiert weiterhin nicht das Pinterest Advertising Tag und meldet keine Ad Conversions; dafür braucht der Shop das separate mprpinteresttag-Modul.
Die Config Map enthält ACCESS_TOKEN, BOARD_ID, AUTOPUBLISH und AUTOPUBLISH_CAPTION. Publishing wird über den gemeinsamen PinterestPublisher abgewickelt.
Jedes Feed-Item verlinkt auf die Pin-URL, zeigt Thumbnail-Bild, optionales Video-Badge, Overlay-Text, optionalen Autorennamen und optionale Caption abhängig von Moduleinstellungen und Quelldaten.
Das Modul benoetigt den Smartsupp Website Key. Das Setup-Panel weist den Haendler an, ihn aus den Smartsupp-Einstellungen zu kopieren, und der Validator der Pflichtkonfiguration behandelt einen leeren Key als ungueltig.
Wenn PASS_USER_DATA aktiviert ist und der Kunde angemeldet ist, gibt das gemeinsame Chat-Trait customer_email und customer_name zurueck. Das Template weist diese Werte _smartsupp.email und _smartsupp.name zu.
Nein. Das Template laedt Smartsupps externes Widget-Script. Die sichtbare Chat-UI wird von Smartsupp bereitgestellt, nachdem der Loader ausgefuehrt wurde.
Ja. Wenn die Einstellung DELAY groesser als null ist, legt das Template die Initialisierung und Script-Injektion von Smartsupp in setTimeout.
Nein, Sie benötigen kein TikTok-Developer-Konto, nur um Videos anzuzeigen. Der Display Feed basiert auf eingefügten TikTok-Video-URLs und TikToks öffentlichem oEmbed-Endpunkt. Geben Sie in den Moduleinstellungen den TikTok-Benutzernamen für den Follow-Link ein, fügen Sie im Feld Video URLs eine TikTok-Video-URL pro Zeile ein und speichern Sie.
Wenn der Feed gebaut wird, teilt das Modul die gespeicherte URL-Liste zeilenweise, überspringt Einträge, die kein tiktok.com enthalten, ruft https://www.tiktok.com/oembed?url=... auf und speichert den zurückgegebenen Titel, Caption, Autor, Thumbnail und Embed HTML für die Anzeige. Dieser Display-Pfad verwendet kein API Token, keinen App Review und keine Developer-Zugangsdaten.
Zugangsdaten sind nur für den optionalen Publishing-Workflow relevant. Die Quelle hat Publishing-Einstellungen wie ACCESS_TOKEN, CLIENT_KEY, AUTOPUBLISH und AUTOPUBLISH_CAPTION und verwendet für diesen Pfad eine TikTok-Publisher-Instanz. Wenn Ihr Ziel nur ist, ausgewählte TikTok-Videos im Shop einzubetten, können Sie diese Publishing-Zugangsdaten leer lassen.
Das Display-Modul ist standardmäßig aktiviert, mit aktivierten Caption-, View-Icon- und Like-Icon-Schaltern, während die gemeinsamen Feed-Defaults displayHome, 6 Posts, 3 Desktop-Spalten, Grid-Layout, Lazy Loading und eine Cache-Dauer von 3600 Sekunden verwenden. Der Feed rendert nur im konfigurierten Social-Feed-Hook; wenn der konfigurierte Hook nicht zum aktuellen Hook passt, wird nichts ausgegeben.
Es gibt zwei praktische Randfälle: URLs ohne tiktok.com werden übersprungen, und jede fehlgeschlagene oEmbed-Anfrage wird übersprungen, statt eine kaputte Karte zu rendern. Die Storefront-Karte verlinkt zur ursprünglichen TikTok-URL und zeigt das zurückgegebene Thumbnail, den Autor und die Caption an. Gelöschte/private Videos oder blockierte oEmbed-Antworten reduzieren daher einfach den Feed.
VIDEO_URLS=https://www.tiktok.com/@brand/video/1234567890 USERNAME=brand SHOW_CAPTION=1 POST_COUNT=6Ja. Das gemeinsame Chat-Trait pruft die mobile Einstellung vor dem Rendern und gibt keinen Button zuruck, wenn die mobile Anzeige fur einen mobilen Besucher deaktiviert ist.
Nein, das Modul verwaltet keine Agenten, Gesprächsverläufe oder Support-Workflows. WhatsApp selbst behandelt die Unterhaltung, während das Modul den Storefront-Button und die Click-to-chat-URL handhabt. Das hält die Integration leichtgewichtig und klar.
Das einzige erforderliche Verbindungsfeld ist PHONE. Es darf nur Ziffern enthalten, 7 bis 20 Zeichen lang sein, inklusive Landesvorwahl und ohne Pluszeichen oder Leerzeichen. Das Front-Template baut https://wa.me/{phone}, und wenn eine Nachricht konfiguriert ist, hängt es ?text=... an, damit WhatsApp sie vorbefüllt.
- Was PrestaShop steuert: Aktivieren/deaktivieren, Telefonnummer, optionale vorbefüllte Nachricht, Position, Icon-/Bar-Stil, CTA-Text, Farbe, Größe, Abstand, Tooltip, Animation, mobile Sichtbarkeit, Anzeigeverzögerung und Seitenfilter.
- Was WhatsApp steuert: Den eigentlichen Chat-Thread, Antworten, Mitarbeiterzuweisung, Nachrichtenverlauf, Benachrichtigungen und alle Inbox- oder CRM-Funktionen.
Die optionale Nachricht unterstützt {product} auf Produktseiten und {url} für die aktuelle Seite, was für Produktfragen nützlich ist. Es bleibt dennoch nur eine vorbefüllte WhatsApp-Nachricht, kein Ticket und kein gespeicherter PrestaShop-Supportdatensatz.
Das Modul ersetzt {url} durch die aktuelle Seiten-URL. Auf Produktseiten kann es ausserdem {product} durch den aktuellen Produktnamen ersetzen.
Das Modul kann aus dem footer oder before-body hook rendern, aber ein internes statisches Flag verhindert doppelte Ausgabe. Der Seitenumfang kann alle Seiten, Produktseiten, Kategorieseiten oder checkout-bezogene Seiten umfassen.
Fügen Sie den Discord Invite Code in der Modulkonfiguration hinzu und aktivieren Sie das Widget. In PrestaShop rendert das Modul einen Front-Office-Button, der mit dem gespeicherten Invite Code auf discord.gg verlinkt ist, mit konfigurierbarer Position, Stil, CTA-Text, Farbe, Größe, Tooltip, Animation und Abstand.
Verwenden Sie nur den Invite Code, nicht die vollständige URL. Der Required-Config-Validator erwartet Buchstaben, Zahlen, Bindestriche und Unterstriche, 2 bis 64 Zeichen. Ein fehlender Invite Code verhindert das Rendering; ein ungültig gespeicherter Code wird durch den Konfigurationshinweis markiert und kann einen fehlerhaften Discord-Link erzeugen.
INVITE_CODE=AbCdEfG123 ENABLED=1 STYLE=icon POSITION=bottom-right CTA_TEXT=Join our DiscordBei der Installation setzen die Defaults das Widget bereits auf aktiviert, bottom-right, Icon-Stil, Discord-Blau #5865F2, 60px Größe, 20px Abstand, Tooltip aktiviert, Pulse-Animation, Mobile aktiviert, alle Seiten und keine Verzögerung. Das Admin-Setup-Panel empfiehlt, einen permanenten Invite und einen dedizierten Support-Channel zu erstellen, weil das Modul Käufer in den Server-Join-Flow sendet, statt Discord-Unterhaltungen in PrestaShop zu behandeln.
Ja, das Widget kann nach Seitentyp begrenzt werden. In PrestaShop unterstützt der gemeinsame Chat Guard alle Seiten, Produktseiten, Kategorieseiten oder checkoutbezogene Controller und prüft außerdem die separate Mobile-Sichtbarkeitseinstellung, bevor er rendert.
Der Seitenfilter wird in der gemeinsamen Einstellung PAGES gespeichert. Der Guard gibt true für all zurück, prüft php_self=product für Produktseiten, php_self=category für Kategorieseiten und behandelt cart, order, order-opc, orderopc und checkout als checkoutbezogene Controller.
Derselbe Guard verlangt außerdem ENABLED und einen nicht leeren INVITE_CODE, und er versteckt das Widget auf Mobile, wenn SHOW_MOBILE aus ist. Das bedeutet, Seitentargeting ist kein separates Snippet, das ins Theme eingefügt wird; es ist Teil der Render-Entscheidung des Moduls, bevor CSS und Button ausgegeben werden.
PAGES=product SHOW_MOBILE=1 DELAY=0Ja, das Modul besitzt eine Verzögerungseinstellung für den Storefront-Button. In PrestaShop schreibt das Hook-Template einen data-delay-Wert und ein kleines Skript blendet das Widget aus und zeigt es nach der konfigurierten Sekundenanzahl.
Nein, das Modul sendet keinen vorbefüllten Text an Discord. Die erforderliche Verbindungseinstellung ist ein Invite Code, kein User-/Message-API-Token, und das Storefront-Template rendert einen Link zu https://discord.gg/{invite_code}.
Das Admin-Feld Pre-filled Message wird zur Referenz gespeichert, und das Modul kann {url} intern ersetzen, bevor Template-Daten zugewiesen werden, aber das aktuelle Storefront-Template gibt diese Nachricht nicht aus und hängt sie nicht an die Discord-Invite-URL an.
Das unterscheidet sich von Chat-Plattformen, die URL-Parameter für eine vorbefüllte Unterhaltung unterstützen. Discord-Invite-Links führen den Käufer zu einem Server-Invite-/Join-Flow. Die praktische Einrichtung besteht daher darin, einen permanenten Invite-Link zu erstellen und Kunden nach dem Beitritt zu einem Support-Channel zu leiten.
Die Quelle bestätigt diese Trennung. Das Admin-Verbindungsformular labelt das Feld als Pre-filled Message, aber seine Beschreibung sagt, dass es für Discord Invites nicht verwendet und nur zur Referenz gespeichert wird. Im Hook ersetzt das Modul {url} innerhalb der gespeicherten Nachricht, bevor es Smarty-Daten zuweist, aber das Template verwendet nur invite_code, Position/Stil/CTA/Appearance, Tooltip, Animation und Verzögerung.
Für Händler ist die zuverlässige Konfiguration der Invite selbst: Erstellen Sie einen stabilen Invite Code, verhindern Sie dessen Ablauf und nutzen Sie Discord-Server-/Channel-Regeln, um Kunden nach dem Beitritt zu führen. Verlassen Sie sich nicht darauf, dass dieses Modul eine direkte Discord-DM öffnet, in einen Channel postet oder eine Checkout-/Produktnachricht an Discord übergibt.
Nein, es ist ein Sprach-Navigationsmodul. Es hilft Käufern, zwischen Sprachen zu wechseln, die Sie bereits betreiben, und führt sie zu lokalisierten URLs, wo PrestaShop die Daten hat. Übersetzungsqualität, Länder-Targeting und Besucherstandort-Logik bleiben außerhalb dieses Moduls.
Das Modul liest aktive PrestaShop-Sprachen für den aktuellen Shop mit Language::getLanguages(true, shop_id). Wenn der Shop nur eine aktive Sprache hat, gibt es keinen Selector zurück. Für jede Sprache mappt es die Sprach-ISO auf ein Flaggen-SVG, wenn vorhanden, baut eine Sprach-URL aus den Alternative-Language-URLs des Front Controllers, wenn verfügbar, und fällt auf PrestaShops getLanguageLink() zurück.
- Navigation: Die Desktop-Ausgabe versteckt den nativen Desktop-Sprachselector und rendert ein Flaggen-Dropdown in
displayNav2; die Mobile-Ausgabe kann ein einfaches Select indisplayMobileLanguageSelectorrendern. - Labels:
SHOW_LABELsteuert, ob der aktuelle ISO-Code neben der Flagge angezeigt wird, undSHOW_NAMESsteuert, ob vollständige Sprachnamen im Dropdown angezeigt werden. Defaults sind Label aus und Namen an. - Grenzen: Es übersetzt keine Produktnamen/-beschreibungen, wählt keine Sprachen per Geolocation, leitet Besucher nicht nach Land weiter und erstellt keine fehlenden lokalisierten URLs.
Es gibt zusätzliche URL-Bereinigung für Core-Seitenaliases und einen Integrations-Hook für übersetzte MPR Filter Revolution-Filterpfade, aber auch das hängt von vorhandenen übersetzten Routen/Daten ab. Es ist ein Switcher, keine Übersetzungsmaschine.
Es registriert displayHeader, displayOrderConfirmation, actionCustomerAccountAdd und actionValidateOrder.
Nein. Das Template der Bestellbestätigung und der Server-Conversion-Builder verwenden für abgeschlossene Bestellungen das Pinterest-Event checkout, inklusive Bestellwert, Menge, Währung, Bestell-ID und Event-ID.
CAPI_ENABLED muss aktiv sein, die Pinterest ad account ID darf nur Ziffern enthalten und der access token darf nicht leer sein. Das Batch Limit muss zwischen 1 und 100 liegen.
Ja, wenn eine Custom Rule capi aktiviert hat. Die Front Conversion Bridge mappt bekannte Browser-Eventnamen und akzeptiert auch konfigurierte Custom-CAPI-Eventnamen.
Das Modul liest den konfigurierten Selector-String und führt document.querySelectorAll für diese Selectors aus. Standardmäßig zielt es auf Produkt-Miniaturen, Kategorieblöcke und Featured-Product-Elemente.
Das Front-Script beendet sich frühzeitig, wenn IntersectionObserver nicht verfügbar ist. Das bedeutet, dass in nicht unterstützten Browsern keine versteckten Animationsklassen hinzugefügt werden.
Ja, Sie können den Effekt in den Moduleinstellungen ein- oder ausschalten. Das ist nützlich, wenn Sie testen möchten, ob Animationen Ihrem Shop helfen, oder wenn eine Kampagnenseite ein ruhigeres Layout braucht. Da der Effekt nicht hart in Templates codiert ist, erfordert das Entfernen keinen Theme-Rollback.
Der Ein-/Ausschalter ist die Einstellung ENABLED. Der Header Hook prüft diesen Wert zuerst; wenn er aus ist, kehrt er zurück, bevor er Front-CSS, JavaScript oder Inline-Konfiguration registriert. Die Theme-Templates bleiben daher unangetastet.
Standard-Installationswerte sind ENABLED=1, ANIMATION_TYPE=fade-up, DELAY=0, DURATION=600 und Selectors für Product Miniatures, Category Blocks und Featured-Product-Elemente. Die Admin-Optionen erlauben außerdem, den Animationstyp auf fade-in, slide-left, slide-right oder zoom-in zu ändern, Delay/Dauer in Millisekunden anzupassen und die Selector-Liste zu bearbeiten.
Im Storefront verwendet das Script IntersectionObserver. Wenn es keine passenden Selectors gibt oder der Browser die API nicht unterstützt, beendet es sich, ohne Hidden-/Visible-Klassen anzuwenden. Das Deaktivieren der Moduleinstellung ist daher der saubere Rollback-Pfad; kein Template-Rollback ist nötig, weil das Modul Asset-Registrierung und Klasseninjektion besitzt.
ENABLED=0Nein. Sobald der Observer ein Element als sichtbar markiert, ruft er unobserve für dieses Element auf, sodass das Reveal ein einmaliger Übergang ist.
Die Installationsstandardwerte setzen ENABLED auf 0 und USERNAME auf eine leere Zeichenkette. Der Render-Hook beendet sich frueh, wenn das Modul nicht aktiviert ist oder kein Benutzername vorhanden ist.
Nein, es öffnet Ihr Snapchat-Profil über den konfigurierten Benutzernamen. Profilinhalte und Unterhaltungen bleiben in Snapchat selbst. So bleibt das Modul darauf fokussiert, Käufern einen sauberen Weg zum Folgen oder Kontaktieren zu geben, ohne einen schweren Social Feed zur Seite hinzuzufügen.
Die Storefront-Ausgabe ist ein Floating Button, der aus dem Hook displayBeforeBodyClosingTag gerendert wird. Der Hook stoppt vor dem Rendering, wenn der Snapchat-Button nicht aktiviert ist, wenn der USERNAME-Wert leer ist, wenn mobile Anzeige für einen mobilen Besucher deaktiviert ist oder wenn der aktuelle Controller in EXCLUDE_PAGES aufgeführt ist. Wenn gerendert wird, wird das Ziel als https://www.snapchat.com/add/ plus URL-encodetem Benutzernamen gebaut.
Das Template bestätigt, dass dies ein normaler Link ist, kein Snapchat Embed. Es gibt ein <a>-Tag mit der konfigurierten URL, optionalem target=_blank, Tooltip-Text, Button-Styling, Animation und optionaler Grabber-Nachricht aus. Es gibt kein iframe, keinen Snapchat-API-Aufruf, keinen Feed Renderer und keinen Code, der Gespräche oder Profilinhalte von Snapchat liest.
Required for output: ENABLED=1
Required account value: USERNAME=yourbrand
Rendered link: https://www.snapchat.com/add/yourbrandFür Händler bedeutet das: Das Modul ist leichtgewichtig. Es gibt Besuchern einen sichtbaren Weg zu Ihrer Snapchat-Präsenz, während alle Snapchat-Inhalte, Follows, Nachrichten und Account-Privacy unter Snapchats eigener App und Website bleiben.
Die Konfigurationsdefinition listet small, medium und large, beschriftet als 48px, 60px und 72px. Die gewaehlte Groesse wird als mprchat-size-... an die Widget-Klasse uebergeben.
Nein. Dieses Modul rendert einen schwebenden Link zu einem Snapchat-Profil. Snapchat Pixel und Anzeigen-Event-Tracking werden von einem anderen Modul in diesem Batch behandelt.
Wenn Gast-Wishlists aktiviert sind, speichert das Front-Script Produkt-IDs im localStorage des Browsers und gibt fur Hinzufuge- und Entfernen-Aktionen Antworten im Gastmodus zuruck. Eingeloggte Speicherung nutzt die Datenbanktabellen des Moduls.
Die JavaScript-Konfiguration markiert den Kunden als eingeloggt, und die Sync-Aktion kann localStorage-Artikel an den Server senden, damit sie zur Standard-Wishlist des Kunden hinzugefugt werden.
Datenbank-Wishlists haben ein Token mit 32 Zeichen. Die Front-Ansicht kann Produkte per Token laden, und das Template behandelt den eingeloggten Besitzer anders als einen Besucher, der eine geteilte Wishlist ansieht.
Wenn ein eingeloggter Kunde ein Produkt speichert, speichert das Modul den Preis zum Zeitpunkt des Hinzufugens. Die Produktliste vergleicht diesen gespeicherten Preis mit dem aktuellen Produktpreis und markiert einen Ruckgang, wenn der aktuelle Preis niedriger ist.
Nein. Dieses Modul ist hauptsächlich ein Brevo-Automation-Tracker und eine Kundenregistrierungs-Synchronisierung, keine vollständige Warenkorb-/Bestell-/Produkt-Event-Integration.
- Behandelt:
displayBeforeBodyClosingTaglädt Brevos Automation-Script, ruft die Page-Tracking-Funktion auf und identifiziert den Besucher per E-Mail, wenn ein Kunde eingeloggt ist.actionCustomerAccountAddkann den neuen Kunden als Brevo-Kontakt erstellen oder aktualisieren, wenn Auto-subscribe aktiviert ist. - Behandelt nicht: Warenkorb-Updates, Product-View-Payloads, Order-Confirmation-Purchase-Events, Abandoned-Cart-Events oder Order-Status-Events. Das Modul registriert keine Warenkorb-, Bestell- oder Produkthooks für diese Aktionen.
Wenn Sie Cart Abandonment, Purchase Revenue oder Product-Behavior-Automation in Brevo benötigen, bräuchte dieses Modul zusätzliche Event-Hooks oder eine separate Integration, die diese spezifischen Brevo-Events sendet.
Die Hook-Liste ist die wichtige Grenze: Das Modul registriert nur displayBeforeBodyClosingTag und actionCustomerAccountAdd. Das Storefront-Template erstellt window.sib, lädt https://sibautomation.com/sa.js?key=..., stellt die Standard-Brevo-Funktionen in die Warteschlange und ruft window.sendinblue.page() auf. Wenn ein Kunde eingeloggt ist, ruft es außerdem window.sendinblue.identify() mit der E-Mail-Adresse auf. Keine Produkt-IDs, Warenkorbpositionen, Bestellreferenzen, Summen oder Bestellstatus werden dieser Browser-Payload hinzugefügt.
Bei Kontoerstellung postet das Modul an Brevos Contacts Endpoint mit Kunden-E-Mail, FIRSTNAME, LASTNAME, updateEnabled=true und der konfigurierten LIST_ID, wenn eine gespeichert ist. Das ist nützlich für Listenwachstum und einfache Automation Entry, aber getrennt vom Ecommerce Event Tracking.
Registered hooks: displayBeforeBodyClosingTag, actionCustomerAccountAdd
Contact API: POST https://api.brevo.com/v3/contacts
Tracked browser event here: page view, plus logged-in email identify
Not present here: cart payload, purchase payload, abandoned cart eventAktivieren Sie das Modul, fügen Sie einen Brevo API Key hinzu und lassen Sie die automatische Registrierungssynchronisierung aktiviert. Wenn PrestaShop ein Kundenkonto erstellt, sendet der Hook actionCustomerAccountAdd die E-Mail plus die Attribute FIRSTNAME und LASTNAME an Brevo und enthält die konfigurierte List ID, wenn eine gespeichert ist.
Die relevanten Einstellungen sind ENABLED, API_KEY, LIST_ID und AUTO_SUBSCRIBE. Bei der Installation startet das Modul mit ENABLED=0, leerem API Key, leerer List ID, leerem Tracker Client Key und AUTO_SUBSCRIBE=1. Die übliche Einrichtung ist also: Brevo einschalten, den API Key aus Brevo einfügen, optional die numerische List ID für neue Kontakte eingeben und Auto-subscribe New Customers aktiviert lassen.
Die Synchronisierung läuft nur bei Erstellung neuer Kundenkonten, weil das Modul auf actionCustomerAccountAdd lauscht. Es prüft zuerst, ob das Modul aktiv ist, ob der API Key existiert, ob Auto-subscribe aktiviert ist und ob PrestaShop ein geladenes newCustomer-Objekt bereitgestellt hat. Wenn eine dieser Prüfungen fehlschlägt, kehrt es zurück, ohne etwas an Brevo zu senden.
Wenn es sendet, postet das Modul JSON an https://api.brevo.com/v3/contacts mit einem 10-Sekunden-cURL-Timeout und aktivierter SSL Peer Verification. Es setzt updateEnabled auf true, sodass ein bestehender Brevo-Kontakt aktualisiert werden kann, statt einen Duplicate-Contact-Fehler zu verursachen. Diese Quellversion importiert bestehende Kunden nicht bulkweise und synchronisiert spätere Profiländerungen nicht, sofern PrestaShop nicht über diesen Hook ein neues Konto erstellt.
Required: ENABLED=1, API_KEY set, AUTO_SUBSCRIBE=1
Optional: LIST_ID=123
Sent fields: email, FIRSTNAME, LASTNAME, listIds when configuredJa. Der Storefront-Hook lädt den Brevo Automation Tracker nur, wenn das Modul aktiviert ist, der Brevo API Key konfiguriert ist und der Client Key konfiguriert ist. Das Client-Key-Feld in den Moduleinstellungen ist als Client Key (Tracker) beschriftet, und der Quellhinweis führt Händler zu Brevo > Automation > Settings > Tracking Code.
Um zu bestätigen, dass der Tracker geladen ist, öffnen Sie den Storefront-Quelltext oder die Browser-Developer-Tools und suchen Sie nach https://sibautomation.com/sa.js?key=... mit Script-ID sendinblue-js. Das Template initialisiert window.sib.client_key, stellt sendinblue.track, sendinblue.identify, sendinblue.trackLink und sendinblue.page in die Warteschlange, identifiziert eingeloggte Kunden per E-Mail und ruft dann window.sendinblue.page() auf.
Wenn Sie dieses Script nicht sehen, prüfen Sie zuerst den Modul-Aktivierungsschalter, API Key und Client Key. Der Hook gibt einen leeren String zurück, wenn eine dieser Voraussetzungen fehlt.
Die API-Key-Anforderung ist wichtig, obwohl der Browser Tracker den Client Key verwendet. In diesem Modul wird isActive() vom Tracker Hook gemeinsam genutzt und prüft sowohl ENABLED als auch API_KEY; danach prüft der Hook separat CLIENT_KEY. Ein Shop mit nur gespeichertem Client Key gibt daher weiterhin nichts aus, bis auch der API Key konfiguriert ist.
Required for tracker output:
ENABLED=1
API_KEY=xkeysib-...
CLIENT_KEY=Brevo automation tracker keyDie Tracker-Ausgabe ist auf das Brevo Automation Script, Page Tracking und E-Mail-Identifikation eingeloggter Kunden begrenzt. In dieser Quellversion fügt sie keine Warenkorbinhalte, Bestellsummen, Produktmetadaten oder Purchase Events hinzu.
Ja, automatische Registrierungssynchronisierung kann in der Modulkonfiguration deaktiviert werden. Der PrestaShop-Hook actionCustomerAccountAdd prüft den AUTO_SUBSCRIBE-Schalter, bevor er einen neuen Kunden an Brevo sendet. Das Modul kann daher installiert bleiben, während Registrierungssynchronisierung ausgeschaltet ist.
Die Einstellung ist in den Moduloptionen als Auto-subscribe New Customers beschriftet. Ihr Default ist bei einer frischen Installation aktiviert, aber der Hook prüft sie jedes Mal, wenn PrestaShop ein Kundenkonto erstellt. Wenn AUTO_SUBSCRIBE aus ist, beendet sich der Hook, bevor er das neue Kundenobjekt validiert oder die Brevo Contacts API aufruft.
Das Deaktivieren dieses Schalters stoppt nur die Registrierung-zu-Kontakt-Synchronisierung. Es deinstalliert das Modul nicht, entfernt keine gespeicherten API-Zugangsdaten und deaktiviert den Storefront Automation Tracker nicht automatisch. Wenn ENABLED, API_KEY und CLIENT_KEY weiterhin konfiguriert sind, kann der Tracker Hook weiterhin das Brevo-Script laden und die Page-Tracking-Funktion aufrufen.
Es meldet außerdem keine Kontakte ab und löscht keine Kontakte, die bereits in Brevo erstellt wurden. Es verhindert lediglich, dass dieses Modul künftig neue Account-Erstellungen als Kontakte sendet, solange der Schalter aus bleibt.
AUTO_SUBSCRIBE=1: new customer can be posted to Brevo contacts
AUTO_SUBSCRIBE=0: actionCustomerAccountAdd returns before syncContactToBrevo()Sie können Crisp Chat zu PrestaShop hinzufügen, indem Sie Ihre Crisp Website ID eingeben und das Modul aktivieren. Der Setup-Hinweis des Moduls erwartet die Website ID im UUID-Format, aber das Modul verlangt nur, dass das Feld nicht leer ist; es erzwingt beim Speichern oder Anzeigen nicht das exakte UUID-Muster. Praktisch sollten Sie trotzdem die echte UUID-formatierte Website ID aus Crisp einfügen, weil ein beliebiger nicht leerer Wert gespeichert und gerendert werden kann, aber möglicherweise kein funktionierendes Widget lädt.
Bei der Installation erstellt das Crisp-Modul Chat-Defaults mit ENABLED=1, leerer WEBSITE_ID, SHOW_MOBILE=1, PAGES=all, DELAY=0 und PASS_USER_DATA=1. Da die Website ID leer startet, kann das Modul erfolgreich installiert und aktiviert sein, aber das Widget bleibt inaktiv, bis diese ID gespeichert wird.
Der Required-Configuration-Hinweis erwartet UUID-Format, zum Beispiel xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Die Setup-Hilfe verweist in Crisp auf Settings > Website Settings > Setup instructions. Sobald ein nicht leerer Wert gespeichert ist, wendet die Storefront weiterhin dieselben Anzeigeregeln an, sodass das Widget Aktivierungsschalter, eine nicht leere Website ID, Mobile-Einstellung und Seitentargeting respektiert.
Wenn diese Regeln erfüllt sind, setzt das Template window.CRISP_WEBSITE_ID, pusht optional E-Mail-/Namensdaten eingeloggter Kunden und hängt https://client.crisp.chat/l.js asynchron an den Page Head.
Minimum setup:
Enable Crisp Chat = Yes
Website ID = UUID from Crisp
Show on Pages = All Pages, Product Pages, Category Pages or Checkout PagesJa, Crisp Chat kann nach PrestaShop-Seitentyp begrenzt werden. Der gemeinsame Chat Guard unterstützt alle Seiten, Produktseiten, Kategorieseiten oder Checkout-Controller, einschließlich cart, order, order-opc, orderopc und checkout, bevor er das Crisp-Script ausgibt.
Die Einstellung ist das gemeinsame Select-Feld Show on Pages. Die unterstützten gespeicherten Werte sind all, product, category und checkout. Der Moduldefault ist all, sodass eine frische Installation mit gültiger Website ID auf jeder Storefront-Seite angezeigt werden kann, sofern der Händler diese Einstellung nicht ändert.
Der Seitenabgleich verwendet PrestaShops aktuellen Controller php_self. Product-only-Modus matcht exakt product, Category-only-Modus matcht exakt category, und Checkout-Modus matcht cart, order, order-opc, orderopc oder checkout. Der Mobile-Schalter wird separat geprüft, sodass eine Seite die Seitenregel erfüllen und trotzdem auf Mobile verborgen sein kann, wenn SHOW_MOBILE aus ist.
Show on Pages = all -> every page
Show on Pages = product -> product controller only
Show on Pages = category -> category controller only
Show on Pages = checkout -> cart/order checkout controllersWenn ein unerwarteter Wert in PAGES gespeichert ist, erlaubt der Default-Zweig des gemeinsamen Guards die Seite, statt sie zu blockieren. Für vorhersagbares Targeting verwenden Sie einen der vier Werte, die das Formular anbietet.
Ja, aber nur wenn Kundendatenübergabe aktiviert ist und der Käufer eingeloggt ist. Die Einstellung ist der Schalter Pass Customer Data in der Crisp-Modulkonfiguration; setzen Sie ihn auf No, um zu verhindern, dass das Modul Identitätsdaten eingeloggter Kunden an Crisp sendet.
- Wenn
PASS_USER_DATAaus ist, gibt der gemeinsame Chat Helper leere Kundenfelder zurück. - Wenn er an ist und der Kunde eingeloggt ist, gibt der Helper die E-Mail des Kunden und Vorname plus Nachname zurück.
- Das Crisp-Template sendet diese als
user:emailunduser:nickname, bevor eshttps://client.crisp.chat/l.jslädt.
Anonyme Besucher erhalten weiterhin das Crisp-Widget, wenn Website ID und Anzeigeregeln es erlauben, aber es wird keine PrestaShop-Kunden-E-Mail oder kein Name übergeben, weil kein eingeloggtes Kundenobjekt existiert.
Bei einer frischen Installation ist PASS_USER_DATA standardmäßig 1. Händler, die diese Übergabe nicht möchten, sollten den Schalter daher bewusst deaktivieren. Der Helper stellt dem Template nur zwei Werte bereit: customer_email und customer_name. Er enthält keine Adressdaten, Telefonnummern, Warenkorbinhalte, Bestellhistorie oder PrestaShop-Kunden-ID.
Der Crisp Hook muss außerdem zuerst die normalen Anzeigeregeln des Moduls erfüllen. Wenn das Modul deaktiviert ist, die Website ID fehlt, mobile Anzeige blockiert ist oder die Seitenregel nicht passt, wird das Template nicht gerendert und es werden keine Kundendaten zu Crisp gepusht.
PASS_USER_DATA=1 + logged-in customer: email and first name + last name can be pushed
PASS_USER_DATA=0 or anonymous visitor: customer_email and customer_name stay emptyJa, das Crisp-Script kann um eine konfigurierte Anzahl von Sekunden verzögert werden. Das aktuelle PrestaShop-Hook-Template wickelt den Crisp Loader in setTimeout, wenn die Verzögerung größer als null ist; es wartet nicht auf Scrollen, Klick, Touch oder andere Nutzerinteraktion.
Die gespeicherte Einstellung ist DELAY, im gemeinsamen Formular als Fallback Delay (seconds) angezeigt. Im aktuellen Crisp-Modul übergibt der Hook diesen Wert als Integer an das Template. Wenn der Wert größer als null ist, umschließt das Template den gesamten Crisp-Setup- und Script-Append-Block mit setTimeout(..., DELAY * 1000).
Ein Wert von 0 bedeutet, dass das Template keinen Timeout Wrapper hinzufügt, sodass das Crisp Setup sofort läuft, wenn die Hook-Ausgabe geparst wird. Obwohl die gemeinsame Feldbeschreibung First User Interaction und einen Fallback erwähnt, implementiert dieses Crisp-Template nur das oben beschriebene Timer-Verhalten.
DELAY=0 -> no setTimeout wrapper; load immediately
DELAY=5 -> run Crisp setup after 5 seconds
DELAY=15 -> run Crisp setup after 15 secondsDie Verzögerung umgeht die normale Guard-Kette nicht. Das Modul muss weiterhin aktiviert sein, die Website ID muss vorhanden sein, mobile Anzeige muss für mobile Besucher erlaubt sein, und die Page-Targeting-Regel muss passen, bevor irgendein verzögertes Script ausgegeben wird.
Ja. Konfigurieren Sie ausgeschlossene Produkt-IDs in der Produktlisten-Einstellung des Moduls, zum Beispiel als kommagetrennte Liste. Der Override entfernt ausgeschlossene Produkte aus dem Paket, das an PrestaShops Cart-Rule-Berechnung übergeben wird, sodass monetäre Rabatte nur auf berechtigte Produkte berechnet werden.
Excluded product IDs: 42,108,315
Cart: #42 $100 excluded + #77 $50 eligible
Voucher: 20% off products
Before exclusion: 20% of $150 = $30 discount
After exclusion: 20% of $50 = $10 discount; #42 stays at full priceDieselbe Ausschlussliste kann mit Kategorie- und Herstellerausschlüssen kombiniert werden, weil das Modul alle drei Quellen zu einer ausgeschlossenen Produktmenge zusammenführt. Prozentuale Rabatte gelten nur für berechtigte Produkte. Feste Betragsreduktionen werden über das gefilterte Paket anteilig berechnet, während Free Shipping und Gift-Verhalten PrestaShops normalem Cart-Rule-Handling überlassen bleiben.
Die Produktlisten-Einstellung wird als PRODUCTS gespeichert. Der Resolver liest den kommagetrennten Wert, castet jeden Eintrag mit intval, entfernt leere Nullwerte und merged diese IDs dann mit IDs aus Kategorien und Herstellern. Die finale Liste wird für die aktuelle PHP-Anfrage gecacht, was wiederholte Kategorie- und Herstellerabfragen während derselben Warenkorbberechnung vermeidet.
Der CartRule Override ändert nur Regeln mit monetärer Reduktion: reduction_percent größer als null oder reduction_amount größer als null. Wenn das Modul nicht aktiviert ist, wenn die konfigurierte Ausschlussliste leer aufgelöst wird oder wenn das aktuelle Cart-Rule-Paket keine ausgeschlossenen Produkte enthält, delegiert es unverändert an die Parent-Berechnung von PrestaShop.
Da der Filter id_product prüft, gilt der Ausschluss für das Produkt als Ganzes. Wenn ein Produkt Kombinationen hat, unterscheidet die Quelle in diesem Ausschlussschritt nicht eine Attributkombination von einer anderen.
Stored setting: PRODUCTS=42,108,315
Resolver output: [42,108,315,...category matches,...manufacturer matches]
Override input: package products
Override output: package products without excluded id_product valuesJa. Ausschlüsse können als direkte Produkt-IDs, Kategorie-IDs und Hersteller-IDs eingegeben werden. Die Admin-Konfigurationsfelder sind kommagetrennte Listen, und der Resolver wandelt sie vor der Rabattberechnung in eine finale Produkt-ID-Liste um.
PRODUCTS=12,15
CATEGORIES=3,7
MANUFACTURERS=1,4Mit dieser Konfiguration sind die Produkte 12 und 15 direkt ausgeschlossen. Das Modul fragt außerdem category_product für jedes Produkt ab, das den Kategorien 3 oder 7 zugewiesen ist, und product für jedes Produkt, dessen id_manufacturer 1 oder 4 ist. Es merged diese IDs, entfernt Duplikate mit array_unique und cached das Ergebnis für die aktuelle Anfrage.
Der CartRule Override fragt das Modul dann nach dieser aufgelösten Produktliste und filtert ausgeschlossene Produkte aus dem Paket, bevor der Parent-Cart-Rule-Rabatt berechnet wird. In Händlerbegriffen: passende Produkte bleiben zum vollen Preis, während der Rest des Warenkorbs weiterhin den Gutscheinrabatt erhalten kann.
Die Kategorie-Regel basiert auf den exakten Kategorie-IDs, die in CATEGORIES gespeichert sind. Die Source Query liest Zeilen aus category_product, deren id_category in dieser Liste ist; sie läuft nicht in PHP durch den Kategoriebaum. Wenn ein Shop auch alle Unterkategorien ausschließen muss, sollten diese Child-Kategorie-IDs enthalten sein, sofern die Produkte nicht auch direkt der gelisteten Parent-Kategorie zugewiesen sind.
Die Hersteller-Regel basiert auf product.id_manufacturer. Wie bei direkten Produkten erfolgt der finale Ausschluss über id_product, sodass alle Kombinationen eines passenden Produkts als ausgeschlossen behandelt werden. Ungültige Texteingaben werden durch Integer-Casting effektiv reduziert; leere und Nullwerte tragen keine nützlichen Produkt-IDs bei.
Category source: ps_category_product.id_category IN saved category IDs
Manufacturer source: ps_product.id_manufacturer IN saved manufacturer IDs
Final discount filter: id_product not in resolved exclusion listNein, der Override zielt auf monetäre Cart-Rule-Reduktionen, nicht auf den Free-Shipping-Vorteil selbst. Wenn das Modul deaktiviert ist, keine ausgeschlossenen Produkte konfiguriert sind oder die Cart Rule keine prozentuale oder feste Betragsreduktion hat, delegiert der Override an PrestaShops normale CartRule-Berechnung.
Beispiel: Ein Gutschein gibt 10% Rabatt plus Free Shipping, und der Warenkorb enthält nur Produkte, die von diesem Modul ausgeschlossen sind. Der Produktrabatt wird 0, weil jedes Produkt von der monetären Reduktion ausgeschlossen ist. Wenn die Regel aber free_shipping hat und PrestaShop die Shipping Action berechnet, delegiert der Override an die Parent-Shipping-Berechnung, sodass der Free-Shipping-Teil weiterhin gelten kann.
Bei gemischten Warenkörben filtert das Modul ausgeschlossene Produkte heraus, bevor die Parent-Berechnung läuft. Prozentuale Rabatte gelten nur für berechtigte Produkte, und feste Betragsrabatte werden von PrestaShop gegen das gefilterte Paket berechnet.
Der Fast Path ist wichtig für reine Free-Shipping-Gutscheine. Wenn eine Cart Rule kein reduction_percent und kein reduction_amount hat, gibt der Override PrestaShops Parent-Ergebnis zurück, ohne das Paket zu filtern. Das bedeutet, ein reiner Free-Shipping-Gutschein folgt den normalen PrestaShop-Gutscheinbedingungen und wird nicht reduziert, nur weil Produkte in der Ausschlussliste stehen.
Wenn alle Produkte ausgeschlossen sind und eine Regel einen monetären Rabatt mit Free Shipping kombiniert, gibt der Override 0 für den monetären Teil zurück, sofern der aktuelle Filter nicht einer von PrestaShops Shipping-/All-Action-Filtern ist. Für diese Shipping-/All-Filter ruft er die Parent-Berechnung mit FILTER_ACTION_SHIPPING auf, was der source-level Grund ist, warum der Shipping-Vorteil verfügbar bleiben kann.
Ein praktischer Stolperpunkt: Der optionale Warenkorbhinweis ist von der Rabattmathematik getrennt. Der Notice Renderer prüft, ob Modul und Hinweis aktiviert sind, ob der Warenkorb Cart Rules hat und ob ausgeschlossene Produkte vorhanden sind. Er prüft nicht, ob die Cart Rule monetär oder free-shipping-only ist. Die Nachricht kann also weiterhin informativ erscheinen, während PrestaShop Versand normal behandelt.
Ja, das Modul kann einen Warenkorbhinweis anzeigen, wenn ausgeschlossene Produkte vorhanden sind. In PrestaShop erscheint der Hinweis nur, wenn Modul und Notice-Einstellung aktiviert sind, der Warenkorb Cart Rules hat und mindestens ein Warenkorbprodukt zur Ausschlussliste passt.
Die Notice-Funktion ist bei der Installation standardmäßig mit SHOW_NOTICE=1 aktiviert. Der standardmäßige mehrsprachige Hinweistext ist The following products are excluded from the applied discount:, und Händler können NOTICE_TEXT in den Moduleinstellungen bearbeiten. Das Modul registriert sowohl displayShoppingCart als auch displayShoppingCartFooter; der Footer-Hook bleibt als Kompatibilitätsalias für Shops erhalten, die noch die ältere Hook-Platzierung verwenden.
Der Renderer hat außerdem einen Duplicate Guard. Sobald ein Hinweis während der Anfrage gerendert wurde, verhindert $cartNoticeRendered, dass dieselbe Nachricht zweimal erscheint, falls beide Warenkorb-Hooks im Theme laufen.
Das Modul baut die Produktnamenliste aus den aktuellen Warenkorbprodukten, deren id_product in der aufgelösten Ausschlussliste erscheint. Wenn product_name nicht verfügbar ist, fällt es auf name und dann auf ein generisches Produktnummern-Label zurück. Das Template escaped sowohl den Hinweistext als auch die Produktnamen vor der Ausgabe.
Notice shown only if:
ENABLED=1
SHOW_NOTICE=1
cart has at least one cart rule
cart contains at least one resolved excluded productWenn kein Gutschein/keine Cart Rule angewendet ist, wird der Hinweis bewusst verborgen, selbst wenn ausgeschlossene Produkte im Warenkorb sind. So bleibt die Nachricht an den Moment gekoppelt, in dem ein Kunde einen Rabatt erwartet und sich fragen könnte, warum einige Artikel zum vollen Preis geblieben sind.
Das Pflichtfeld ist die HubSpot Portal ID. Der Hinweis auf die erforderliche Konfiguration bleibt aktiv, solange dieses Feld leer ist.
Das geprüfte HubSpot-Template identifiziert angemeldete Kunden per E-Mail, wenn pass-user-data aktiviert ist. Es sendet keine anonymen Besucherdaten aus PHP.
Das gemeinsame Chat-Trait unterstützt alle Seiten, Produktseiten, Kategorieseiten oder checkout-bezogene Seiten wie cart, order, order-opc, orderopc und checkout.
Nein. Der Code nutzt einen konfigurierten Timeout in Millisekunden, bevor das Widget gerendert wird. Es ist eine zeitliche Verzögerung, kein durch Interaktion ausgelöster Loader.
In den hier gelesenen Dateien ist keine automatische Regel-Engine vorhanden. Die Badge-Zuweisung wird pro Produkt in mprproductbadges gespeichert, und das Admin-Formular erfordert ein ausgewahltes Produkt.
Die Tabelle speichert id_product, badge_name, badge_color, badge_bg_color, position und active sowie die automatisch hochzahlende Badge-ID.
Die Storefront-Abfrage filtert nach Produkt und aktivem Status und sortiert die Ergebnisse anschliessend nach position ASC. Niedrigere Positionsnummern werden zuerst angezeigt.
Ja. MprProductBadgesConfig stellt einen Schalter ENABLED bereit. Wenn er ausgeschaltet ist, gibt renderBadges() einen leeren String zuruck, bevor Produktdaten gelesen werden.
Das Modul muss aktiviert sein und eine Pixel ID muss existieren. Der Validator der Pflichtkonfiguration akzeptiert Pixel IDs mit Buchstaben, Zahlen, Unterstrichen oder Bindestrichen und einer Laenge von 8 bis 128 Zeichen.
displayOrderConfirmation rendert das Browser-Purchase-Event. actionValidateOrder reiht ein serverseitiges Purchase-Event ein, wenn Conversions API konfiguriert und Purchase-Tracking aktiviert ist.
Header- und Purchase-Events erhalten eine event_id von PrestaShopConversionBuilder::buildEventId, und derselbe Wert wird nach client_dedup_id kopiert. Das Queuing von Purchase-CAPI verwendet dieselbe bestellbasierte Event ID.
Regeln koennen durch CSS-Klicks, URL-Uebereinstimmungen, Controller-/Modul-Uebereinstimmungen oder benannte DOM-Events ausgeloest werden. Der Normalizer validiert Trigger-Anforderungen, begrenzt die Selektorlaenge und bereinigt Custom-Parameter, bevor das JSON gespeichert wird.
Der Feed benotigt einen bearer token und einen Benutzernamen, wenn das Modul nicht von Social Revolution verwaltet wird. Das Modul kann X API aufrufen, um die user ID aus diesem Benutzernamen aufzulosen.
Die Konfiguration steuert Post-Text, Datum, Likes, Reposts, Antworten, Medien und Autorendetails. Der Code erstellt ausserdem Permalinks und verarbeitet von der API zuruckgegebene Medien-Erweiterungen.
Nein. Die Anforderungen unterscheiden sich. YouTube kann manuelle Video-URLs ohne API key verwenden, während Facebook, Instagram und X Plattform-Zugangsdaten brauchen, bevor sie Posts aus ihren APIs abrufen können. Jedes Modul zeigt seinen eigenen Hinweis zur erforderlichen Konfiguration.
Die Feed-Module nutzen gecachte Daten und rufen von ihrer konfigurierten Plattform/Quelle ab, wenn die Cache-Regeln es erlauben. Manche bieten außerdem Cache-Clear- oder Sync-Steuerungen, daher hängt das praktische Refresh-Verhalten von Zugangsdaten, Cache-Dauer und den Einstellungen des jeweiligen Plattformmoduls ab.
Nein. Die Layout-Optionen sind ähnlich, aber nicht identisch. Facebook und X enthalten Grid-, Slider- und Listenoptionen; Instagram und YouTube enthalten Grid-/Slider-Optionen; Pinterest und TikTok haben eigene Feed- und Post-Item-Templates.
Die einzelnen Integrationsmodule enthalten Feed-Anzeige und im Code einige Auto-Publish-Hooks oder Bereiche, aber das Pack sollte primär als Feed-Display-Integration beschrieben werden, sofern nicht die Publishing-Einrichtung eines konkreten Plattformmoduls konfiguriert und getestet ist.
Das Modul ordnet PrestaShop-Storefront-Seiten und Hooks Criteo-OneTag-Events zu, mit separaten Einstellungen für jedes Standard-Event.
| Event | Wo es feuert | Hinweise |
|---|---|---|
viewHome | Homepage aus displayHeader | Wird durch die Home-Tracking-Einstellung gesteuert. |
viewItem | Produktseite aus displayHeader | Verwendet den aktuellen Produktkontext. |
viewCategory | Kategorie-/Listing-Seite aus displayHeader | Verwendet Kategorie-/Listing-Kontext und sichtbare Produktdaten, wo verfügbar. |
viewSearchResult | Suchergebnisseite aus displayHeader | Enthält Suchkontext und passende Produktdaten, wo verfügbar. |
viewBasket | Warenkorb- oder Checkout-Seite aus displayHeader | Verwendet die aktuellen Warenkorbpositionen. |
addToCart | Front-Office-JavaScript im Header-Template | Wird aus Cart-Update- und Add-to-Cart-Interaktionen erfasst. |
trackTransaction | Bestellbestätigung aus displayOrderConfirmation | Verwendet Bestellreferenz, Währung und gekaufte Positionen. |
custom | Konfigurierte Klick-, URL-, Controller- oder DOM-Event-Regeln | Läuft nur, wenn Custom-Event-Tracking aktiviert ist und Regeln passen. |
Alle Browser-Events hängen weiterhin davon ab, dass das Modul aktiv ist, eine Criteo Partner ID konfiguriert ist, der Besucher die Tracking-/Consent-Prüfungen des Moduls besteht und der jeweilige Event-Schalter aktiviert ist.
Ja, es kann Cookie Consent respektieren, wenn RESPECT_CONSENT aktiviert ist, was der Moduldefault ist. Das Modul prüft zuerst mprcookiesrevolution, indem es das mprcr_consent-Cookie parst und nach marketing:1 sucht. Wenn dieses Cookie fehlt, fällt es auf den DEFAULT_CONSENT-Wert von mprcookiesrevolution zurück.
Wenn Cookies Revolution nicht aktiv ist, prüft es mprcookiebanner. Ein Cookie-Wert von mprcookie_consent=granted erlaubt Criteo; jeder andere vorhandene Wert blockiert es. Wenn das Banner-Cookie fehlt, verwendet das Modul den DEFAULT_CONSENT von mprcookiebanner.
Wenn kein unterstütztes MPR-Consent-Modul installiert oder aktiv ist, gibt hasMarketingConsent() allowed zurück, sodass Criteo nicht allein durch Consent blockiert wird. Für ein striktes consent-first Setup lassen Sie Respect marketing consent aktiviert und betreiben eines der unterstützten MPR-Consent-Module. Das clientseitige Consent Gate ist nur aktiviert, wenn Respect marketing consent an ist und entweder mprcookiesrevolution oder mprcookiebanner aktiv ist.
Die Consent-Prüfung ist Teil von canTrack(), das vor Header Events, Order-Confirmation-Purchase-Events und serverseitigem Purchase Queueing verwendet wird. Wenn die serverseitige Consent-Prüfung Tracking blockiert, baut das Modul daher keine normalen Browser-Events und stellt die serverseitige Conversion aus actionValidateOrder nicht in die Warteschlange.
Das Browser-Template enthält außerdem eine clientseitige Consent-Prüfung, wenn das Consent Gate aktiv ist. Es kann window.MPRCR.isGranted('marketing') aufrufen, wenn Cookies Revolution diesen Helper bereitstellt, oder dieselben Cookies mprcr_consent und mprcookie_consent direkt lesen. Wenn diese JavaScript-Prüfung false zurückgibt, stoppt es, bevor Criteo-Events in window.criteo_q gepusht werden.
RESPECT_CONSENT=0: consent check is bypassed
RESPECT_CONSENT=1 + mprcr_consent contains marketing:1: allowed
RESPECT_CONSENT=1 + mprcookie_consent=granted: allowed
RESPECT_CONSENT=1 + no supported MPR consent module: allowed by this moduleConsent ist nicht der einzige Tracking Guard. Browser-Tracking erfordert weiterhin auch ENABLED=1 und eine gültige numerische Criteo Partner ID, und Mitarbeiter-Browsing kann ausgeschlossen werden, wenn EXCLUDE_EMPLOYEES aktiviert ist.
Ja, wenn SEND_CUSTOMER_IDENTIFIERS aktiviert ist. Das Modul baut separate Criteo Customer Events neben den normalen Page- oder Purchase-Events. Es sendet in diesen Customer Events nie die Klartext-E-Mail; es lowercased und trimmt die E-Mail und hasht sie dann mit SHA-256. Die Customer ID wird ebenfalls mit einem customer:-Präfix gehasht.
[{"event":"setCustomerId","id":"sha256(customer:123)"},{"event":"setEmail","email":"sha256(alice@example.com)"}]Die obigen Werte sind Platzhalter und zeigen nur die Form. In der echten Storefront-Ausgabe enthalten die Hash-Felder 64-Zeichen-SHA-256-Hex-Strings. Die Events werden vollständig ausgelassen, wenn Kundenkennungen deaktiviert sind oder wenn kein gültiger Kunde aus aktuellem Kontext oder Bestellung geladen werden kann.
Die Einstellung ist standardmäßig deaktiviert, ein Händler muss sich also bewusst dafür entscheiden, bevor diese Events erstellt werden. Für normale Page Events verwendet das Modul den aktuellen PrestaShop-Kunden aus dem Storefront-Kontext. Für Order-Confirmation-Purchase-Events kann es den Kunden aus id_customer der Bestellung laden. In beiden Pfaden prüft die Quelle, dass ein gültiges Kundenobjekt existiert, bevor eines der Identifier Events hinzugefügt wird.
Die Browser-Templates platzieren diese Identifier Events in der Universal Queue mit setAccount und setSiteType, bevor das Page-, Basket- oder Purchase-Event in window.criteo_q gepusht wird. Das Modul sendet in diesen Browser-Customer-Events nicht den Namen, die Telefonnummer, Postadresse oder rohe PrestaShop-Kunden-ID.
Für serverseitiges Purchase Tracking kann dieselbe Opt-in-Flag außerdem einen gehashten E-Mail-Wert zur Retail-Media-Abfrage hinzufügen, wenn der Bestellkunde eine E-Mail-Adresse hat. Dieser serverseitige Pfad hängt weiterhin von den normalen Tracking Guards ab: Das Modul muss aktiv sein, Consent muss Tracking erlauben, wenn aktiviert, Purchase Tracking muss an sein, und die serverseitigen Criteo-Einstellungen müssen gültig sein.
Ja. Das Modul hat optionales serverseitiges Criteo Retail Media Purchase Tracking. Dafür muss Purchase Tracking aktiviert sein und die serverseitigen Einstellungen müssen konfiguriert sein: Criteo Partner ID, S2S_ENABLED, Region eu oder us, Desktop- und Mobile-API-Page-IDs und ein Batch Limit. Das Standard-Batch-Limit serverseitig ist 20, mit Validierung auf 1 bis 100 begrenzt.
Wenn PrestaShop actionValidateOrder auslöst, stellt der Hook eine trackTransaction-Conversion für Provider criteo_retailmedia in die Warteschlange und verarbeitet sofort einen kleinen Batch. Er prüft jedoch den Bestellstatus oder Zahlungsstatus nicht selbst. Der Queue-Pfad läuft, wenn Modultracking laufen darf, Purchase Tracking aktiviert ist, die serverseitige Konfiguration gültig ist und ein geladenes Order-Objekt vorhanden ist. Wenn Sie paid-only Semantik benötigen, muss das durch den Order-Validation-Kontext garantiert oder als explizite Statusprüfung ergänzt werden.
Eine Cron-Aufgabe namens send_criteo_retailmedia_conversions ist ebenfalls registriert, um alle 300 Sekunden eingereihte Conversions zu verarbeiten. Die Serveranfrage wird an Criteos Retail Media-Endpunkt für die konfigurierte Region gesendet, etwa d.eu.criteo.com oder d.us.criteo.com, mit Transaction ID, Item, Price, Quantity, Currency, Visitor-/Customer-Daten und Page ID. Die optionale Einstellung S2S_SEND_IP_UA steuert, ob IP- und User-Agent-Daten enthalten sind. Diese serverseitige Queue ist vom Browser-trackTransaction-Event auf der Bestellbestätigungsseite getrennt, sodass fehlgeschlagene Server-Sends wiederholt werden können, ohne von der Browser-Session des Kunden abhängig zu sein.
Die serverseitige Funktion wird mit der gemeinsamen Conversion-Queue-Tabelle und Cron-Registrierung installiert. Sie ist standardmäßig deaktiviert: S2S_ENABLED=0, S2S_REGION=eu, Desktop Page ID trackTransactionApiDesktop, Mobile Page ID trackTransactionApiMobile, S2S_SEND_IP_UA=1 und S2S_BATCH_LIMIT=20. Die Partner ID muss numerisch und 4 bis 20 Ziffern lang sein, die Region muss eu oder us sein, und Page IDs dürfen Buchstaben, Zahlen, Unterstrich, Doppelpunkt und Bindestrich enthalten.
Bei Order Validation prüft das Modul zuerst die High-Level-Tracking-Guards: Criteo muss aktiv sein, Purchase Tracking muss aktiviert sein, Consent muss Tracking erlauben, wenn der Consent Guard an ist, und die serverseitigen Einstellungen müssen die Validierung bestehen. Wenn eine dieser Prüfungen fehlschlägt, wird kein Server Event in die Warteschlange gestellt.
Die Purchase Payload wird aus Bestellpositionsdaten gebaut. Item IDs, Preise und Mengen werden für die Criteo Retail Media Query mit Pipe-Zeichen verbunden. Wenn keine Item IDs gemappt werden können, sendet das Modul einen Fallback item=None, price=0.00 und quantity=1, statt ein leeres Pflichtfeld zu senden. Der Environment-Wert wird aus dem User Agent als Desktop d, Mobile m oder Tablet t gewählt, und dieses Environment wählt die Desktop- oder Mobile Page ID.
Der Admin Controller stellt außerdem operative Werkzeuge für diese Queue bereit: Er kann Pending-/Sending-/Sent-/Failed-Zählungen anzeigen, einen API Probe senden und fehlgeschlagene Criteo-Server-Side-Events für Retry zurück auf Pending setzen.
Required server-side setup:
ENABLED=1
PARTNER_ID=12345
TRACK_PURCHASE=1
S2S_ENABLED=1
S2S_REGION=eu or us
S2S_DESKTOP_PAGE_ID=trackTransactionApiDesktop
S2S_MOBILE_PAGE_ID=trackTransactionApiMobileWenn eine user ID konfiguriert ist, ruft das Modul den Facebook Graph media endpoint mit Feldern wie caption, media_type, media_url, thumbnail_url, permalink, timestamp, like_count und comments_count auf. Ohne user ID fällt es auf den Instagram Basic Display me/media endpoint zurück.
Die konfigurierte Beitragsanzahl ist im Code auf 25 begrenzt. Die Standardkonfiguration nutzt 12 Beiträge.
Im geprüften Code wurde kein Abruf für Stories und kein Stories-Template-Pfad gefunden. Der Feed verarbeitet aktuelle Medienbeiträge, einschließlich Bilder, Video-Thumbnails und Carousel-Badges.
Der Synchronisierungsservice prüft, ob mprgalleryrevolution aktiv ist, erstellt oder verwendet eine Instagram-Galerie wieder, lädt Bildmedien herunter, erstellt Gallery Revolution-Mediendatensätze und speichert Synchronisierungsdatensätze mit Engagement-Daten.
Das Modul erstellt seine eigene Tabelle mprpsvls_view und protokolliert Produktseitenaufrufe nach Produkt, Shop und Gast. Aufrufsummen werden als eindeutige Gaste innerhalb des konfigurierten Zeitraums gezahlt.
Nein. Verkaufszahlen werden aus PrestaShop-Bestellungen und Bestelldetails berechnet, gefiltert nach gultigen Bestellungen und dem konfigurierten Zeitraum. Boost-Einstellungen konnen die angezeigte Zahl verandern, aber die Ausgangszahl stammt aus der Bestellhistorie.
Wenn die Mindestwert-Option aktiviert ist, gibt das Modul nichts zuruck, wenn alle aktivierten Zahler unter dem konfigurierten Minimum liegen. So erscheinen keine leeren oder schwach wirkenden Statistikblocke auf der Produktseite.
Das Modal ladt uber den AJAX-Controller des Moduls und kann aktuelle gultige Bestellungen fur das aktuelle Produkt anzeigen. Die Daten enthalten Kundenname, Stadt, Land, Produktname, Menge und Datum; Namensanonymisierung ist per Konfiguration verfugbar.
Das Modul verwendet mprscd_description für Kategorie, Shop und aktiven Datensatz sowie mprscd_description_lang für den mehrsprachigen Beschreibungstext.
Nicht standardmäßig. Die Konfiguration FIRST_PAGE_ONLY wird aktiviert installiert, und der Renderer gibt leere Ausgabe zurück, wenn die angeforderte Kategorieseitennummer größer als 1 ist.
In PrestaShop-Versionen, die den Symfony-Kategorieformular-Hook verwenden, fügt das Modul direkt nach dem nativen Beschreibungsfeld eine übersetzbare formatierte Textarea namens mprscd_description hinzu.
Der Injector fügt den Standard-Smarty-Hook-Aufruf {hook h='displayMprSecondCatDesc'} ein, umgeben von Modul-Marker-Kommentaren. Unsichere Pfade außerhalb von Theme-Templates werden abgelehnt, und markierte Injections können später entfernt werden.
Die Modulkonstante PLATFORMS listet facebook, instagram, x, linkedin, pinterest, tiktok und youtube. Der Connect-Controller enthaelt OAuth-Pfade fuer die Plattformen, auf denen sie implementiert sind.
Das Modul instanziiert Tracking-Services fuer Facebook, Pinterest, Microsoft Ads, Google Ads, LinkedIn, TikTok, X, Snapchat, Reddit, Taboola und Outbrain. Header-, Order-Confirmation-, Order-Validation- und Sign-up-Hooks delegieren an diese Services.
Die deklarierten Cron-Tasks verarbeiten die Post-Queue alle 60 Sekunden, aktualisieren den Feed-Cache alle 1800 Sekunden, erneuern ablaufende OAuth-Tokens alle 3600 Sekunden, sammeln Analytics taeglich um 06:00 und verarbeiten Conversion-Queues alle 300 Sekunden pro Provider.
Der Analytics-Screen filtert nach Datumsbereich und zeigt Posts, fehlgeschlagene Posts, Reichweite, Impressions, Engagement, Klicks und neueste Follower fuer jede an das Template zurueckgegebene Plattformzeile.
Wenn sie konfiguriert ist, reiht sie serverseitige Conversion-Payloads mit Event-Daten und verfugbaren Kennungen wie twclid, gehashten Kundenfeldern sowie optional IP und user agent ein und sendet danach signierte Requests an den X ads API endpoint.
Das Modul muss aktiviert sein und eine gultige Pixel ID muss gespeichert sein. Purchase Tracking erfordert ausserdem eine purchase event ID, und Conversions API benotigt bei Aktivierung eigene Zugangsdaten.
Der Code kann je nach aktivierten Schaltern und Seitenkontext PageView, ViewContent, AddToCart, InitiateCheckout, Purchase, Search, AddToWishlist, SignUp und konfigurierte benutzerdefinierte Events erstellen.
Wenn Consent-Respekt aktiviert ist, pruft der Dienst unterstutzte Consent-Cookies und clientseitige Consent-Gates. Das Front-Template kann das Laden verzogern, bis Marketing-Consent erteilt wurde.
Fügen Sie Ihre Chatra Widget ID hinzu und aktivieren Sie das Modul. Der PrestaShop Hook rendert das Chatra-Script vor dem schließenden Body-Tag, weist die ID window.ChatraID zu und lädt https://call.chatra.io/chatra.js asynchron im Storefront. Dadurch bleibt die Einrichtung an Moduleinstellungen und PrestaShop-Runtime-Verhalten gebunden.
Bei der Installation setzt das Chatra-Modul ENABLED=1, eine leere WIDGET_ID, SHOW_MOBILE=1, PAGES=all, DELAY=0 und PASS_USER_DATA=1. Das Modul kann daher installiert und aktiviert sein, gibt das Widget aber trotzdem nicht aus, bis eine nicht leere Widget ID gespeichert ist.
Die Konfigurationsseite labelt das Feld Widget ID, und die Source-Hilfe sagt, es aus Chatra unter Settings > General > Widget code einzufügen. Der Required-Config-Validator prüft nur, dass der Wert nicht leer ist; er erzwingt kein UUID-artiges Format wie das Crisp-Modul.
Vor dem Rendern prüft der gemeinsame Chat Guard, dass das Modul aktiviert ist, die erforderliche WIDGET_ID vorhanden ist, mobile Anzeige erlaubt ist, wenn der Besucher mobil ist, und die ausgewählte Page-Targeting-Regel zum aktuellen Controller passt. Wenn diese Prüfungen bestehen, setzt das Template window.ChatraID, erstellt window.ChatraSetup und hängt den Chatra Loader asynchron an.
Minimum setup:
Enable Chatra Chat = Yes
Widget ID = value copied from Chatra widget code
Show on Pages = all, product, category or checkoutWenn PASS_USER_DATA aktiviert ist und der Käufer eingeloggt ist, legt das Template außerdem die E-Mail des Kunden in ChatraSetup.clientId ab. Es sendet in diesem Template nicht den Namen, die Adresse, Warenkorbinhalte oder Bestellhistorie des Kunden.
Ja, das Chatra-Script kann um eine konfigurierte Anzahl von Sekunden verzögert werden. In PrestaShop umschließt das Template den Widget Loader mit setTimeout, wenn der Verzögerungswert größer als null ist, und lädt dann dasselbe Chatra-Script nach dieser Verzögerung.
Die gespeicherte Einstellung ist DELAY, im gemeinsamen Chat-Formular als Fallback Delay (seconds) verfügbar. Das Modul übergibt sie als Integer an das Smarty-Template. Wenn DELAY>0, umschließt das Template sowohl die Zuweisung von window.ChatraID/window.ChatraSetup als auch den Script-Append-Block mit setTimeout(..., DELAY * 1000).
Wenn DELAY=0, umschließt das Template den Loader nicht mit setTimeout, sodass Chatra sofort initialisiert wird, wenn die Hook-Ausgabe geparst wird. Das aktuelle Template implementiert kein Laden bei Scroll, Klick, Touch oder erster Interaktion; es ist ein einfacher sekundengenauer Timer.
DELAY=0 -> load immediately
DELAY=3 -> wait 3 seconds, then load Chatra
DELAY=10 -> wait 10 seconds, then load ChatraDie Delay-Einstellung beeinflusst nur das Timing, nachdem das Modul entschieden hat zu rendern. Der normale Guard gilt zuerst: Das Modul muss aktiviert sein, WIDGET_ID muss gespeichert sein, die Mobile-Einstellung muss das Gerät des Besuchers erlauben, und die Page-Targeting-Regel muss passen.
Ja, das Modul kann Chatra nach PrestaShop-Seitentyp begrenzen. Seine Konfiguration unterstützt alle Seiten, Produktseiten, Kategorieseiten und checkoutbezogene Controller wie cart, order und checkout, sodass das Widget nicht zwingend auf jeder Storefront-Seite gerendert wird.
In der Modulkonfiguration ist dies die Einstellung PAGES. Die eingebauten Optionen sind all, product, category und checkout; Checkout deckt die Warenkorb-/Order-Controller-Familie ab, die von verschiedenen PrestaShop-Versionen verwendet wird, einschließlich cart, order, order-opc, orderopc und checkout. Das Widget wird aus displayBeforeBodyClosingTag nur gerendert, wenn das Modul aktiviert ist, die erforderliche Widget ID vorhanden ist, die Mobile-Einstellung das aktuelle Gerät erlaubt und die Seitenprüfung besteht.
Es gibt eine praktische Grenze: Dies ist Seitentyp-Targeting, kein Per-URL-Rule-Builder. Wenn PAGES auf product, category oder checkout gesetzt ist, fallen andere Controller-Namen nicht als erlaubt durch; sie bestehen die ausgewählte Seitentyp-Prüfung nicht. Der permissive Fallback gilt für eine leere/all-Einstellung oder einen unerwarteten PAGES-Konfigurationswert. Wenn Sie eine einzelne Landing Page oder einen sehr spezifischen Controller ein- oder ausschließen müssen, erfordert das eine Code-Level-Regel oder eine fortgeschrittenere Targeting-Schicht in Chatra selbst.
Ja, aber im gerenderten Chatra-Snippet dieses Moduls wird nur die E-Mail des eingeloggten Kunden an Chatra übergeben. Der gemeinsame Chat Helper kann sowohl E-Mail als auch Name sammeln, wenn PASS_USER_DATA aktiviert ist und der Kunde eingeloggt ist, aber das Chatra-Template schreibt nur die E-Mail als window.ChatraSetup.clientId.
Um diese Datenübergabe zu deaktivieren, schalten Sie den Pass Customer Data-Schalter in den Chatra-Moduleinstellungen aus. Dann gibt der Helper leere Kundenwerte zurück, und das Template gibt kein clientId aus. Dieses Chatra-Template druckt keinen Kundennamen, keine Bestelldaten, Adressdaten oder Gruppendaten.
Chat Triggers, Chat Routing, Operator Assignment und Widget Design bleiben in Chatra selbst konfiguriert. Das PrestaShop-Modul ist hauptsächlich dafür zuständig, https://call.chatra.io/chatra.js mit Widget ID und optionaler Verzögerung zu laden.
Der Standard-Installationswert für PASS_USER_DATA ist aktiviert, aber die Daten sind weiterhin bedingt: Das Kundenobjekt muss existieren, der Besucher muss eingeloggt sein, und der Storefront-Hook muss rendern dürfen. Gastbesucher erhalten von diesem Modul keine Kundenkennung. Auch die Delay-Einstellung wird lokal behandelt: Wenn DELAY größer als null ist, wickelt das Template den Chatra Loader in setTimeout; wenn er null ist, läuft der Loader sofort.
Für Privacy Reviews ist die wichtige Unterscheidung, dass der Helper einen vollständigen Namen zurückgeben kann, dieses spezifische Chatra-Template ihn aber nicht ausgibt. Der einzige kundenabgeleitete Wert, den das Template ausgibt, ist das E-Mail-basierte clientId, und nur wenn PASS_USER_DATA aktiviert bleibt.
Ja. Der Resolver pruft das Entity-Selector-Targeting fur das Produkt und wendet ausserdem Kundengruppe, Zeitplan, Land und Lagerbestand-Sichtbarkeitsregeln an, bevor ein Tab fur die Anzeige vorbereitet wird.
Der Code unterstutzt die Inhaltstypen html, markdown, entities, mixed, contact und files. Entity- und Mixed-Tabs konnen ausgewahlte Produkte und CMS-Seiten rendern, wahrend Datei-Tabs validierte Downloads bereitstellen.
reCAPTCHA fur das Kontaktformular ist konfigurierbar. Wenn es aktiviert ist und Schlussel konfiguriert sind, pruft der Handler das ubermittelte Token bei Google, bevor die Anfrage gespeichert oder die Benachrichtigungs-E-Mail gesendet wird.
Nein. Die Aktion getTabContent ladt den angeforderten Tab, pruft, dass er aktiv ist, und verifiziert uber den Resolver, dass er zum aktuellen Produkt passt, bevor HTML zuruckgegeben wird.
Das Hook-Template hat Zweige fuer facebook, twitter, pinterest, linkedin, whatsapp und email. Gerendert werden nur Netzwerke, die in der konfigurierten Liste vorhanden sind.
Das Modul rendert sowohl in displayProductMetaShare als auch in displayProductAdditionalInfo, aber displayProductAdditionalInfo gibt leer zurueck, nachdem productShareRendered gesetzt wurde.
Nein. Das Template verwendet einfache Anchor-Links zu den Share-URLs der jeweiligen Plattform und Inline-SVG-Icons. Im Template gibt es keine Social-Scripts von Drittanbietern.
Die Render-Methode loest Produkt-URL und Produktname auf, URL-encodiert sie fuer Share-Endpunkte und weist Smarty auch Rohwerte zu. Wenn keine Produkt-URL oder ID aufgeloest werden kann, verwendet sie die aktuelle Seiten-URL.
Das Modul muss aktiviert sein, und die counter ID darf nur Ziffern enthalten. Der Tracking-Dienst pruft ausserdem Mitarbeiterausschluss und Consent-Regeln, bevor normales Tracking lauft.
Je nach Konfiguration und Seitenkontext bereitet es Tracking-Daten fur Page View, Product View, Category View, Add to Cart, Add to Wishlist, Checkout Start, Suche, Registrierung und Purchase vor.
Wenn Measurement Protocol aktiviert ist, counter ID und token konfiguriert sind und eine gultige Yandex client ID verfugbar ist, kann der Order-Validation-hook einen Purchase-Payload einreihen und einen kleinen Batch verarbeiten.
Der Dienst liest MPR Cookies Revolution Consent und MPR Cookie Banner Consent-Daten, wenn diese Module vorhanden sind. Wenn Consent-Respekt deaktiviert ist, ist Tracking ohne diese Prufungen erlaubt.
EU VAT Checker validiert VAT-Nummern über VIES auf Adressformularen und Frontend-AJAX-Anfragen. In PrestaShop lädt es Validierung auf Order-, Address-, Cart- und Checkout-Seiten und prüft gespeicherte Adressen zusätzlich über Add- und Update-Hooks.
Im Storefront registriert das Modul sein Validierungs-JavaScript nur für die Checkout-/Address-Seitenfamilie: order, address, cart und checkout. Das Script beobachtet VAT-Felder, normalisiert eingegebene Nummern durch Entfernen von Leerzeichen, Punkten und Bindestrichen, schreibt den Wert in Großbuchstaben und ruft dann den AJAX Controller des Moduls auf. Es debounced Live-Prüfungen und validiert erneut bei Blur. Beim Formular-Submit löst das Script bei Bedarf eine AJAX-Validierung aus, verhindert das Absenden aber nicht und wartet nicht auf diese AJAX-Antwort.
Blocking ist serverseitig implementiert, die Prüfung ist also nicht nur kosmetisch. Auf PrestaShop 1.7+ hookt das Modul in die Adressformularvalidierung und fügt Fehler zum VAT-Feld hinzu, wenn die VAT-Nummer ungültig ist. Auf älteren Flows hat es außerdem einen Legacy Account/Address Submit Hook, der Controller-Fehler hinzufügt. Wenn der VAT-Nummer ein Länderpräfix fehlt, kann der Code auf das ausgewählte Adressland zurückfallen, wenn dieses Land in der EU ist. Ergebnisse werden in mpreuvatchecker_cache gecacht, wobei CACHE_HOURS standardmäßig 24 ist, sodass wiederholte Prüfungen nicht immer VIES treffen.
VIES-Ausfälle werden über ON_UNAVAILABLE gesteuert. Der Default ist accept, während reject das Speichern der Adresse blockieren kann und skip vermeidet, das VIES-Ergebnis zu erzwingen. Diese Einstellung ist wichtig, weil die EU-VIES-Verfügbarkeit außerhalb der Kontrolle Ihres Shops liegt.
Ja, es kann eine VAT-Nummer verlangen, wenn das Firmenfeld ausgefüllt ist. In PrestaShop wird dies von der Einstellung REQUIRED_COMPANY gesteuert, und das Modul fügt einen Formularfehler hinzu, bevor die Adresse akzeptiert wird, wenn das VAT-Feld leer ist.
Der Standardwert für REQUIRED_COMPANY ist aus, Händler müssen ihn also bewusst aktivieren. Sobald aktiviert, ist die Regel bedingt: Das Modul prüft, ob das Firmenfeld einen Wert hat, und verlangt nur dann das VAT-Feld. Ein Privatkunde, der Firma leer lässt, wird nicht zur Eingabe von VAT gezwungen, nur weil das Modul installiert ist.
Das Modul stellt dieselbe Regel dem Front-JavaScript über requiredCompany bereit, sodass Käufer die Anforderung vor dem Absenden sehen können. Die finale Entscheidung erfolgt weiterhin in PHP während der Adressvalidierung, wo das Modul den Fehler zum PrestaShop-Adressformular hinzufügt, wenn Firma gefüllt ist und VAT fehlt. Das ist sicherer als ein reines Theme-required-Attribut, das umgangen oder von einem älteren Checkout-Template übersehen werden könnte.
Ja, es kann Kunden mit gültigen EU-VAT-Nummern einer ausgewählten Kundengruppe hinzufügen. In PrestaShop erfordert dies GROUP_ENABLED und eine gültige GROUP_ID; steuerbefreite Preise hängen weiterhin von Ihrer PrestaShop-Gruppen- und Steuerregel-Einrichtung ab.
Die Zuweisung passiert nach Address Add/Update Processing, nicht nur während der Live-AJAX-Vorschau. Wenn eine gespeicherte Adresse eine parsebare EU-VAT-Nummer hat und VIES valid zurückgibt, ruft das Modul seinen Group Helper auf und fügt den Kunden der konfigurierten Gruppe hinzu. Wenn der Kunde später einen leeren oder ungültigen VAT-Zustand speichert, kann das Modul diese konfigurierte Gruppe wieder entfernen, wenn Gruppenhandling aktiviert ist.
Es gibt zwei wichtige operative Details. Erstens verwendet das Modul PrestaShop-Kundengruppen; es schreibt nicht selbst alle Steuerregeln um und garantiert keine VAT-befreiten Preise. Sie müssen die Zielgruppe und Steuerregeln weiterhin korrekt in PrestaShop konfigurieren. Zweitens vermeidet der Code beim Entfernen der Gruppe, den Kunden ohne Gruppe zu lassen, indem er bei Bedarf auf die Standardkundengruppe des Shops zurückfällt.
Sie können festlegen, ob VIES-Ausfälle die Validierung akzeptieren, ablehnen oder überspringen. In PrestaShop steuert die Einstellung ON_UNAVAILABLE das Ergebnis im Adressformular, während CACHE_HOURS wiederholte Live-Abfragen durch Cache-Nutzung reduziert.
Paid fügt eine Bedingung hinzu, bei der total_paid_real >= total_paid_tax_incl gilt. Unpaid fügt total_paid_real < total_paid_tax_incl hinzu. All fügt keine Zahlungsbedingung hinzu.
Nein. Die verfügbare Spalte products_list verwendet eine Subquery mit GROUP_CONCAT, um Produktnamen und Mengen in einem zusammenfassenden Feld der Bestellzeile zu platzieren.
Nein. processExport() gibt false zurück, wenn keine ausgewählten Spalten gepostet werden, und der Controller zeigt einen Keine-Daten-Fehler an, statt eine leere Datei zu streamen.
Die Installation speichert LIMIT als 10000. Das Formular erlaubt ebenfalls einen Wert für maximale Zeilen, und die Abfrage lässt das SQL-LIMIT nur weg, wenn das gepostete Limit null oder kleiner ist.
Das Modul muss aktiviert sein und eine gultige Quora Pixel ID haben. Tracking kann weiterhin durch Mitarbeiterausschluss oder durch die Consent-Sperre blockiert werden, wenn consent-bewusstes Laden aktiviert ist.
Die Konfiguration enthalt Schalter fur PageVisit, ViewContent, AddToCart, AddToWishlist, InitiateCheckout, Search, Purchase und SignUp sowie eine validierte JSON-Konfiguration fur Custom Events.
Der serverseitige Pfad erfordert den CAPI-Schalter, eine numerische Ad Account ID und ein Access Token. Ereignisse werden in eine Warteschlange gelegt, im Laufe der Zeit bereinigt und in konfigurierten Batches an Quoras Conversion-Endpunkt gesendet.
Nur wenn Advanced Matching aktiviert ist und der Besucher ein eingeloggter Kunde mit E-Mail-Adresse ist. In diesem Fall hasht das Modul die E-Mail, bevor sie an die Quora-Pixel-Initialisierung ubergeben wird.
Ja, wenn manuelle Video-URLs konfiguriert sind. Der API-freie manuelle Modus extrahiert Video-IDs und nutzt YouTube oEmbed sowie Thumbnail-URLs, bietet aber nicht dieselbe Anreicherung um Dauer, Aufrufe und Datum wie der API-Modus.
Ein API key ist erforderlich, wenn das Modul Videos automatisch aus einer playlist ID oder channel ID uber YouTube Data API abrufen soll.
Der Video-ID-Extractor verarbeitet standardmassige watch-URLs, youtu.be-Kurzlinks, embed-URLs und shorts-URLs.
Der Embed-Modus offnet eine iframe-Lightbox aus dem Storefront-Feed. Der New-Tab-Modus schickt den Besucher stattdessen zur YouTube-Videoseite.
Fügen Sie die Microsoft Clarity Project ID hinzu, aktivieren Sie Tracking, speichern Sie die Modulkonfiguration und verifizieren Sie anschließend das Storefront-Script. Das Project-ID-Feld akzeptiert nur 5 bis 64 Buchstaben oder Zahlen. Fügen Sie also nur die Project ID ein, nicht das gesamte Clarity-Script-Tag. Die eigene Hilfe des Moduls verweist Händler auf clarity.microsoft.com > Settings > Overview.
- Öffnen Sie in Microsoft Clarity das Projekt und kopieren Sie die Project ID aus den Projekteinstellungen.
- Öffnen Sie in PrestaShop die Einstellungen des Microsoft Clarity-Moduls.
- Fügen Sie die Project ID in Project ID ein und schalten Sie Enable Microsoft Clarity an.
- Speichern. Der Admin Controller lehnt das Aktivieren von Clarity ohne Project ID ab und lehnt IDs außerhalb des alphanumerischen 5-64-Formats ab.
- Öffnen Sie eine Storefront-Seite und prüfen Sie den Seitenquelltext oder das Browser-Netzwerkpanel auf
https://www.clarity.ms/tag/PROJECT_ID.
Der Header Hook lädt das Clarity-Script nur, wenn Tracking laufen darf: Das Modul muss aktiv sein, Mitarbeiter-Browsing kann ausgeschlossen werden, und Marketing Consent muss vorhanden sein, wenn das Modul so konfiguriert ist, dass es ein MPR-Consent-Modul respektiert.
Standardmäßig installiert sich das Modul mit deaktiviertem Tracking und leerer Project ID, aber die meisten Event-Schalter sind aktiviert, sobald Tracking aktiv ist. Der Code kann Page View, Product View, Add-to-cart, Wishlist, Checkout Start, Search, Purchase und Signup Events senden, plus Page Tags wie Währung und Seitentyp. Purchase Tracking wird auf Order Confirmation ausgegeben und enthält aus der Bestellung abgeleitete Tags; Signup wird während der Kontoerstellung als kurzlebiger Cookie-Flag gespeichert und beim nächsten passenden Header-Render gesendet.
Consent Handling ist an die MPR-Cookie-Module gebunden, wenn diese installiert sind. Mit aktiviertem RESPECT_CONSENT wird Cookies Revolution über die Marketing-Kategorie mprcr_consent geprüft, und Lightweight Cookie Banner über mprcookie_consent. Wenn kein Modul aktiv ist, behandelt das Modul Consent als verfügbar. Custom Events werden ebenfalls unterstützt, aber ihre JSON-Regeln werden validiert: Event-Namen, Selectors, URL-/Controller-Trigger und Tag-Payloads müssen in die Limits des Moduls passen, bevor der Admin Controller sie akzeptiert.
Ja, es kann PrestaShop-E-Commerce-Events und Tags an Clarity senden. Das Modul umfasst Page View, Produktansicht, Warenkorb, Checkout-Start, Kauf, Suche, Wunschliste und Registrierung; Kauf-Tags können Wert, Währung, Artikelanzahl und Transaktionsreferenz enthalten. So bleibt die Einrichtung an Moduleinstellungen und das Verhalten im PrestaShop-Frontend gebunden.
Ja, das Modul kann Einwilligung vor dem Tracking berücksichtigen. Es prüft vorhandene Zustimmung aus mprcookiesrevolution oder mprcookiebanner, kann ein Clarity-Consent-Signal senden und clientseitiges Tracking im PrestaShop-Shop bis zur Marketing-Einwilligung blockieren. So bleibt die Einrichtung an Moduleinstellungen und das Verhalten im PrestaShop-Frontend gebunden.
Ja, eigene Clarity-Events können über JSON-Regeln konfiguriert werden. Das Modul unterstützt Klick-Selektoren, URL-contains-Regeln, Controller- oder Modul-Matching und DOM-Events, bereinigt Eventnamen und Tags und sendet sie aus dem PrestaShop-Frontend. So bleibt die Einrichtung an Moduleinstellungen und das Verhalten im PrestaShop-Frontend gebunden.
Ja, der Override-Controller kann eine H1-Ueberschreibung mehreren Kategorien zuweisen. Im PrestaShop-Admin speichert der Entity Selector die ausgewaehlten Kategorie-IDs; direkte Bearbeitungen an einer Kategorie loesen diese Kategorie vom gemeinsamen Override, wenn ihr H1-Wert geaendert wird.
Sie koennen die vom Modul unterstuetzten Platzhalter in eigenen H1-Werten nutzen. Der Resolver ersetzt Kategorie-Name, Produktanzahl, Seitennummer, Seitenlabel, Shopname und Sprache und normalisiert danach die finale PrestaShop-H1 gemaess den Sicherheitseinstellungen des Moduls.
Ja, H1-Werte werden pro Sprache gespeichert und koennen bei entsprechender Konfiguration zurueckfallen. Wenn die aktuelle PrestaShop-Sprache keinen H1-Wert hat, kann der Resolver die Standardsprache und danach jede verfuegbare Sprache pruefen, bevor kein Override zurueckgegeben wird.
Nein, es ist kein globales Umbenennungswerkzeug fuer Kategorien. Das Modul aendert den Inhalt der Kategorieseite und, wenn aktiviert, das Label der Produktsuche, benennt aber das PrestaShop-Category-Objekt nicht ueberall in Navigation, URLs oder anderen Katalogkontexten um.
Ja, die Zahlungsoptionen enthalten Apple Pay, Google Pay, Link, Karten, PayPal und weitere Stripe-Methoden. In PrestaShop wird die Wallet-Verfügbarkeit geprüft und zwischengespeichert, damit nicht unterstützte Wallets je nach Browser oder Gerät ausgeblendet werden können.
Das Modul prüft, ob die aktiven Stripe-Schlüssel zum ausgewählten Test- oder Live-Modus passen. In PrestaShop erwartet der Testmodus die Präfixe pk_test und sk_test, der Live-Modus pk_live und sk_live, bevor Checkout als konfiguriert gilt.
Ja, es liefert Carrier-Auswahlen mit Namen, Lieferhinweisen, Preisen, Auswahlstatus und kompatiblen Zahlungsoptionen. In PrestaShop speichert der AJAX-Checkout den gewählten Carrier in Warenkorb und Cookie und filtert Zahlungsarten nach Carrier-Kompatibilität.
Stripe Express Checkout kann Buttons auf Produkt-, Warenkorb-, Listen- und eigenen Express-Checkout-Hooks anzeigen. In PrestaShop registriert das Modul Produktaktions-, Zusatzinfo-, Produktbutton-, Warenkorb- und Custom-Hooks, deren Einstellungen die Ausgabeorte steuern.
Bei actionOrderStatusPostUpdate sucht das Modul das Team, das dem neuen nativen Bestellstatus zugeordnet ist. Wenn ein Team vorhanden ist und Statusänderungsbenachrichtigungen aktiviert sind, informiert es dieses Team über die Bewegung der Bestellung.
Der Attachment-Helper erlaubt gängige Bildformate, PDF, Office- und OpenDocument-Dateien, CSV, Text, RTF, PowerPoint-Dateien und EML. Er prüft außerdem den MIME-Typ und lehnt Dateien ab, die nicht zu den erlaubten Typregeln passen.
Ja. MprWfEmployeePreference speichert notification_muted, und der AJAX-Controller hat eine Aktion setNotificationMute für den aktuellen Mitarbeiter.
Ja. Das Panel weist Smarty die neueste Workflow-Historienversion und ein Flag ENABLE_CONCURRENCY_CHECK zu, und der AJAX-Panel-Endpunkt gibt ebenfalls die aktuelle Version zurück.
Es benotigt den Zendesk Chat account key. Das Front-Template hangt diesen Schlussel an die https://v2.zopim.com/ widget script URL an.
Ja. Wenn die Ubergabe von Kundendaten aktiviert ist und Kundendaten verfugbar sind, ruft das Template den Zendesk live chat setter mit Namen und E-Mail des Kunden auf.
Ja. Das gemeinsame Chat-Trait pruft vor dem Rendern den konfigurierten Seitenumfang und unterstutzt alle Seiten, Produktseiten, Kategorieseiten und checkout-bezogene Controller.
Wenn die konfigurierte Verzogerung grosser als null ist, umschliesst das Template den Zendesk-Script-Injektionscode mit einem JavaScript-Timeout fur diese Anzahl von Millisekunden.
Das PrestaShop SEO Audit untersucht Ihren tatsächlichen Shop und Ihre echten Search-Console-Daten, anstatt eine generische Crawler-Checkliste abzuarbeiten, die ignoriert, wie PrestaShop aufgebaut ist. Ziel ist es, die Probleme zu finden, die organischen Traffic auf einem PrestaShop-Katalog wirklich bewegen, und zu verstehen, warum sie in Ihrem konkreten Shop, Theme und Modul-Stack auftreten. Folgendes prüft ein Spezialist:
Indexierbarkeit
Wir bestätigen, dass die Seiten, die ranken sollen, tatsächlich auch ranken können. Das bedeutet, Ihre robots.txt-Regeln, noindex-Direktiven und die Korrektheit der canonical-Angaben über Produkte, Kategorien, CMS-Seiten und paginierte Listen hinweg zu prüfen. PrestaShop ist berüchtigt dafür, crawlbare URL-Varianten zu erzeugen — Filter der Schichtnavigation, Sortierparameter, ?search_query= und Attributkombinationen —, die das Crawl-Budget aufblähen oder Signale zersplittern können. Wir vergleichen das, was Sie übermitteln, mit dem, was Google tatsächlich indexiert hat, sodass Lücken zwischen Übermittelt und Indexiert klar zutage treten.
Strukturierte Daten
Wir validieren Ihr Product-, Offer-, BreadcrumbList- und Organization-JSON-LD gegen die realen Anforderungen für Rich Results, nicht nur mit einem Syntaxprüfer. Fehlende Preis-, Verfügbarkeits- oder Bewertungsfelder verhindern häufig, dass Produktergebnisse erweiterte Einträge anzeigen, und PrestaShop-Themes unterscheiden sich stark darin, wie vollständig sie dieses Markup ausgeben.
Interne Verlinkung
Wir kartieren verwaiste Seiten, schwache Querverlinkung zwischen Kategorien und wie sich Linkkraft durch den Katalog bewegt. Eine starke interne Verlinkung ist einer der am besten steuerbaren Ranking-Hebel bei einem großen Shop und wird häufig vernachlässigt, wenn Kategorien organisch wachsen.
XML-Sitemaps & hreflang
Wir prüfen Ihre XML-Sitemaps auf Lücken zwischen Übermittelt und Indexiert und verifizieren bei mehrsprachigen Shops, dass die hreflang-Signale reziprok und korrekt sind, sodass die richtige Sprach- und Länderversion ausgeliefert wird.
Content-Lücken
Schließlich identifizieren wir dünne Seiten, Duplikate und verpasste Keyword-Intention — Stellen, an denen die Seite zwar existiert, aber nicht erfüllt, was Suchende wirklich wollen.
Weil ein Spezialist Ihren Shop und Ihre Search-Console-Property direkt prüft, spiegelt jeder Befund Ihre tatsächliche Situation wider und nicht eine theoretische Best-Practice-Liste.
Am Ende des SEO Audits erhalten Sie einen klaren, priorisierten Maßnahmenplan in verständlicher Sprache — keine 200-zeilige Tabellen-Datenflut, die Sie rätseln lässt, wo Sie anfangen sollen. Das Ergebnis ist darauf ausgelegt, umgesetzt zu werden, egal ob Sie die Arbeit selbst erledigen oder sie an einen Entwickler übergeben.
Für jedes Problem legen wir drei Dinge ausdrücklich dar:
- Was falsch ist — das konkrete Problem, beschrieben in Begriffen, die Sie in Ihrem eigenen Shop wiedererkennen.
- Warum es für den Traffic wichtig ist — der praktische Grund, weshalb dies Indexierung, Crawling oder Rankings beeinflusst, sodass Sie die Tragweite verstehen und nicht nur ein Etikett erhalten.
- Was genau zuerst zu beheben ist — der konkrete nächste Schritt, keine vage Empfehlung.
Die Befunde sind nach Wirkung gegenüber Aufwand geordnet. Das bedeutet, die wirkungsstarken Punkte mit geringem Aufwand sind klar von den größeren strukturellen Arbeiten getrennt, sodass Sie die schnellen Erfolge sofort umsetzen und den Rest mit Zuversicht einplanen können. Diese Reihenfolge ist bewusst gewählt: Bei einem stark frequentierten Shop ist es oft wertvoller, die Reihenfolge zu kennen, als die bloße Liste der Probleme.
Wo es wirklich hilft, benennen wir das konkrete PrestaShop-Element — die genaue Konfigurationseinstellung, den Controller oder das Template, das Aufmerksamkeit braucht. Wenn beispielsweise ein Canonical-Problem darauf zurückgeht, wie ein Kategorie-Controller seine URLs aufbaut, oder eine Lücke bei strukturierten Daten in einem bestimmten .tpl liegt, weisen wir direkt darauf hin. Diese Präzision lässt Ihren Entwickler direkt zur Behebung übergehen, anstatt die Diagnose neu zu erarbeiten.
Der Plan ist so geschrieben, dass er für sich allein steht. Sie bleiben nie mit Befunden zurück, die Sie nicht interpretieren können, und es besteht keine Verpflichtung, jemanden weiter hinzuzuziehen, um ihn zu verstehen — es ist ein Dokument, das Sie direkt umsetzen können.
Der Einstieg ist auf Ihrer Seite bewusst leichtgewichtig. Wir beginnen mit einem kurzen Scoping-Schritt, um die Dinge zu klären, die die gesamte Prüfung prägen: Ihre Ziele, Ihre Zielmärkte und die Sprachen, die Ihr Shop bedient. Das ist wichtig, weil sich SEO-Prioritäten erheblich unterscheiden, etwa zwischen einem einsprachigen Inlandsshop und einem mehrsprachigen Katalog, bei dem hreflang und Länder-Targeting zentrale Anliegen sind.
Sobald das vereinbart ist, führen wir die Prüfung gegen Ihren Live-Shop und Ihre Search-Console-Daten durch. Am echten Shop zu arbeiten — statt an einer Staging-Kopie oder einem synthetischen Crawl — ist das, was dafür sorgt, dass die Befunde Ihre tatsächliche Indexierung, echte URLs und echte Suchanfragendaten widerspiegeln.
Wie lange es dauert
Die meisten Audits sind schnell abgeschlossen, sobald der Zugang verfügbar ist. Wir bestätigen den voraussichtlichen Zeitrahmen mit Ihnen nach dem kurzen Scoping-Schritt, denn die realistische Bearbeitungszeit hängt von der Größe Ihres Katalogs und dem von Ihnen gewählten Umfang ab — ein fokussierter einsprachiger Shop lässt sich schneller prüfen als ein großer mehrsprachiger.
Was Sie vorbereiten müssen
Nichts Technisches. Sie müssen keine Berichte zusammenstellen, keine Daten exportieren und keine Einstellungen im Voraus ändern. Für den Start helfen zwei Dinge:
- Lesezugriff auf Ihr Back Office — genug, um Konfiguration, Module und URL-Struktur einzusehen, ohne etwas zu verändern.
- Zugriff auf Ihre Search-Console-Property — damit wir sehen, wie Google die Website derzeit crawlt und indexiert.
Der Lesezugriff ist bewusst gewählt: Er lässt einen Spezialisten genau sehen, wie Ihr Shop eingerichtet ist, während Sie die volle Kontrolle behalten, ohne das Risiko, dass während der Prüfung Änderungen vorgenommen werden. Wenn Sie den Zugang lieber enger fassen möchten, können wir uns daran halten.
Das SEO Audit selbst ist eine Diagnose. Das Ergebnis ist ein priorisierter Plan, den Sie — oder jeder kompetente Entwickler — eigenständig umsetzen können. Wir schreiben ihn bewusst so, dass er für sich allein steht: Jedes Problem erklärt, was falsch ist, warum es wichtig ist und was zu tun ist, mit der konkret benannten PrestaShop-Einstellung, dem Controller oder dem Template, wo das hilft. Sie sind nicht darauf angewiesen, dass wir die Ergebnisse für Sie interpretieren.
Allerdings würden viele Shop-Betreiber die Korrekturen lieber nicht selbst umsetzen, und wenn Sie möchten, dass wir die Arbeit übernehmen, können wir das. Es gibt zwei grundlegende Wege, und wir wählen denjenigen, der wirklich zum Problem passt:
- Unsere eigenen PrestaShop-Module — wenn ein wiederkehrendes oder strukturelles Problem am besten durch ein richtiges Werkzeug gelöst wird (etwa die Verwaltung von Canonicals, Sitemaps, strukturierten Daten oder Weiterleitungen im großen Maßstab) und ein Modul die richtige langfristige Antwort ist, statt einer einmaligen Anpassung.
- Praktische Behebungsarbeit — direkte Änderungen an Templates, Konfiguration oder Code, wo eine gezielte Korrektur gefragt ist.
Jede Umsetzungsarbeit wird separat angeboten, sobald das Audit die Prioritäten klargemacht hat. Wir halten das für die ehrliche Reihenfolge: Sie sehen zuerst die Diagnose, verstehen, was tatsächlich getan werden muss, und entscheiden erst dann, ob Sie die Arbeit an uns zurückgeben oder anderswohin vergeben.
Es besteht keine Verpflichtung, etwas weiteres zu kaufen. Das Audit ist für sich allein vollständig und nützlich — der Plan gehört Ihnen und Sie setzen ihn um, wie Sie möchten. Die Umsetzung anzubieten ist ein Komfort für Betreiber, die ein einziges Team von Anfang bis Ende möchten, keine Bedingung dafür, dass das Audit lohnenswert ist.
Das PrestaShop Security Audit ist eine praxisnahe Prüfung Ihres tatsächlichen Shops, fokussiert auf die Bedrohungen, die PrestaShop-Shops in der Praxis wirklich treffen, statt auf eine generische Compliance-Checkliste. Die Beliebtheit von PrestaShop macht es zu einem häufigen Ziel, und die Angriffsmuster sind recht spezifisch — daher konzentriert sich das Audit dort, wo das reale Risiko liegt. Ein Spezialist prüft die folgenden Bereiche:
Schwachstellen-Scan
Wir prüfen auf einen veralteten Core, veraltete Module und eine veraltete PHP-Version mit bekannten CVEs. Veraltete Drittanbieter-Module sind eines der häufigsten Einfallstore bei PrestaShop, denn ein einziges vernachlässigtes Modul kann den gesamten Shop gefährden, selbst wenn der Core aktuell ist.
Malware- & Magecart-Erkennung
Wir suchen nach eingeschleusten Skimmern, Web-Shells und manipulierten Dateien — den kartenstehlenden Injektionen im Magecart-Stil und den Backdoors, die auf Checkout- und Zahlungsabläufe abzielen. Das ist ein Muster, mit dem wir regelmäßig zu tun haben, daher gründet die Prüfung darauf, wie diese Kompromittierungen im Dateisystem und in der Datenbank tatsächlich aussehen, nicht nur auf Signaturabgleich.
Injection-Exposition
Wir bewerten die SQL-Injection- und Smarty-Template- (RCE-) Angriffsflächen in Modulen und Overrides — die Stellen, an denen nicht vertrauenswürdige Eingaben eine Abfrage oder ein Template erreichen und in Remote Code Execution verwandelt werden können.
Admin-Härtung & 2FA
Wir prüfen den Back-Office-Zugang: Mitarbeiterkonten, Login-Schutz und Zwei-Faktor-Authentifizierung. Schwache oder geteilte Admin-Zugangsdaten und ein ungeschütztes Back Office sind eine wiederkehrende Ursache von Sicherheitsverletzungen, die nichts mit Code-Schwachstellen zu tun haben.
Backup & Wiederherstellung
Schließlich prüfen wir, ob Sie nach einem Vorfall tatsächlich sauber wiederherstellen könnten — ob Backups existieren, aktuell und wirklich verwendbar sind. Ein Backup, das Sie nie getestet haben, ist ein Risiko, kein Sicherheitsnetz.
Weil ein Spezialist Ihren tatsächlichen Shop inspiziert, spiegeln die Befunde Ihre reale Gefährdung und Konfiguration wider und nicht eine theoretische Liste dessen, was schiefgehen könnte.
Für ein vollständiges Bild bitten wir um Lesezugriff auf das Back Office und, wo möglich, um Lesezugriff auf Dateien und Logs. Diese Kombination genügt, um den Shop gründlich zu inspizieren — Modulversionen, Konfiguration, das Dateisystem und die Zugriffsmuster in Ihren Logs —, ohne etwas zu verändern. Gerade Logs sind oft der Ort, an dem Anzeichen einer aktiven Kompromittierung oder von Sondierungsangriffen auftauchen, daher verbessert ein Lesezugriff darauf wesentlich, was das Audit sehen kann.
Was die Sicherheit betrifft, ist der entscheidende Punkt einfach: Wir verändern Ihren Shop während eines Audits niemals. Die gesamte Prüfung ist beobachtend. Während wir hinschauen, wird nichts gepatcht, gelöscht oder umkonfiguriert, was bedeutet, dass kein Risiko besteht, dass das Audit selbst Ihren Shop beschädigt oder Käufer stört.
Arbeiten in einem Umfang, mit dem Sie sich wohlfühlen
Der Zugang lässt sich nach Ihrem Komfortniveau gestalten. Wenn Sie keinen Datei- oder Log-Zugriff gewähren möchten, können wir in einem engeren Umfang arbeiten — zum Beispiel ein externer Scan kombiniert mit einer geführten Back-Office-Prüfung, bei der Sie an den Steuerelementen bleiben und wir vorgeben, was zu prüfen ist. Das Audit ist auch so wertvoll; ein tieferer Zugang lässt es nur mehr sehen.
Wenn wir eine aktive Kompromittierung finden
Wenn die Prüfung eine aktive Kompromittierung aufdeckt, sagen wir es Ihnen sofort — wir warten nicht bis zum Ende, um einen Bericht zu liefern. Wir skizzieren dann zunächst sichere Eindämmungsschritte, damit die Priorität darin besteht, den Schaden zu begrenzen und Kunden- und Zahlungsdaten zu schützen, statt eine gemächliche Prüfung eines Shops fortzusetzen, der aktiv ausgenutzt wird. Einen Vorfall ruhig und in der richtigen Reihenfolge zu handhaben, ist ein Grund, warum das Audit standardmäßig nur lesend ist: Wir möchten die Situation vollständig verstehen, bevor irgendeine Änderung vorgenommen wird.
Aus dem Security Audit erhalten Sie einen priorisierten Behebungsplan in verständlicher Sprache. Für jedes Problem legen wir drei Dinge klar dar:
- Was exponiert ist — die konkrete Schwachstelle, so beschrieben, dass Sie sie in Ihrem eigenen Shop wiedererkennen.
- Wie schwerwiegend es ist — eine klare Schweregrad-Bewertung, sodass ein kleiner Härtungsvorschlag nie mit einem echten Notfall verwechselt wird.
- Was genau zuerst zu beheben ist — der konkrete nächste Schritt, mit praktischen Details statt einer vagen Warnung.
Kritische Probleme — alles aktiv Ausnutzbare — werden ganz oben mit konkreten Schritten gekennzeichnet, sodass die gefährlichsten Probleme unmöglich zu übersehen sind und keine Mehrdeutigkeit darüber besteht, wo zu beginnen ist. Diese Reihenfolge ist wichtig: Bei der Sicherheit ist die Reihenfolge, in der Sie handeln, oft der Unterschied zwischen einem eingedämmten Problem und einem schweren Vorfall.
Härtung für die Zukunft, nicht nur ein einmaliger Patch
Über die Behebung dessen hinaus, was heute falsch ist, erhalten Sie auch praktische Härtungsempfehlungen, die darauf abzielen, den Shop künftig widerstandsfähiger zu machen. Diese decken typischerweise ab:
- Zwei-Faktor-Authentifizierung für Back-Office-Konten.
- Admin-Lockdown — einzuschränken, wer das Back Office erreichen kann und wie.
- Backup-Richtlinie — sicherzustellen, dass Sie aktuelle, getestete, wirklich wiederherstellbare Backups haben.
Die Absicht ist, dass der Shop als dauerhafte Haltung sicherer wird, nicht bloß einmal gepatcht und dann zurück in dieselbe Gefährdung treiben gelassen. Der Plan ist so geschrieben, dass Sie oder Ihr Entwickler direkt danach handeln können, wobei die dringenden Punkte unverkennbar von den längerfristigen Verbesserungen getrennt sind.
Das Security Audit liefert die Diagnose und den Plan — eine klare, nach Schweregrad geordnete Darstellung dessen, was exponiert ist und was dagegen zu tun ist. Dieses Ergebnis steht für sich allein: Sie oder jeder Entwickler, dem Sie vertrauen, können direkt danach handeln.
Wenn Sie möchten, dass die Arbeit erledigt und nicht nur dokumentiert wird, können wir die praktische Behebung als separates, abgegrenztes Arbeitspaket durchführen. Je nachdem, was das Audit findet, umfasst das typischerweise:
- Eine Infektion bereinigen — eingeschleuste Skimmer, Web-Shells und manipulierte Dateien entfernen und nachverfolgen, wie der Angreifer hereinkam, damit die Tür tatsächlich geschlossen wird.
- Module patchen — verwundbare Module, den Core oder Overrides mit bekannten Problemen aktualisieren oder reparieren.
- Den Admin härten — Back-Office-Zugang, Mitarbeiterkonten und Login-Schutz absichern.
Die Behebung vom Audit getrennt zu halten, ist bewusst. Das Audit ist beobachtend und nur lesend, sodass die Diagnose nie von der Versuchung gefärbt wird, mitten in der Prüfung mit Änderungen zu beginnen; die Behebung wird dann gegen klare, vereinbarte Prioritäten abgegrenzt.
Wenn eine aktive Kompromittierung vorliegt
Bei einer aktiven Kompromittierung priorisieren wir zuerst die Eindämmung. Vor jeder umfassenderen Bereinigung oder jedem Patchen besteht das unmittelbare Anliegen darin, den Schaden zu begrenzen und Kunden- und Zahlungsdaten zu schützen. Erst wenn die Situation eingedämmt ist, läuft der Rest der Behebung in einer durchdachten Reihenfolge ab. Es besteht keine Verpflichtung, den Behebungsweg zu gehen — aber wenn Sie ein einziges Team möchten, das das Problem von der Diagnose bis zur Lösung durchzieht, steht diese Option zur Verfügung.
Das PrestaShop Performance Audit misst Ihren tatsächlichen Shop unter realistischen Bedingungen, nicht einen einzelnen synthetischen Wert, der isoliert betrachtet wird. Eine einmalige Laborzahl sagt sehr wenig darüber aus, wie sich der Shop für echte Käufer und für Googlebot verhält; das Audit ist darauf ausgelegt, die echten Engpässe zu finden. Ein Spezialist prüft die folgenden Schichten:
PHP-Profiling
Wir profilieren das Backend, um langsame Hooks, Module und Codepfade zu finden, die die Server-Antwortzeit aufblähen. Bei PrestaShop ist ein einzelnes schweres Modul, das in jede Seite eingehängt ist — oder eine teure Operation, die bei der Kategorie- und Produktanzeige läuft —, eine sehr häufige Ursache für eine träge Time To First Byte, und das Profiling ist es, was sie genau lokalisiert, statt zu raten.
Datenbank
Wir suchen nach langsamen und N+1-Abfragen, fehlenden Indizes und schweren Joins. Mit wachsenden Katalogen und Bestellhistorien können Abfragen, die zum Start in Ordnung waren, still zum dominanten Kostenfaktor einer Seite werden, und die Lösung ist oft ein präziser Index statt einer breiten Änderung.
Caching & CCC
Wir prüfen Ihren Caching-Stack durchgehend: Smarty-Kompilierung, Redis, Full-Page-Cache und die Combine-Compress-Cache- (CCC-) Einstellungen. Falsch konfiguriertes Caching ist einer der wirkungsstärksten Performance-Bereiche bei PrestaShop und wird häufig in einem suboptimalen Zustand belassen.
Core Web Vitals
Wir bewerten LCP, CLS und INP so, wie Google sie tatsächlich misst — die Feldmetriken, die in das Page Experience einfließen —, statt nur eine Laboraufnahme. Largest Contentful Paint, Cumulative Layout Shift und Interaction to Next Paint weisen jeweils auf unterschiedliche zugrunde liegende Probleme hin, von renderblockierenden Assets bis zu instabilen Layouts.
Bild-Pipeline & CDN
Schließlich prüfen wir die Bild-Pipeline und die Edge-Auslieferung: moderne Formate (WebP/AVIF), Lazy-Loading und ob ein CDN Assets effizient vom Edge ausliefert. Bilder sind in der Regel der schwerste Teil einer Storefront-Seite, daher liegen hier oft die größten realen Gewinne.
Weil wir Ihren tatsächlichen Shop über diese Schichten hinweg messen, spiegeln die Befunde wider, wie Ihr Shop wirklich performt, und nicht einen theoretischen Benchmark.
Aus dem Performance Audit erhalten Sie einen priorisierten Plan in verständlicher Sprache. Für jeden Befund legen wir drei Dinge klar dar:
- Was den Shop langsam macht — der konkrete Engpass, in greifbaren Begriffen.
- Warum es wichtig ist — die praktische Auswirkung auf die reale Ladezeit, die Server-Antwort und das Erlebnis für Käufer und Crawler.
- Was genau zuerst zu beheben ist — der nächste Schritt, keine vage Empfehlung.
Die Befunde sind nach Wirkung gegenüber Aufwand geordnet, sodass die Änderungen, die für den geringsten Aufwand am meisten Geschwindigkeit bringen, klar von größeren Optimierungsbrocken getrennt sind. Bei einem Live-Shop ist diese Reihenfolge oft der wertvollste Teil des Berichts: Sie sagt Ihnen nicht nur, was falsch ist, sondern auch die Reihenfolge, in der Sie es angehen sollten.
Wir benennen den Übeltäter
Wo ein konkretes Modul, eine Abfrage oder eine Einstellung verantwortlich ist, benennen wir es. Wenn der Hook eines bestimmten Moduls die Antwortzeit aufbläht, einer bestimmten Abfrage ein Index fehlt oder eine CCC- oder Caching-Einstellung falsch konfiguriert ist, weisen wir direkt darauf hin. Diese Präzision bedeutet, dass Sie — oder Ihr Entwickler — an der genauen Ursache ansetzen können, statt zu raten und Dinge wahllos zu ändern, was bei einer komplexen PrestaShop-Installation leicht alles verschlimmern kann.
Echte Geschwindigkeit, kein Vanity-Score
Das Ziel ist durchgängig reale Geschwindigkeit für Käufer und für Googlebot — schnellere Seiten, die für Besucher wirklich zügiger laden und effizienter gecrawlt werden —, statt einfach ein Lighthouse-Abzeichen grün zu färben. Ein Shop kann in einem Labortest gut abschneiden und sich im Feld trotzdem langsam anfühlen; das Audit ist darauf ausgelegt, das Erlebnis zu verbessern, das wirklich zählt, mit einem Bericht, der so strukturiert ist, dass der Plan direkt umgesetzt werden kann.
Nein. Das Audit ist so konzipiert, dass es Ihre Käufer nicht stört. Profiling und Messung werden so durchgeführt, dass der Live-Shop stabil bleibt — typischerweise nur lesende Inspektion kombiniert mit kontrollierter Messung, statt etwas, das die Website auf Kosten echter Besucher belastet oder unter Stress setzt.
Die beiden Prinzipien, die es sicher halten, sind unkompliziert:
- Die Inspektion ist beobachtend. Konfiguration zu prüfen, Codepfade zu profilieren und Abfragen zu untersuchen sind nur lesende Tätigkeiten — wir schauen uns an, wie sich der Shop verhält, ändern aber nicht, wie er läuft.
- Die Messung ist kontrolliert. Jede aktive Messung erfolgt bewusst und maßvoll, nicht als unkontrollierter Lasttest, der während der Geschäftszeiten auf Ihren Produktiv-Checkout gerichtet ist.
Sie behalten die Kontrolle über Änderungen
Entscheidend ist: Wir spielen während des Audits keine Änderungen ein. Das Audit erstellt einen Plan; es berührt nicht Ihre Live-Konfiguration, Ihre Templates oder Ihren Code. Das bedeutet, Sie behalten die volle Kontrolle darüber, was umgesetzt wird und wann — nichts wird ohne Ihre Entscheidung an Ihrem Shop verändert. Sie können die Empfehlungen prüfen, auswählen, welche Sie anwenden, und sie bei Bedarf für ein ruhiges Zeitfenster einplanen. Messung und Umsetzung auf diese Weise zu trennen, ist genau das, was es erlaubt, das Audit sicher gegen einen Live-Shop im laufenden Betrieb durchzuführen.
Der Einstieg ist auf Ihrer Seite leichtgewichtig. Wir beginnen mit einem kurzen Scope, um Ihre schlimmsten Schmerzpunkte zu klären, denn Performance-Arbeit ist weitaus wirkungsvoller, wenn sie auf die Seiten und Momente ausgerichtet ist, die wirklich wehtun. Typische Bereiche, die wir festlegen, sind:
- Langsame Kategorieseiten — oft dort, wo Schichtnavigation, Filter und große Produktraster zusammenkommen und die Antwortzeit nach unten ziehen.
- Checkout — wo Langsamkeit direkt Umsatz kostet und kaufbereite Kunden frustriert.
- Admin / Back Office — träge Bestellabwicklung und Katalogverwaltung, die die Zeit Ihres Teams auffressen.
- Verhalten bei Spitzenlast — wie sich der Shop bei Traffic-Spitzen, Verkaufsaktionen oder Kampagnen hält.
Zu wissen, welcher dieser Punkte für Sie am wichtigsten ist, bestimmt, wohin der Messaufwand fließt, sodass die Befunde Ihre realen Probleme adressieren und nicht ein generisches Profil.
Sobald der Umfang vereinbart ist, messen wir gegen Ihren Live-Shop — den echten Shop unter realen Bedingungen, was der einzige Weg ist, damit die Zahlen widerspiegeln, was Ihre Käufer und Googlebot tatsächlich erleben.
Wie lange es dauert
Die meisten Audits sind schnell abgeschlossen, sobald der Zugang verfügbar ist. Wir bestätigen den voraussichtlichen Zeitrahmen mit Ihnen nach dem kurzen Scoping-Schritt, da die realistische Bearbeitungszeit von der Größe Ihres Shops und dem Umfang dessen abhängt, was wir messen. Das Scoping-Gespräch ist kurz und der natürliche Punkt, an dem wir sowohl den Fokus als auch den Zeitplan vereinbaren.
Das PrestaShop UI/UX Audit betrachtet Ihren tatsächlichen Live-Shop so, wie ihn ein echter Käufer erlebt — nicht als generische Checkliste, die auf einen Screenshot angewendet wird. Wir gehen die gesamte Reise durch, vom Aufruf einer Kategorieseite bis zum Abschluss einer Bestellung, und kennzeichnen jeden Punkt, an dem die Oberfläche Reibung, Verwirrung oder Zögern hinzufügt. Die Prüfung ist um die Bereiche herum aufgebaut, die für einen PrestaShop-Katalog am wichtigsten sind:
- Usability — Navigation, On-Site-Suche und die Klarheit Ihrer Kategorie- und Produktseiten. Wir prüfen, ob Menüs widerspiegeln, wie Kunden tatsächlich einkaufen, ob die Suche nützliche Ergebnisse liefert und ob Produktseiten die Fragen beantworten, die ein Käufer hat, bevor er sich festlegt.
- Mobil — das Erlebnis auf den Geräten, die der Großteil Ihres Traffics tatsächlich nutzt. Wir testen Tap-Ziele, das Verhalten eines klebenden In-den-Warenkorb-Buttons, das Laden von Bildern und die Bedienbarkeit von Formularen auf kleineren Bildschirmen, wo die meisten PrestaShop-Themes leise zusammenbrechen.
- Produkt- & Checkout-Ablauf — die genauen Momente, in denen Käufer zögern, verwirrt werden oder abspringen. PrestaShops Ein-Seiten- und mehrstufige Checkouts haben jeweils bekannte Abbruchfallen: erzwungene Kontoerstellung, unklare Versandkosten, überraschende Gebühren und verwirrende Kombinations-/Attributauswahlen.
- Barrierefreiheit — EAA-/WCAG-Konformität, die von EU-Shops zunehmend erwartet wird. Barrierefreiheitsprobleme sind zugleich Usability-Probleme, daher überschneidet sich dies stark mit der Conversion.
- Vertrauenssignale — Bewertungen, Garantien und die Klarheit Ihrer Liefer- und Rückgabeinformationen. Fehlende oder vergrabene Vertrauensinhalte sind eine häufige, aufwandsarme Ursache für entgangene Verkäufe.
Warum es wichtig ist
Die meisten PrestaShop-Conversion-Probleme sind keine theme-tiefen Designfehler — es sind kleine, behebbare Reibungspunkte, die sich über Tausende von Sitzungen aufaddieren. Eine Child-Theme-Anpassung, ein umgeordneter Checkout-Schritt oder eine klarere Liefernachricht können eine Barriere beseitigen, die still Bestellungen gekostet hat.
Dieses Audit ist für Shop-Betreiber, die vermuten, dass ihr Traffic anständig ist, ihre Conversion aber nicht, und die eine ehrliche Einschätzung aus Käufersicht möchten statt eines Redesign-Pitches. Wir verwenden Ihren echten Katalog, Ihr echtes Theme und Ihre echten Kundenpfade, sodass die Befunde direkt auf Ihren Shop zutreffen.
Sie erhalten einen priorisierten Plan in verständlicher Sprache, der genau bestimmt, wo Käufer zögern oder abspringen, warum es passiert und was genau zuerst zu ändern ist. Er ist zum Umsetzen geschrieben — kein Design-Essay und keine Liste subjektiver Meinungen über Farben und Schriften.
Was im Ergebnis enthalten ist
- Konkrete, PrestaShop-spezifische Empfehlungen — Theme-Einstellungen, Seitenstruktur, Checkout-Schritte, Modulkonfiguration und Content-Platzierung. Wo die Korrektur in einem bestimmten Theme-Template, einem Konfigurationsbildschirm oder einer Kategorieeinstellung liegt, sagen wir es, sodass Ihr Entwickler (oder unserer) ohne Rätselraten handeln kann.
- Die Begründung hinter jedem Problem — was der Käufer erlebt, warum es Zögern oder Abbruch verursacht und wie eine bessere Version aussieht. Das “Warum” zu verstehen bedeutet, dass Ihr Team dasselbe Denken auf künftige Änderungen anwenden kann.
- Eine klare Rangfolge — Empfehlungen sind so geordnet, dass Sie mit den wirkungsstärksten Korrekturen beginnen und sich nach unten arbeiten können, statt Aufwand in kosmetische Änderungen zu stecken, die nichts bewegen.
Warum es wichtig ist
Eine lange, ungeordnete Liste von “Dingen, die Sie verbessern könnten” bleibt meist ungenutzt. Indem wir uns auf die Änderungen konzentrieren, die die Conversion heben und Barrierefreiheitspflichten erfüllen — und sie so ordnen, dass die größten Erfolge zuerst kommen —, ist der Plan etwas, das Sie wirklich umsetzen können, in Reihenfolge, mit begrenzter Zeit und begrenztem Budget. Die Empfehlungen sind auf die PrestaShop-Art zugeschnitten: Child-Theme-Overrides, native Konfiguration und gut gewählte Module statt fragiler Hacks.
Er eignet sich für Betreiber, die einen klaren nächsten Schritt möchten statt eines vagen Gefühls, dass “die Website besser sein könnte”. Sie schließen mit einer Roadmap konkreter, vertretbarer Änderungen ab und einem Gespür dafür, welche diese Woche und welche dieses Quartal anzugehen sind.
Ja — Barrierefreiheit ist ein fester Bestandteil des UI/UX Audits, kein optionales Extra. Der European Accessibility Act (EAA) gilt für viele Online-Shops, die an EU-Verbraucher verkaufen, und ihn zu erfüllen wird zunehmend erwartet statt optional zu sein. Wir prüfen Ihren Shop gegen die relevanten WCAG-Kriterien und geben Ihnen ein klares, ehrliches Bild davon, wo Sie aktuell stehen.
Was wir prüfen
- Tastaturnavigation — ob ein Käufer sich allein per Tastatur durch Menüs, Filter, Produktoptionen und Checkout bewegen kann, ohne sich festzufahren oder den Überblick zu verlieren.
- Kontrast — Text und interaktive Elemente gegen ihren Hintergrund, sodass Inhalte für sehbehinderte Nutzer und bei schlechtem Licht lesbar sind.
- Beschriftungen — Formularfelder, Buttons und Bedienelemente, die korrekt benannt sind, sodass assistive Technologie sie ansagen kann. PrestaShop-Checkout- und Kontaktformulare sind hier ein häufiger Schwachpunkt.
- Fokus-Reihenfolge — ein logischer, sichtbarer Fokuspfad, sodass Tastatur- und Screenreader-Nutzer der Seite in einer sinnvollen Reihenfolge folgen.
- Formulare — Fehlermeldungen, Kennzeichnung von Pflichtfeldern und Eingabeklarheit, besonders durch Registrierung und Checkout.
Warum es wichtig ist
Sie erhalten einen klaren Überblick darüber, wo Sie stehen, und die praktischen Korrekturen, die Compliance unterstützen. Entscheidend ist, dass die meisten dieser Korrekturen auch die Usability für alle verbessern: klarere Beschriftungen, besserer Kontrast und eine sinnvolle Fokus-Reihenfolge verringern die Reibung für alle Käufer, nicht nur für die, die assistive Technologie nutzen. In PrestaShop sind viele davon über Child-Theme-Template- und CSS-Änderungen adressierbar statt über Core-Eingriffe, was sie über Updates hinweg sicher wartbar hält.
Dies eignet sich gut für EU-orientierte Shops, die ihre Gefährdung verstehen und methodisch darauf reagieren möchten. Wir geben Ihnen eine ehrliche Einschätzung der Lücken und die praktischen Schritte, die Compliance unterstützen — ohne zu überzeichnen, was ein einzelnes Audit zertifizieren kann.
Das PrestaShop Hosting & Infrastructure Audit bewertet Ihr Hosting gegen reale Shop-Last — wie sich Ihr Shop unter tatsächlichem Traffic und Admin-Aktivität verhält —, statt gegen die Datenblatt-Versprechen eines Hosting-Tarifs. Ein auf dem Papier “schneller” Server kann immer noch langsame Seiten liefern, sobald ein voller PrestaShop-Katalog, Module und Back-Office-Aufgaben darauf laufen. Wir untersuchen die Schichten, die tatsächlich Geschwindigkeit, Stabilität und Resilienz bestimmen:
- PHP-Version & Server-Ressourcen — CPU, Arbeitsspeicher und Limits gegenüber Ihrem Traffic. Wir prüfen, ob Ihre PHP-Version aktuell und unterstützt ist und ob Speicherlimits, Ausführungszeit und Worker-Kapazität zur Last passen, die Ihr Shop wirklich sieht.
- Cache-Schichten — OPcache, Redis, Full-Page-Cache und wie sie konfiguriert sind. Falsch konfiguriertes oder fehlendes Caching ist eine der häufigsten Ursachen langsamer PrestaShop-Seiten, und wir verifizieren, dass jede Schicht vorhanden ist und ihre Aufgabe erfüllt.
- CDN & Edge — Auslieferung, Cache-Trefferraten und Origin-Schutz. Wir prüfen, ob statische Assets und Seiten vom Edge ausgeliefert werden, wie oft der Cache tatsächlich getroffen wird und ob Ihr Origin abgeschirmt ist.
- TLS / HTTP — Zertifikat, HTTP/2-3 und Security-Header. Veraltete Protokolle und fehlende Header kosten sowohl Performance als auch Sicherheit.
- Backups, Failover & Uptime — ob Sie einen Ausfall oder ein fehlerhaftes Deployment überstehen könnten. Wir bewerten, ob Backups existieren, aktuell und tatsächlich wiederherstellbar sind, und was passiert, wenn etwas ausfällt.
Warum es wichtig ist
Hosting liegt unter allem anderen: Keine noch so umfangreiche Frontend-Optimierung rettet einen Shop auf einem unterdimensionierten oder schlecht konfigurierten Server. Gerade PrestaShop reagiert empfindlich auf PHP-Konfiguration, Caching und Datenbank-Performance, daher zeigen sich kleine Infrastrukturlücken als langsame Kategorieseiten, träges Admin und entgangene Verkäufe bei Traffic-Spitzen. Dieses Audit ist für Betreiber, die vermuten, dass ihr Host Teil des Problems ist — oder die schlicht ehrlich wissen möchten, ob ihr aktuelles Setup tragen kann, wohin sich der Shop entwickelt.
Sie erhalten einen priorisierten Plan in verständlicher Sprache, um Ihren Shop schneller, sicherer und widerstandsfähiger zu machen — mit klarer Anleitung, was auf Hosting-Ebene zu ändern ist und, ebenso wichtig, was sich tatsächlich lohnt. Er ist so geschrieben, dass ein nicht-technischer Betreiber die Abwägungen verstehen und ein technisches Team danach handeln kann.
Was im Ergebnis enthalten ist
- Konkrete, geordnete Maßnahmen — von Konfigurationskorrekturen (PHP-Einstellungen, Cache-Schichten, Header) bis zu größeren strukturellen Änderungen, geordnet so, dass die wirkungsstärksten Punkte mit dem besten Preis-Leistungs-Verhältnis zuerst kommen.
- Ehrliche Kosteneinordnung — wir trennen die Änderungen, die sich selbst bezahlt machen, von den Nice-to-haves, sodass Sie nicht in Infrastruktur überinvestieren, die Ihr Shop noch nicht braucht.
- Ein klares Urteil über Ihren aktuellen Host — wenn Ihr Hosting Sie wirklich ausbremst, sagen wir es deutlich und erklären, wie ein besseres Setup für Ihre Shop-Größe aussieht, statt Sie raten zu lassen.
Warum es wichtig ist
Infrastrukturentscheidungen sind in beide Richtungen leicht falsch zu treffen: Kapazität bezahlen, die Sie nie nutzen, oder sich auf einem Host durchschleppen, der jeden geschäftigen Tag drosselt. Der Plan ist darauf ausgelegt, das aufzulösen — konkret, geordnet und auf Ihren tatsächlichen Traffic und Ihre Katalogtiefe abgestimmt. Weil er in verständlicher Sprache mit beigefügter Begründung formuliert ist, können Sie sichere Entscheidungen darüber treffen, wo Sie investieren und wo Sie es gut sein lassen.
Er eignet sich für Shop-Betreiber, die Klarheit wollen, bevor sie Budget binden — sei es das Tuning des Hosts, den sie haben, oder zu verstehen, worauf bei einem besseren zu achten ist. Sie schließen mit einer vertretbaren Roadmap ab statt mit einem Verkaufspitch.
Das Audit ist bewusst anbieterneutral. Unsere Aufgabe ist es, Ihnen ehrlich zu sagen, ob Ihr aktuelles Hosting zu Ihrem Traffic passt und wo es zu kurz greift — nicht, Sie zu einem bestimmten Anbieter zu lenken. Sie werden nie dazu gedrängt, den Host zu wechseln, um das Audit zu “bestehen”, und hinter den Empfehlungen steckt keine versteckte Vermittlungsabsicht.
Wie es funktioniert
- Wir bewerten zuerst, was Sie haben — das Audit misst Ihr bestehendes Setup gegen Ihren realen Traffic und Ihre Shop-Größe, sodass der Ausgangspunkt immer lautet “passt dieser Host zu Ihnen”, nicht “welchen Host sollen wir Ihnen verkaufen”.
- Wenn eine Migration wirklich gerechtfertigt ist, erklären wir warum — wir legen die konkreten Gründe dar, weshalb Ihr aktuelles Hosting zu kurz greift, und worauf bei einer besseren Lösung zu achten ist, sodass Sie Optionen sachlich bewerten können.
- Der Umzug ist separate, abgegrenzte Arbeit — wenn Sie sich für eine Migration entscheiden, können wir sie als eigenes, klar definiertes Engagement durchführen. Sie wird nie in das Audit eingebündelt oder als dessen Bedingung verwendet.
Warum es wichtig ist
PrestaShop-Migrationen bergen echtes Risiko — Diskrepanzen bei PHP- und Datenbankversionen, gebrochene Modulabhängigkeiten, Cache- und URL-Konfiguration und Ausfallzeiten, wenn der Cutover nicht sorgfältig geplant ist. Genau deshalb muss die Empfehlung umzuziehen (oder nicht umzuziehen) ehrlich und unabhängig von jedem Verkaufsmotiv sein. Ein anbieterneutrales Audit bedeutet, dass Sie dem Urteil vertrauen können: Wenn Bleiben die richtige Entscheidung ist, sagen wir es; wenn ein Umzug gerechtfertigt ist, verstehen Sie genau warum und was eine sichere Migration umfasst.
Dies eignet sich für Betreiber, die eine klare Antwort über ihr Hosting wollen, ohne den üblichen Druck zu wechseln. Sie erhalten Klarheit darüber, ob Ihr Host für seinen Zweck geeignet ist, und die volle Kontrolle darüber, was Sie als Nächstes tun, wenn überhaupt.
Dies ist die technische Seite von Feeds und Tracking — bewusst getrennt von der Kampagnenverwaltung abgegrenzt. Das Audit prüft, ob die Daten, die in Google Merchant Center, GA4 und Google Ads fließen, vollständig, korrekt und vertrauenswürdig sind, denn alles Nachgelagerte (kostenlose Einträge, Shopping-Anzeigen, Leistungsberichte) hängt davon ab, dass diese Grundlage solide ist. Wir untersuchen:
- Qualität des Merchant-Feeds — erforderliche Attribute, Titel, GTINs, Ablehnungen und Richtlinienprobleme. Wir prüfen, dass Produkte die Attribute tragen, die Google erwartet, dass Titel so strukturiert sind, dass sie zur Suchweise der Menschen passen, und dass Ablehnungen oder Richtlinien-Flags nicht still einen Teil Ihres Katalogs unterdrücken.
- GA4-/Ads-Tracking — Auslösen von Conversions, Deduplizierung und ob Ihren Zahlen zu trauen ist. Wir verifizieren, dass Conversions tatsächlich auslösen, dass sie nicht doppelt gezählt werden und dass die Zahlen, auf denen Sie Entscheidungen aufbauen, die Realität widerspiegeln.
- Product-/Offer-Schema — strukturierte Daten, die kostenlose Einträge und Rich Results stützen. Korrektes
Product- undOffer-Markup hilft Ihrem Katalog, sich für kostenlose Shopping-Einträge und Rich Results in der Suche zu qualifizieren. - Qualität der Produktdaten — die Katalogdaten, die sowohl Ihren Feed als auch Ihr On-Site-SEO speisen. Dieselben PrestaShop-Produktdaten treiben den Feed und die Storefront an, sodass sie zu bereinigen beides zugleich verbessert.
Warum es wichtig ist
Feed- und Tracking-Probleme sind heimtückisch, weil sie im Alltag unsichtbar sind: Eine fehlende GTIN, ein fehlerhafter Titel oder ein Conversion-Tag, das zweimal auslöst, wirft keinen Fehler — es verzerrt nur still Ihre Daten und unterdrückt die Reichweite. In PrestaShop werden Feeds typischerweise von einem Modul erzeugt, das Katalogfelder auf Googles Attribute abbildet, und kleine Zuordnungslücken vervielfachen sich über Tausende von Produkten. Dieses Audit findet diese Lücken, bevor sie Sie Sichtbarkeit kosten oder Ihre Kampagnenentscheidungen in die Irre führen. Es ist für Betreiber, die Shopping betreiben (oder zu betreiben planen) und Zuversicht möchten, dass die zugrunde liegenden Daten stimmen.
Sie erhalten einen priorisierten Plan in verständlicher Sprache, um genau das zu beheben, was Ihren Feed und Ihr Tracking blockiert — Ablehnungen, fehlende Attribute, defekte oder doppelt gezählte Conversions —, geordnet so, dass Sie umsatzwirksame Probleme zuerst angehen. Er ist darauf ausgelegt, der Reihe nach umgesetzt zu werden, kein Rohexport jeder Warnung, die Google ausgibt.
Was im Ergebnis enthalten ist
- Konkrete, geordnete Korrekturen — jedes Problem wird in verständlicher Sprache beschrieben, mit dem, was zu ändern ist und wo, geordnet nach Wirkung, sodass Ablehnungen und defekte Conversions (die Dinge, die Sie tatsächlich Reichweite kosten oder Ihre Zahlen verzerren) zuerst kommen.
- PrestaShop-spezifische Anleitung — weil der Feed aus Ihrem Katalog erzeugt wird, liegen viele Korrekturen in Produktdaten, Attributzuordnung oder Modulkonfiguration; wir weisen darauf hin, wo das Problem entsteht, sodass es an der Quelle behoben wird, nicht pro Produkt geflickt.
- Tracking-Korrekturen — klare Richtung zu Conversion-Auslösung und Deduplizierung, sodass den Daten, die GA4 und Ads speisen, wieder zu trauen ist.
Warum es wichtig ist
Tracking- und Feed-Probleme verzerren still jede Kampagnenentscheidung — Sie bieten, budgetieren und optimieren gegen Zahlen, die falsch sind, und das über bezahlten und kostenlosen Shopping-Traffic hinweg. Diese richtig hinzubekommen zahlt sich daher breit aus: sauberere Conversion-Daten bedeuten besser fundierte Entscheidungen überall, und ein gesünderer Feed bedeutet, dass mehr Ihres Katalogs tatsächlich anzeigeberechtigt ist. Weil dieselben Katalogdaten auch Ihr On-Site-SEO speisen, verbessert es mehr als nur den Feed, sie an der Quelle zu korrigieren.
Dies eignet sich für Betreiber, die das Gefühl haben, dass ihre Shopping-Leistung oder ihr Reporting “nicht aufgeht”, und die Grundlage korrigiert haben möchten, bevor sie mehr für Kampagnen ausgeben. Sie schließen mit einer klaren, geordneten Liste von Korrekturen ab, die umsatzwirksame Probleme zuerst anvisiert.
Dieses Audit ist auf die technische Grundlage abgegrenzt — Feed-Gesundheit, Tracking-Genauigkeit und Schema —, nicht auf das tägliche Kampagnen- oder Gebotsmanagement. Wir halten die beiden bewusst getrennt, damit jedes die richtige Art von Aufmerksamkeit erhält: Das Audit stellt sicher, dass Ihre Daten korrekt sind, was genau das ist, was jede Kampagnenarbeit wirksam macht.
Wo die Grenze liegt
- Im Umfang: Feed-Ablehnungen und fehlende Attribute diagnostizieren, Conversion-Tracking und Deduplizierung verifizieren und
Product-/Offer-strukturierte Daten prüfen — die Verrohrung, auf die sich jede Kampagne verlässt. - Nicht im Umfang: laufendes Gebotsmanagement, Budgetzuteilung, Kampagnenstruktur und die tägliche Optimierung von Live-Shopping- oder Search-Kampagnen.
Warum es wichtig ist
Kampagnenmanagement auf einer kaputten Grundlage verschwendet Budget: Wenn Conversions falsch getrackt werden oder die Hälfte Ihres Katalogs abgelehnt ist, optimiert selbst erfahrenes Gebotsmanagement gegen falsche Signale. Die Grundlage zuerst richtig hinzubekommen, ist das, was Kampagnenarbeit wirksam macht — es ist der Unterschied zwischen der Optimierung realer Leistung und dem Jagen von Rauschen. Viele Shop-Betreiber stellen fest, dass die Behebung von Feed- und Tracking-Problemen die Ergebnisse verbessert, noch bevor überhaupt Kampagnenänderungen vorgenommen werden.
Wenn Sie laufende Kampagnenunterstützung möchten, können wir sie separat besprechen — es ist schlicht ein anderes Engagement mit einer anderen Taktung. Das hält das Audit ehrlich und fokussiert: ein einmaliger, technischer Gesundheitscheck, den Sie umsetzen können, egal ob Sie Kampagnen selbst verwalten, eine andere Agentur nutzen oder uns später bitten, sie zu übernehmen. Das Ergebnis ist eine solide Basis, auf der jede Kampagnenarbeit, intern oder extern, mit Zuversicht aufbauen kann.
Das B2C Conversion Audit betrachtet Ihren tatsächlichen Live-Shop durch die Brille eines Verbrauchershops, dessen Aufgabe es ist, vorhandene Besucher in Käufer zu verwandeln. Wir starten nicht von einer generischen Checkliste; wir starten von Ihrem tatsächlichen Traffic, Ihren tatsächlichen Produktseiten und Ihrem tatsächlichen Checkout, arbeiten dann die Reise durch, die ein Käufer nimmt, und finden, wo Umsatz daraus entweicht. Weil das Ziel die Conversion-Rate ist statt einer allgemeinen Politur, ist jede Beobachtung an einen messbaren Abbruch zurückgebunden.
Was wir untersuchen
- Der Funnel — wo Besucher zwischen Landing, Kategorie, Produkt, Warenkorb und Checkout abfallen. Bei PrestaShop bedeutet das oft langsame oder unruhige Kategorieseiten, schwache interne Pfade von Blog-/Landingpages in Produktseiten und die klassische Klippe vom Warenkorb zum Checkout.
- Conversion der Produktseite — Bildqualität und Zoom, Preisklarheit, Bestands- und Liefernachrichten, Dringlichkeit und Reibung beim In-den-Warenkorb. Wir betrachten, wie Ihr Theme die Buy-Box rendert und ob die
product.tpl-Hierarchie die entscheidungstreibenden Informationen above the fold platziert. - Mobil — das Erlebnis dort, wo der meiste Verbraucher-Traffic tatsächlich konvertiert (oder nicht). Wir prüfen Tap-Ziele, klebendes In-den-Warenkorb, Bildgewicht und ob der mobile Checkout wirklich bedienbar ist statt eines geschrumpften Desktop-Layouts.
- Vertrauen & Social Proof — Bewertungen, Ratings, Garantien, Rückgabe-Beruhigung und Zahlungssicherheitssignale, platziert genau an den Entscheidungspunkten, an denen ein Verbraucher zögert.
- Checkout-Reibung & Rückgaben — der letzte und wertvollste Abbruchpunkt. Wir betrachten den Ein-Seiten-Checkout-Ablauf, erzwungene Kontoerstellung, Zahlungsoptionen, unerwartete spät auftauchende Kosten und wie klar Rückgaben kommuniziert werden.
Warum es wichtig ist
Die meisten Shops geben viel aus, um Traffic zu gewinnen, und verlieren dann einen großen Teil davon an behebbare Reibung. Den Funnel zu straffen monetarisiert Besucher, für die Sie bereits bezahlt haben, was typischerweise der schnellste und günstigste Hebel ist, den Sie haben. PrestaShop fügt seine eigenen Besonderheiten hinzu — Theme-Overrides, Modulkonflikte im Checkout und CCC-/Cache-Verhalten, das die Seitengeschwindigkeit beeinflusst — und wir berücksichtigen diese, statt Ihnen plattformunabhängigen Rat zu geben.
Dieses Audit ist für verbraucherorientierte PrestaShop-Shops, die nennenswerten Traffic haben, aber das Gefühl haben, dass die Conversion-Rate niedriger ist, als sie sein sollte. Das Ergebnis ist diagnostisch und priorisiert, sodass Sie die wirkungsstärksten Probleme zuerst angehen können, statt zu raten.
Sie überschneiden sich, aber sie beantworten unterschiedliche Fragen, und das richtige zu wählen spart Ihnen Zeit und Geld. Das UI/UX Audit dreht sich um Usability und Barrierefreiheit über den gesamten Shop hinweg — Navigation, Informationsarchitektur, Lesbarkeit, Konsistenz, Barrierefreiheitsstandards und die allgemeine Qualität des Erlebnisses für jeden Besucher, ob er heute kaufen will oder nicht. Das B2C Conversion Audit ist mit Laserfokus auf Umsatz gerichtet: die konkreten Funnel- und Produktseiten-Änderungen, die mehr Ihres aktuellen Traffics in Bestellungen verwandeln.
Wie Sie wählen
- Wenn Ihre Priorität darin besteht, die Conversion-Rate zu heben — mehr der Besucher, die Sie bereits haben, dazu zu bringen, in den Warenkorb zu legen und den Checkout abzuschließen —, ist das B2C Conversion Audit das richtige. Es nimmt Funnel-Lecks, Überzeugung auf Produktseiten, mobilen Kaufablauf, Vertrauenssignale am Entscheidungspunkt und Checkout-Abbruch ins Visier.
- Wenn Ihre Priorität in der allgemeinen Usability und Barrierefreiheit liegt — den gesamten Shop einfacher, klarer und inklusiver in der Nutzung über alle Seitentypen hinweg zu machen, nicht nur den Kaufpfad —, passt das UI/UX Audit besser.
In der Praxis ergänzen sich die beiden. Ein UI/UX-Problem (verwirrende Navigation, ein unzugängliches Formular, ein inkonsistentes Layout) kann auch ein Conversion-Problem sein, und ein Befund in einem Audit taucht oft im anderen auf. Aber die Rahmung und Priorisierung unterscheiden sich: Das Conversion-Audit ordnet alles nach erwarteter Umsatzwirkung, während das UI/UX-Audit nach Usability- und Barrierefreiheitsqualität ordnet.
Speziell bei PrestaShop berücksichtigen beide Audits Theme-Overrides, Modulverhalten und Template-Struktur, aber sie betrachten unterschiedliche Dinge — das Conversion-Audit die Buy-Box, den Warenkorb und den Ein-Seiten-Checkout; das UI/UX-Audit den Shop als Ganzes. Wenn Sie unsicher sind, welches Sie brauchen, sagen Sie uns Ihr Ziel: mehr Verkäufe aus demselben Traffic weisen Sie zum Conversion-Audit; ein sauberer, besser nutzbarer, barrierefreierer Shop weist Sie zu UI/UX.
Sie erhalten einen priorisierten Plan in verständlicher Sprache, um mehr Ihrer vorhandenen Besucher in Käufer zu verwandeln — konkrete, PrestaShop-spezifische Änderungen, geordnet nach erwarteter Wirkung auf die Conversion, sodass Sie mit den Erfolgen beginnen können, die Umsatz am schnellsten bewegen. Er ist zum Umsetzen geschrieben, nicht zum Ablegen.
Was im Ergebnis enthalten ist
- Eine priorisierte Liste der Befunde — jedes Problem, das wir über Funnel, Produktseiten, mobiles Erlebnis, Vertrauenssignale und Checkout hinweg gefunden haben, geordnet nach erwarteter Wirkung auf die Conversion statt danach, wie leicht es zu entdecken war.
- Konkrete, PrestaShop-spezifische Empfehlungen — keine generischen Best-Practice-Parolen, sondern was in Ihrem Shop zu ändern ist: Theme-/Template-Anpassungen, Konfiguration, Modulwahl und Checkout-/Warenkorb-Korrekturen, die dazu passen, wie PrestaShop tatsächlich funktioniert.
- Die Begründung hinter jedem Punkt — warum er Sie Bestellungen kostet und wie eine gute Version aussieht, sodass Ihr Team (oder unseres) mit Zuversicht umsetzen kann.
- Ein klarer Startpunkt — weil alles geordnet ist, können Sie mit den wirkungsstärksten Änderungen beginnen und sich nach unten arbeiten, statt zu versuchen, alles auf einmal zu erledigen.
Warum Priorisierung wichtig ist
Conversion-Arbeit ist voller kleiner möglicher Anpassungen, und sie in zufälliger Reihenfolge zu erledigen verschwendet Aufwand. Indem Änderungen nach erwarteter Wirkung geordnet werden, lässt der Plan Sie die größten Umsatzgewinne zuerst einfahren und entscheiden, wo Sie aufgrund abnehmender Erträge aufhören. Der Plan ist ehrlich und maßvoll — er identifiziert, wo Ihr aktueller Traffic entweicht und wie er zurückzugewinnen ist; er verspricht keine bestimmten Traffic-, Ranking- oder Umsatzergebnisse, denn diese hängen von Ihrem Markt, Ihren Produkten und der Umsetzung ab.
Er ist in verständlicher Sprache geschrieben, sodass ein Shop-Betreiber ihn verstehen und danach handeln kann, und zugleich konkret genug, dass ein PrestaShop-Entwickler ihn direkt umsetzen kann. Wenn Sie möchten, können die empfohlenen Änderungen anschließend als Umsetzungsarbeit abgegrenzt werden.
Das B2B Readiness Audit prüft, ob Ihr PrestaShop-Shop wirklich bereit ist, Business-to-Business zu verkaufen — nicht nur, ob er eine Bestellung entgegennehmen kann, sondern ob er die Art und Weise unterstützt, wie professionelle Käufer tatsächlich einkaufen. An Unternehmen zu verkaufen bringt Anforderungen mit sich, die ein Standard-Verbraucher-Setup schlicht nicht hat, und die meisten Shops entdecken die Lücken erst, nachdem ein Geschäftskunde gegen eine Wand läuft. Dieses Audit findet sie zuerst.
Was wir bewerten
- Kundengruppen & eingeschränkte Kataloge — den richtigen Käufern die richtigen Produkte und die richtigen Preise zeigen. Wir prüfen, wie Ihre PrestaShop-Kundengruppen konfiguriert sind und ob Katalogsichtbarkeit, gruppenbasierte Preisgestaltung und Zugangsbeschränkungen tatsächlich wie beabsichtigt funktionieren.
- Gestaffelte/Großhandelspreise — Mengen- und Vertragspreise korrekt umgesetzt, einschließlich spezifischer Preise, Mengenrabatte und gruppenspezifischer Sätze, sodass Großhandelskäufer korrekte Preise ohne manuelle Behelfslösungen sehen.
- Netto-Zahlungsbedingungen — Rechnungsstellung und Später-zahlen-Abläufe, sodass freigegebene Geschäftskonten auf Rechnung bestellen können, statt gezwungen zu sein, wie ein Verbraucher im Voraus zu zahlen.
- Angebotsanfragen — ein Workflow für verhandelte Preise, der über den Standard-Checkout gelegt wird, sodass Käufer, die vor der Festlegung ein Angebot brauchen, einen ordentlichen Weg haben statt abzubrechen.
- EU-Umsatzsteuer- & Geschäftskonto-Abläufe — VIES-Validierung von Umsatzsteuernummern, Reverse-Charge-Handhabung für innergemeinschaftliche Verkäufe und ein sinnvoller B2B-Onboarding-/Registrierungsprozess für neue Geschäftskonten.
Warum es wichtig ist
B2B-Käufer erwarten, dass ihre Preise, ihre Bedingungen und ihre steuerliche Behandlung automatisch respektiert werden. Wenn ein Unternehmen für einen Preis E-Mails schreiben muss, keine Nettobedingungen bekommt oder beim Checkout eine falsche Umsatzsteuer sieht, verlieren Sie die Bestellung — und oft die Beziehung. PrestaShop kann all dies über native Funktionen, Konfiguration, vorhandene Module und, wo nötig, individuelle Arbeit unterstützen, aber es muss bewusst eingerichtet werden. Das Audit ordnet jede Anforderung dem zu, wo Ihr Shop heute steht.
Dies ist für PrestaShop-Händler, die einen B2B-Kanal neben (oder anstelle von) Verbraucherverkäufen hinzufügen oder stärken möchten. Das Ergebnis ist diagnostisch und priorisiert; es sagt Ihnen, wo Sie zu kurz greifen und was das Schließen jeder Lücke umfasst, sodass Sie nur in die Fähigkeiten investieren, die Ihr Geschäft tatsächlich braucht.
Sie erhalten einen priorisierten Plan in verständlicher Sprache, der genau zeigt, wo Ihr Shop hinter echtem B2B-Verkauf zurückbleibt und wie jede Lücke zu schließen ist — ob das Konfiguration, ein vorhandenes Modul oder ein individuelles Arbeitspaket ist. Die Befunde sind geordnet, sodass Sie die werthaltigsten B2B-Fähigkeiten zuerst aktivieren, statt zu versuchen, alles auf einmal aufzubauen.
Was im Ergebnis enthalten ist
- Eine Lückenanalyse über die zentralen B2B-Anforderungen hinweg — Kundengruppen und eingeschränkte Kataloge, gestaffelte/Großhandelspreise, Netto-Zahlungsbedingungen, Angebotsanfragen und EU-Umsatzsteuer-/Geschäftskonto-Abläufe —, die das, was professionelle Käufer erwarten, mit dem vergleicht, wie sich Ihr PrestaShop-Shop heute verhält.
- Eine klare Abhilfe für jede Lücke — und entscheidend, wie sie zu schließen ist: ob es eine Konfigurationsänderung in PrestaShop, ein vorhandenes Modul, das sie bereits löst, oder wirklich maßgeschneiderte Entwicklung ist. Diese Unterscheidung ist wichtig, weil sie Kosten und Aufwand bestimmt.
- Geordnete Prioritäten — die werthaltigsten B2B-Fähigkeiten zuerst, sodass Sie die Funktionen, die Geschäftsbestellungen am schnellsten freischalten, zuerst aufstellen und die Nice-to-haves aufschieben können.
- Begründung in verständlicher Sprache — warum jede Lücke Sie Geschäftskäufer kostet und wie eine funktionierende Version aussieht, geschrieben so, dass ein Shop-Betreiber entscheiden und ein Entwickler umsetzen kann.
Warum Priorisierung wichtig ist
B2B-Bereitschaft ist selten ein einzelner Schalter — es ist ein Satz ineinandergreifender Fähigkeiten, und einige sind für Ihre konkreten Käufer weit wichtiger als andere. Indem jede Lücke geordnet wird, lässt der Plan Sie echten B2B-Verkauf schrittweise aktivieren und nur dort ausgeben, wo es zählt. Es ist eine ehrliche Einschätzung: Sie identifiziert, was fehlt und was die Behebung umfasst, ohne bestimmte Verkaufs- oder Wachstumsergebnisse zu versprechen, die von Ihrem Markt und der Umsetzung abhängen.
Das Audit kommt bewusst vor jedem Aufbau, sodass Sie sich nur auf Konfiguration, Module oder individuelle Arbeit festlegen, die Ihr Geschäft wirklich braucht. Wenn Sie sich entscheiden fortzufahren, können die empfohlenen Lücken jeweils als Umsetzung abgegrenzt werden — Konfiguration, eines unserer vorhandenen Module oder individuelle Entwicklung.
Ja. Viele der Lücken, die ein B2B Readiness Audit aufdeckt, sind bereits durch unsere vorhandenen PrestaShop-Module abgedeckt — zum Beispiel kundengruppenbasierte Preise, Umsatzsteuer-Validierung und Reverse-Charge-Handhabung sowie Angebotsanfrage-Abläufe —, sodass ihr Schließen oft eine Sache des Installierens und Konfigurierens bewährter Funktionalität ist statt der Beauftragung von Maßarbeit. Alles, was wirklich spezifisch für Ihr Geschäft ist, kann als individuelle Entwicklung abgegrenzt werden.
Wie die Umsetzung dem Audit folgt
- Konfiguration zuerst — manche Lücken werden rein durch das korrekte Einrichten von PrestaShop geschlossen: Kundengruppen, eingeschränkte Kataloge, spezifische/gestaffelte Preise und Steuerregeln. Wo das der Fall ist, sagen wir es, denn es ist der günstigste Weg.
- Vorhandene Module als Nächstes — wo eine Fähigkeit mehr als native Konfiguration braucht (gruppenbasierte Preislogik, VIES-Umsatzsteuer-Validierung und innergemeinschaftliches Reverse-Charge, verhandelte Angebots-Workflows), decken unsere vorhandenen Module sie oft ab, sodass Sie getestete Funktionalität erhalten statt etwas von Grund auf Gebautem.
- Individuelle Entwicklung, wo sie wirklich nötig ist — wenn Ihr B2B-Prozess Anforderungen hat, die nichts von der Stange erfüllt, kann dieses maßgeschneiderte Stück bewusst abgegrenzt und gebaut werden.
Warum das Audit zuerst kommt
Die Bewertung vor jedem Aufbau durchzuführen bedeutet, dass Sie nur in das investieren, was Ihr Geschäft tatsächlich braucht, in Prioritätsreihenfolge, statt Module spekulativ zu kaufen oder Maßarbeit zu beauftragen, die Konfiguration hätte lösen können. Es hält die Ausgabe ehrlich: Jede Empfehlung ist an eine reale Lücke gebunden, und Sie wählen, wie weit Sie gehen.
Die Antwort ist also sowohl Diagnose als auch Umsetzung — das Audit sagt Ihnen genau, was fehlt und wie es zu schließen ist, und wir können dann die Korrekturen über Konfiguration, unsere vorhandenen Module oder individuelle Entwicklung umsetzen, je nach Situation. Es sind keine Ergebnisgarantien an den Aufbau geknüpft; was wir zusagen, ist das Schließen der konkreten Lücken, die das Audit identifiziert.
Das Module Fit Assessment ordnet Ihre realen Geschäftsanforderungen Lösungen zu und sagt Ihnen ehrlich, was passt. Statt von einem Produkt auszugehen, das Sie kaufen könnten, geht es von dem aus, was Sie tatsächlich erreichen müssen — und arbeitet dann rückwärts zur richtigen Antwort, die manchmal ein Modul ist, manchmal eine native PrestaShop-Funktion und manchmal gar nichts.
Wie es funktioniert
- Sie beschreiben das Ergebnis, das Sie brauchen — das zu lösende Problem oder die hinzuzufügende Fähigkeit, in geschäftlichen Begriffen. Sie müssen nicht wissen, welches Modul oder welche Funktion es leistet; das ist unsere Aufgabe.
- Wir übersetzen das in konkrete Anforderungen — und verwandeln ein unscharfes Ziel ("ich brauche bessere Filterung", "ich brauche dieses Checkout-Verhalten") in spezifische, prüfbare Kriterien, die eine Lösung erfüllen muss, einschließlich PrestaShop-Versionskompatibilität, Theme- und Performance-Überlegungen.
- Wir bewerten die Optionen gegen diese Anforderungen — unsere und Drittanbieter-Module sowie native PrestaShop-Funktionalität —, indem wir jeden Kandidaten ehrlich daran prüfen, was Sie tatsächlich brauchen, statt an dem, was am leichtesten zu verkaufen ist.
- Sie erhalten eine Anforderungsmatrix und eine Empfehlung — eine klare Zuordnung jeder Anforderung zur am besten passenden Option, mit ausbuchstabierten Abwägungen, sodass die Entscheidung transparent ist.
Warum es wichtig ist
Die teuersten PrestaShop-Fehler sind in der Regel nicht die Module, die geradeheraus scheitern — es sind die, die halb funktionieren, übereinandergestapelt werden, im Checkout oder Theme in Konflikt geraten und sich still zu einem fragilen, langsamen Shop aufsummieren. Einmal das Richtige zu kaufen vermeidet das. PrestaShops Ökosystem ist groß und uneinheitlich; dasselbe Ergebnis lässt sich auf mehrere Arten mit sehr unterschiedlichen Folgen für Wartbarkeit, Performance und Versionsupdates erreichen, und die Bewertung wägt diese ab statt nur Funktionen abzugleichen.
Dies ist für Händler, die vor einer Entscheidung stehen — kurz davor, ein Modul zu kaufen, konkurrierende Optionen abwägend oder unsicher, ob sie überhaupt eines brauchen. Das Ergebnis ist entscheidungsreif und unparteiisch: Es sagt Ihnen, was zu kaufen oder zu bauen ist, was auszulassen ist und warum, bevor Sie Geld binden. Es verspricht kein bestimmtes Geschäftsergebnis; es stellt sicher, dass die Lösung, die Sie wählen, wirklich zur Anforderung passt.
Ja — ehrlich. Wenn ein Drittanbieter-Modul, eine native PrestaShop-Funktion oder gar kein Modul die bessere Lösung für Ihre Anforderung ist, sagen wir es. Der ganze Wert des Module Fit Assessment ist eine unparteiische Empfehlung; Sie unabhängig von der Eignung zu unserem eigenen Katalog zu lenken, würde den Sinn zunichtemachen und das Vertrauen untergraben, auf dem der Dienst aufgebaut ist.
Wie Unparteilichkeit in der Praxis funktioniert
- Die Anforderung führt, nicht der Katalog — wir bewerten jeden Kandidaten gegen Ihre konkreten Anforderungen. Wessen Modul (oder native Funktion) sie am besten erfüllt, gewinnt die Empfehlung, auch wenn das nicht unseres ist.
- Nativ zuerst, wenn es ausreicht — PrestaShop kann von Haus aus schon sehr viel. Wenn Konfiguration oder eine eingebaute Funktion Ihr Problem löst, ist der Kauf irgendeines Moduls — unseres oder das von irgendjemandem — die falsche Entscheidung, und wir werden Ihnen sagen, das Geld zu sparen.
- Drittanbieter, wo es besser passt — wenn ein Drittanbieter-Modul eine sauberere Lösung für Ihre Version, Ihr Theme oder Ihren Workflow ist, ist das die ehrliche Empfehlung, mit erklärten Abwägungen.
- Abwägungen auf dem Tisch — Kompatibilität, Wartbarkeit, Performance, Support und Upgrade-Risiko fließen alle ein, sodass die Empfehlung die Gesamtbetriebskosten widerspiegelt, nicht nur eine Funktions-Checkliste.
Warum das der Sinn des Dienstes ist
Eine Bewertung, die immer zu dem Schluss kommt "kaufen Sie unseres", ist keine Bewertung — sie ist ein Verkaufspitch. Der Grund, warum Händler für eine unabhängige Eignungsbewertung zahlen, ist genau, eine Empfehlung zu erhalten, der sie vertrauen können, auch wenn sie sie anderswohin schickt oder ihnen sagt, gar nichts zu tun. PrestaShops Modullandschaft ist breit und uneinheitlich, und die wirklich beste Option für eine gegebene Anforderung liegt häufig außerhalb des Sortiments eines einzelnen Anbieters. Wir haben lieber recht als eigennützig zu sein, denn das ist es, was die Empfehlung des Handelns wert macht.
Sie erhalten eine klare Anforderungsmatrix, die jeden Ihrer Bedarfe der am besten passenden Lösung zuordnet, mit einer Empfehlung in verständlicher Sprache und ausbuchstabierten Abwägungen. Kurz gesagt: Sie werden wissen, was zu kaufen oder zu bauen ist, was auszulassen ist und warum — bevor Sie Geld ausgeben.
Was im Ergebnis enthalten ist
- Eine Anforderungsmatrix — jeder Ihrer Bedarfe in eine konkrete, prüfbare Anforderung übersetzt, abgebildet gegen die Kandidatenlösungen (unsere, Drittanbieter und native PrestaShop-Funktionalität), sodass Sie auf einen Blick sehen, was was erfüllt.
- Eine am besten passende Empfehlung pro Anforderung — die Option, die wir wählen würden, und warum, in verständlicher Sprache, sodass die Begründung transparent ist statt eines Black-Box-Urteils.
- Die Abwägungen — Kompatibilität mit Ihrer PrestaShop-Version und Ihrem Theme, Wartbarkeit, Performance und Upgrade-Risiko, sodass Sie nicht nur verstehen, was passt, sondern was jede Wahl Sie über die Zeit kostet.
- Klare Anleitung, was auszulassen ist — einschließlich der Fälle, in denen native Konfiguration ausreicht und kein Modul nötig ist, was oft am meisten Geld spart.
Warum das Matrixformat hilft
Eine Matrix macht die Entscheidung nachvollziehbar: Statt einer einzelnen "kaufen Sie dies"-Zeile zu vertrauen, können Sie jede Anforderung, jeden Kandidaten und genau sehen, wo jeder passt oder zu kurz greift. Das ist besonders wertvoll bei PrestaShop, wo dasselbe Ergebnis auf mehrere Arten mit sehr unterschiedlichen Folgen für Stabilität und künftige Upgrades erreicht werden kann. Es macht es auch leicht, die Entscheidung später erneut zu betrachten oder einen Entwickler präzise zu briefen, was umzusetzen ist.
Das Ergebnis ist entscheidungsreif und unparteiisch — es sagt Ihnen, was zu kaufen oder zu bauen ist, was auszulassen ist und warum, bevor Sie Budget binden. Es verspricht kein bestimmtes Geschäftsergebnis; was es Ihnen gibt, ist die Zuversicht, dass die Lösung, die Sie wählen, wirklich zur Anforderung passt, sodass Sie einmal das Richtige kaufen, statt Module zu stapeln, die halb funktionieren. Wenn Sie sich entscheiden fortzufahren, kann die Empfehlung direkt an die Umsetzung übergeben werden — Konfiguration, eines unserer Module oder individuelle Entwicklung, je nach Eignung.
Die Theme-Eignungsprüfung misst ein Theme — oder Ihre engere Auswahl an Kandidaten — an Ihren tatsächlichen Anforderungen, nicht an den geschönten Marketing-Screenshots auf einer Demo-Seite. Ein Theme, das mit zwölf Beispielprodukten schnell und flexibel wirkt, kann sich völlig anders verhalten, sobald es Ihren vollständigen Katalog, Ihre Module und Ihren Traffic trägt. Diese Lücke schließen wir, bevor Sie sich festlegen.
Was wir tatsächlich prüfen
- Performance unter realen Bedingungen — wie das Theme bei einer realistischen Kataloggröße rendert statt bei einer abgespeckten Demo, einschließlich des Gewichts seines CSS/JS, wie es Kategorie- und Produktlisten handhabt und wo es voraussichtlich die Core Web Vitals nach unten zieht.
- Child-Theme-Fähigkeit — ob Sie das Theme über ein ordentliches Child-Theme anpassen und dennoch Updates sicher übernehmen können, oder ob jede Änderung das Bearbeiten von Kern-Theme-Dateien bedeutet, die das nächste Update überschreibt.
- B2B-Unterstützung — wie gut es mit Anforderungen wie Kundengruppen, spezifischen Preisen, Steueranzeige und kontogesteuerten Katalogen zurechtkommt, falls Ihr Shop nicht rein B2C ist.
- Barrierefreiheit — Übereinstimmung mit den Erwartungen von EAA / WCAG, was sowohl rechtlich als auch für die Nutzbarkeit über Ihr gesamtes Publikum hinweg von Bedeutung ist.
- Mobile Qualität — echtes responsives Verhalten und Touch-Nutzbarkeit, nicht nur ein Layout, das technisch umbricht.
- Update-Rhythmus — ob das Theme aktiv für das aktuelle PrestaShop gepflegt wird oder eine aufgegebene Codebasis ist, die still und leise zur Belastung wird.
Warum das wichtig ist: Das Theme ist eines der am schwersten zu ändernden Dinge nach dem Launch. Es berührt jede Seite, jeden Conversion-Pfad und Ihre langfristigen Wartungskosten. Allein nach dem Aussehen zu wählen, ist der Weg, auf dem Shops sich in Performance-Schulden oder einer toten Codebasis verfangen. Diese Prüfung legt diese Risiken offen, solange Sie noch die freie Wahl haben.
Sie eignet sich für Händler, die Themes vor einem Aufbau oder einem Replatforming vergleichen, für Agenturen, die das bevorzugte Theme eines Kunden bewerten, und für alle, die eine unabhängige, technische Einschätzung eines PrestaShop-Themes wünschen statt eines Verkaufsgesprächs.
Sie erhalten ein bewertetes Urteil zu jedem Theme im Hinblick auf Ihre spezifischen Anforderungen, bei dem die Kompromisse und Risiken vor Ihrer Festlegung klar benannt werden — nicht erst Wochen nach dem Launch entdeckt, wenn sie teuer rückgängig zu machen sind.
Wie das Ergebnis aussieht
- Eine klare Bewertung jedes Themes (oder jedes Kandidaten Ihrer engeren Auswahl), gemessen an den Kriterien, die für Ihren Shop wichtig sind, sodass Sie Gleiches mit Gleichem vergleichen können statt nach dem ersten Eindruck.
- Die klar benannten Risiken — Performance-Schulden, die Seitengeschwindigkeit und Core Web Vitals beeinträchtigen, schlechte oder fragile Child-Theme-Unterstützung, die sichere Anpassungen blockiert, Barrierefreiheitslücken gegenüber EAA / WCAG oder eine aufgegebene Codebasis, die nicht mit PrestaShop Schritt hält.
- Eine praxisnahe Einschätzung, ob ein Theme ein solides Fundament, ein vertretbarer Kompromiss oder etwas ist, das man meiden sollte.
Warum das wertvoll ist: Die schädlichsten Theme-Probleme sind jene, die man in einer Demo nicht sehen kann. Ein Theme kann perfekt aussehen und sich dennoch nicht anpassen lassen, ohne Updates zu zerstören, oder langsam werden, sobald Ihr echter Katalog geladen ist, oder still und leise ungepflegt sein. Bis diese Probleme im Produktivbetrieb auftauchen, haben Sie meist bereits in Inhalte, Konfiguration und Anpassungen darauf investiert.
Der Sinn der Prüfung ist die informierte Entscheidung. Sie entscheiden mit offenen Augen — behalten, anpassen oder wechseln — und gehen die Entscheidung mit dem genauen Wissen ein, worauf Sie sich einlassen. Wir machen keine Versprechen über ein bestimmtes Ergebnis; wir geben Ihnen das ehrliche technische Bild, damit die Entscheidung auf solidem Boden bei Ihnen liegt. Es ist der Unterschied zwischen der Wahl eines Themes und dem Erben seiner Probleme.
Ja. Wir können ein Theme prüfen, das Sie bereits gekauft oder auf dem Sie bereits aufgebaut haben, und genau dasselbe bewertete, anforderungsbasierte Urteil auf das anwenden, was Sie heute betreiben. Die Prüfung ist nicht nur für die Theme-Auswahl auf der grünen Wiese gedacht — sie ist genauso nützlich, wenn Sie ein Theme geerbt, einen Shop übernommen oder den Verdacht entwickelt haben, dass Ihr aktuelles Theme Sie ausbremst.
Was die Prüfung eines bestehenden Themes Ihnen zeigt
- Ob es sich lohnt, es zu behalten — eine ehrliche Einschätzung, ob Ihr aktuelles Theme ein solides Fundament ist, in das es sich weiter zu investieren lohnt, oder eine langfristige Belastung.
- Worin seine Risiken bestehen — Performance-Schulden, die Ihre Seiten verlangsamen, fragile oder fehlende Child-Theme-Unterstützung, die sichere Anpassungen erschwert, Barrierefreiheitslücken gegenüber EAA / WCAG und ob die Codebasis noch aktiv für das aktuelle PrestaShop gepflegt wird.
- Ob ein Child-Theme oder ein Wechsel der bessere Weg ist — wenn die Substanz gut ist, können wir bestätigen, dass das Anpassen über ein ordentliches Child-Theme Sie update-sicher hält; wenn nicht, sagen wir Ihnen klar, dass ein Wechsel der risikoärmere Weg ist.
Warum das wichtig ist: Viele Händler entdecken die wahren Grenzen eines Themes erst, nachdem sie Inhalte aufgebaut, Module konfiguriert und Templates darauf angepasst haben. Das zu prüfen, was Sie bereits betreiben, lässt Sie diese Entscheidung bewusst statt reaktiv treffen — bevor Sie weitere Arbeit in eine wackelige Basis stecken, oder umgekehrt, bevor Sie unnötig ein Theme wegwerfen, das nur einen vernünftigen Child-Theme-Ansatz braucht.
Dies eignet sich gut für Shops, die ihr aktuelles Theme nicht selbst gewählt haben, die ein Redesign abwägen oder die einfach eine unabhängige technische Meinung zu dem Theme wünschen, von dem sie bereits abhängen — mit klar dargelegten Risiken, sodass die Entscheidung bei Ihnen bleibt.
Ein individuelles PrestaShop-Modulprojekt wird als richtiges Engineering-Vorhaben geführt, nicht als schneller Flicken. Jedes Projekt beginnt mit einer abgegrenzten Discovery-Phase — dem Schritt, in dem wir aus einem geschäftlichen Bedarf eine konkrete, baufertige Spezifikation machen.
Discovery zuerst
In der Discovery erarbeiten wir, was das Modul tatsächlich leisten muss, einschließlich der Grenzfälle und der PrestaShop-spezifischen Beschränkungen, die unterskizzierte Projekte still und leise scheitern lassen: wie es sich in Storefront und Back Office einhängen soll, wie es sich über Kundengruppen, Multistore, mehrere Sprachen und Währungen hinweg verhält, wie es mit Warenkorb, Bestellungen oder Katalog interagiert und wo das Kernverhalten sicher erweitert werden kann und wo nicht. Das Ergebnis ist eine Spezifikation, die präzise genug ist, um ehrlich danach kalkulieren und bauen zu können. Die Discovery-Gebühr wird auf den Bau angerechnet, sodass sie kein verlorenes Geld ist, wenn Sie fortfahren — sie wird Teil der Arbeit.
Bauen, testen und ausliefern
Aus dieser Spezifikation bauen wir das Modul nach Produktionsstandards — mithilfe der Hook- und Override-Architektur von PrestaShop statt durch Eingriffe in den Kern — testen es dann und liefern es aus. Die Support-Bedingungen werden im Projektumfang vereinbart, sodass Sie von vornherein wissen, was abgedeckt ist, statt es später herauszufinden.
Warum so vorgehen: Die meisten schmerzhaften Modulprojekte scheitern nicht am Code, sondern an den Annahmen — eine Anforderung, die sich als dreifach unterschiedlich gemeint herausstellt, oder eine PrestaShop-Beschränkung, die niemand geprüft hat. Diese in der Discovery festzunageln, ist das, was den Bau planbar macht.
Das Ergebnis ist ein Modul, das genau das tut, was Standard- und Marktplatz-Module nicht tun, bewusst für Ihren Shop gebaut statt aus unpassenden Teilen zusammengeklebt. Es eignet sich für Händler, deren Workflow, Katalog oder Integration wirklich nicht zu einem Modul von der Stange passt und die etwas Wartbares wollen statt eines einmaligen Hacks, der beim nächsten Update bricht.
Ihr individuelles Modul wird über PrestaShop 1.7, 8 und 9 hinweg gebaut und getestet. PrestaShop hat sich über diese Hauptversionen hinweg stark verändert — Kern-APIs wurden als veraltet markiert, Signaturen änderten sich und einige Methoden wurden vollständig entfernt — sodass ein naiv gegen eine Version geschriebenes Modul auf einer anderen oft bricht.
Wie wir es kompatibel halten
Wir verwenden Versionskompatibilitäts-Wrapper, statt fragile Kern-APIs direkt aufzurufen. Wenn sich eine PrestaShop-Methode zwischen Versionen unterscheidet oder verschwindet, erkennt der Wrapper die laufende Version und ruft im Hintergrund die korrekte API auf, sodass sich dasselbe Modul auf 1.7, auf 8 und auf 9 korrekt verhält. Dies verringert das Risiko von Update-Brüchen durch veraltete oder entfernte Kern-APIs — den Fehlerfall, der Händler auf einer alten PrestaShop-Version festsitzen lässt, weil ihr individueller Code nicht weiterkommt.
Self-heal / infra-guard
Das Modul wird zudem mit unserer Self-heal- / Infra-guard-Architektur ausgeliefert. PrestaShop-Updates und Cache-Neuaufbauten können dazu führen, dass die Back-Office-Tabs eines Moduls fehlen, seine Hooks nicht registriert sind oder sein Datenbankschema aus dem Takt gerät — und das klassische Symptom ist ein Modul, das still und leise versagt, mit einem verschwundenen Menüeintrag oder einer Funktion, die unbemerkt nicht mehr läuft. Infra-guard prüft die eigenen Tabs, Hooks und das Schema des Moduls und repariert sie, statt sie verrotten zu lassen, sodass das Modul nach einem PrestaShop-Update weiterhin funktioniert, statt unbemerkt zu degradieren.
Warum das wichtig ist: Bei PrestaShop liegen die Kosten eines individuellen Moduls selten im ersten Bau — sondern in allem danach. Gegen drei unterstützte Hauptversionen zu bauen, mit Kompatibilitäts-Wrappern und selbstheilender Infrastruktur, ist das, was das Modul zu einem langfristigen Vermögenswert macht, der Updates übersteht, statt zu einer Belastung, die Sie bei jedem Plattform-Schritt neu entwickeln müssen. Das ist besonders wertvoll für Händler, die den Shop aktuell halten wollen und nicht möchten, dass ihr individueller Code sie an eine alte Version bindet.
Ja — Ihnen gehört Ihr Modul, und es ist echtes, offenes, lesbares PHP ohne ionCube und ohne Verschleierung. Sie oder jeder Entwickler Ihrer Wahl können den Quellcode öffnen, genau nachlesen, was er tut, ihn auf Sicherheit und Verhalten prüfen und ihn eigenständig warten oder erweitern.
Warum das bewusst so ist
Ein großer Teil des PrestaShop-Modulmarkts liefert verschlüsselten oder ionCube-gesperrten Code aus. Das wirkt harmlos, bis Sie etwas ändern, eine Interaktion mit einem anderen Modul debuggen oder den Shop weiterführen müssen — und feststellen, dass Sie es nicht können, weil der Code eine Blackbox ist und nur der ursprüngliche Anbieter den Schlüssel hält. Es bindet Sie still und leise an einen einzigen Lieferanten, um Ihren eigenen Shop am Laufen zu halten.
Wir machen das Gegenteil. Weil das Modul als reines, prüfbares PHP ausgeliefert wird:
- können Sie es zu Ihren Bedingungen sicherheitsprüfen lassen, durch jeden, dem Sie vertrauen.
- können Sie Interaktionen debuggen mit Ihrem Theme und anderen Modulen, statt gegen eine undurchsichtige Wand zu laufen.
- können Sie es von jedem kompetenten PrestaShop-Entwickler warten oder erweitern lassen — Sie sind nicht auf uns angewiesen, um weiterarbeiten zu können.
- können Sie ihn lesen, um Ihren eigenen Shop zu verstehen, was für Compliance, Übergabe und Due Diligence wichtig ist.
Warum das wichtig ist: Ein individuelles Modul ist Teil der Infrastruktur Ihres Unternehmens, und Infrastruktur, die Sie nicht lesen oder ändern können, gehört Ihnen nicht wirklich. Offener, lesbarer Code bedeutet, dass Sie nie von einem Anbieter-Lock-in als Geisel gehalten werden und die Zukunft Ihres Shops in Ihren Händen bleibt. Es ist das Gegenteil eines großen Teils des PrestaShop-Modulmarkts, und es ist eine bewusste Entscheidung — wir verdienen uns laufende Arbeit lieber dadurch, gut zusammenzuarbeiten, als dadurch, Ihren Code gefangen zu halten.
Maßgeschneiderte PrestaShop-Modulentwicklung beginnt ab 2.490 €. Der genaue Preis wird durch die abgegrenzte Discovery-Phase festgelegt, denn ein ehrliches Angebot braucht eine echte Spezifikation statt einer Schätzung, die gemacht wird, bevor irgendjemand erarbeitet hat, was das Modul tatsächlich leisten muss.
Warum der Preis abgegrenzt und nicht fest ist
Individuelle Arbeit variiert enorm. Ein Modul, das ein einzelnes, gezieltes Verhalten hinzufügt, ist ein ganz anderer Bau als eines, das mit einem externen System integriert, Multistore und mehrere Sprachen handhabt, den Warenkorb- oder Bestellfluss manipuliert oder mit kniffligen Grenzfällen über Kundengruppen und Währungen hinweg zurechtkommen muss. Etwas davon anhand eines einzeiligen Briefings zu kalkulieren, polstert entweder die Zahl auf, um Unbekanntes abzudecken, oder verbirgt Risiken, die später als Scope Creep auftauchen. Discovery beseitigt das Rätselraten: Wir machen aus Ihrem Bedarf eine konkrete Spezifikation — mit festgenagelten PrestaShop-Beschränkungen und Grenzfällen — und kalkulieren gegen diese.
Die Discovery-Gebühr wird auf den Bau angerechnet
Der Discovery-Schritt hat eine Gebühr, aber sie wird auf den Bau angerechnet, sodass sie kein verlorenes Geld ist, wenn Sie sich entscheiden fortzufahren — sie wird einfach Teil des Projekts. Wenn Sie nicht fortfahren, gehen Sie dennoch mit einer klaren, baufertigen Spezifikation dessen heraus, was Ihr Modul bräuchte, was an sich einen Wert hat (zum Beispiel, wenn Sie es anderswo umsetzen oder es später erneut aufgreifen).
Wofür Sie bezahlen: nicht nur Code, sondern ein nach Produktionsstandards in offenem, lesbarem PHP gebautes Modul, das Ihnen gehört, getestet über PrestaShop 1.7, 8 und 9, mit der Self-heal- / Infra-guard-Architektur, die es nach Plattform-Updates am Laufen hält. Die Zahl ab 2.490 € ist die realistische Untergrenze für dieses Arbeitsniveau; die Discovery legt fest, wo Ihr konkretes Projekt darüber landet.
Ein Produktkonfigurator zahlt sich bei komplexen, maßgefertigten oder mehrkomponentigen Produkten aus — bei allem, wo der Kunde faktisch seine eigene Version zusammenstellt, statt eine feste SKU aus dem Regal zu wählen. Wenn ein Kauf das Wählen von Maßen, Materialien, Oberflächen, Optionen und Zusätzen umfasst, kann eine flache Produktseite ihn nicht ehrlich abbilden, und kombinationsbasierte Attribute werden schnell unbeherrschbar.
Produkte, die gut passen
- Zuschnittwaren — alles, was nach gewählter Länge, Breite oder Fläche verkauft wird, wobei der Preis von den vom Kunden eingegebenen Maßen abhängt.
- Bundles und Kits — Produkte, die aus mehreren Komponenten zusammengestellt werden, die der Kunde gemeinsam auswählt.
- Möbel — Rahmen, Größe, Material, Stoff oder Oberfläche sowie Zusatzauswahlen, die sich zu einem zusammengestellten Artikel verbinden.
- Beschilderung — Größe, Trägermaterial, Endverarbeitung und Mengenoptionen, die den Preis bestimmen.
- Technische Ausrüstung — konfigurierbare Geräte, bei denen der richtige Aufbau von einer Kette kompatibler Auswahlen abhängt.
Warum eine Standard-Produktseite zu kurz greift: Die nativen Attribute und Kombinationen von PrestaShop funktionieren für eine Handvoll Varianten, aber sie skalieren nicht für Produkte mit vielen unabhängigen Optionen oder maßgetriebener Preisbildung — man endet bei einer Explosion von Kombinationen oder einer Seite, die die echten Auswahlmöglichkeiten schlicht nicht erfassen kann. Ein Konfigurator bildet die Optionen als Auswahlen ab statt als vorgefertigte Varianten, was den Katalog beherrschbar und das Kauferlebnis klar hält.
Auf der Seite wählen Käufer ihre Optionen mit Live-Preisbildung — der Preis aktualisiert sich, während sie zusammenstellen, sodass sie stets die genauen Kosten der Konfiguration sehen, die sie zusammenstellen, statt einer vagen “ab”-Angabe oder einer Sackgasse mit Anfrage auf Anfrage. Diese Transparenz ist es, die ein komplexes Produkt in etwas verwandelt, das ein Kunde sicher online kaufen kann.
Es eignet sich für Händler, deren Produkte wirklich konfigurierbar sind und die sie derzeit in starre Produktseiten zwängen, die Konfiguration per E-Mail abwickeln oder Verkäufe verlieren, weil die Storefront keinen echten Preis für einen echten Aufbau anzeigen kann.
Ja. Jede Konfiguration ist SEO-sauber und teilbar über eine pfadbasierte URL — ein echter, lesbarer Pfad statt einer unübersichtlichen Query-Zeichenkette mit einer langen Liste von ?option=…&option=…-Parametern dahinter. Dieser Unterschied ist wichtiger, als er zunächst erscheint.
Warum pfadbasierte URLs wichtig sind
- Verlinkbar und als Lesezeichen speicherbar — ein Kunde kann einen bestimmten Aufbau speichern, später zurückkehren oder ihn auf einem anderen Gerät aufrufen und genau dort fortfahren, wo er war.
- Teilbar — ein Käufer kann seine exakte Konfiguration an einen Kollegen, einen Partner oder zurück an Ihr Vertriebsteam senden, und alle landen beim selben Aufbau. Sie können ebenso eine vorbereitete Konfiguration an einen Kunden senden, damit er sie aufgreift.
- Indexierbar, wo angemessen — saubere Pfade sind etwas, das Suchmaschinen als richtige Seiten behandeln können, statt des Parameter-Brei, den Crawler typischerweise ignorieren oder als Duplikate behandeln. Sie behalten die Kontrolle darüber, welche Konfigurationen es wert sind, sichtbar gemacht zu werden.
Auf der Product-Setup-Engine aufgebaut
Der Konfigurator läuft auf unserer Product-Setup-Engine, was bedeutet, dass er schnell und crawlbar ist statt einer schweren JavaScript-Blackbox. Viele Konfiguratoren sind reine clientseitige Widgets: großartig, bis eine Suchmaschine, ein geteilter Link oder ein Kunde mit langsamer Verbindung auf eine leere Hülle trifft, die sich erst zusammensetzt, nachdem ein Berg von JavaScript ausgeführt wurde. Auf der Product-Setup-Engine aufzubauen, hält die Seiten des Konfigurators echt und zugänglich, mit der live, interaktiven Optionsauswahl obendrauf, statt dass sie das Einzige ist, was die Seite zusammenhält.
Warum das wichtig ist: Bei konfigurierbaren Produkten ist der Link das Produkt. Wenn ein Kunde einen bestimmten Aufbau nicht als Lesezeichen speichern, teilen oder zu ihm zurückkehren kann — oder wenn Suchmaschinen aus Ihren Konfigurationen nicht schlau werden — verlieren Sie sowohl Conversions als auch Auffindbarkeit. Saubere, pfadbasierte, crawlbare Konfigurations-URLs verwandeln jeden Aufbau in etwas Dauerhaftes, Teilbares, Indexierbares statt in einen wegwerfbaren Zustand im Browser.
Das Setup des Produktkonfigurators beginnt ab 1.490 €, und die Arbeit verwandelt Ihr Produkt und seine Optionen in einen funktionierenden, geführten Konfigurator mit Live-Preisbildung und teilbaren URLs — nicht in ein halbfertiges Widget, das Sie dann selbst verdrahten müssen.
Was das Setup beinhaltet
- Die Verwandlung Ihres Produkts und seiner echten Optionen in einen geführten Konfigurator, der den Käufer auf der Seite durch seine Auswahlen führt.
- Live-Preisbildung, sodass sich der Preis zusammensetzt, während der Kunde zusammenstellt, und er stets die genauen Kosten seiner Konfiguration sieht.
- Teilbare, pfadbasierte Konfigurations-URLs, sodass ein bestimmter Aufbau verlinkt, als Lesezeichen gespeichert, an einen Kunden gesendet und, wo angemessen, indexiert werden kann, statt in einem flüchtigen Browser-Zustand gefangen zu sein.
Warum der Umfang in der Discovery bestätigt wird
Der genaue Umfang — die Anzahl der Optionen, die Preisregeln, die diese Optionen mit dem Endpreis verbinden, und alle Integrationen, die der Konfigurator benötigt — wird in einer kurzen Discovery bestätigt. Das ist es, was das Angebot ehrlich hält: Ein Konfigurator mit ein paar unkomplizierten Optionen und einfacher Preisbildung ist ein ganz anderer Bau als einer mit maßgetriebener Preisbildung, voneinander abhängigen Optionen oder einer Verbindung zu einem anderen System. Discovery stellt sicher, dass das Angebot Ihr echtes Produkt widerspiegelt und nicht eine blind angewandte Schablone, sodass Sie weder für Komplexität zahlen, die Sie nicht haben, noch Komplexität unterskizzieren, die Sie haben.
Warum das wichtig ist: Bei konfigurierbaren Produkten kann “einen Konfigurator einrichten” je nach tatsächlichem Verhalten der Optionen und der Preisbildung wild unterschiedliche Arbeitsmengen bedeuten. Sich auf ab 1.490 € festzulegen und dann die Einzelheiten in der Discovery zu bestätigen, gibt Ihnen eine realistische Untergrenze und einen Preis, der in Ihrem tatsächlichen Produkt verankert ist. Es eignet sich für Händler mit wirklich konfigurierbaren Produkten, die möchten, dass Käufer ihre eigene Version auf der Storefront zusammenstellen und bepreisen, wobei jeder Aufbau sauber, schnell und teilbar ist.
Monitoring Plan ist der leichteste unserer PrestaShop Care Plans — ein kontinuierliches, immer aktives Sicherheitsnetz, das Ihren Shop überwacht, damit Sie es nicht tun müssen. Es ist für eine Aufgabe gebaut und erfüllt sie gut: Ihnen zu sagen, dass etwas nicht stimmt, bevor ein Kunde Ihnen eine E-Mail schreibt.
Was enthalten ist
- Uptime-Überwachung — Ihre Storefront und Ihr Checkout werden kontinuierlich geprüft, sodass ein Ausfall in dem Moment einen Alarm auslöst, in dem er passiert, statt Stunden später.
- Cron- & Kern-Gesundheitsprüfungen — wir fangen defekte oder stehengebliebene Cron-Jobs und offensichtliche fatale Fehler ab, die einen PrestaShop-Shop still und leise verschlechtern (fehlgeschlagene geplante Aufgaben, fehlende Kernprozesse, wiederkehrende PHP-Fatals).
- Sicherheits- & Performance-Überwachung — grundlegende Regressionsalarme, die melden, wenn sich etwas zum Schlechteren verändert hat.
- Live-Dashboard + Monatsbericht — eine Echtzeit-Sicht auf Uptime-%, Vorfälle und das, was wir bemerkt haben, jeden Monat zusammengefasst, sodass Sie eine klare Beweiskette haben.
Was Dashboard und Bericht zeigen
Das Live-Dashboard gibt Ihnen einen Gesundheitsstatus auf einen Blick: aktueller Uptime-Prozentsatz, alle offenen oder jüngsten Vorfälle und die neuesten Prüfungen. Der Monatsbericht fasst dies zusammen in Uptime über den Zeitraum, ein Vorfallprotokoll und eine kurze Notiz zu allem, was Ihre Aufmerksamkeit wert ist — sodass selbst ein zurückhaltender Inhaber informiert bleibt.
Eine ehrliche Abgrenzung
Monitoring Plan ist ausschließlich Überwachung und Alarmierung. Es sind die Augen auf Ihrem Shop, nicht die Hände — die eigentliche Reparaturarbeit wird separat kalkuliert oder durch die monatlichen Expertenstunden in Store Care Plan erledigt. Wir halten diese Linie bewusst klar, sodass Sie stets genau wissen, wofür Sie bezahlen. Die Abdeckung zu Geschäftszeiten für gemeldete Ereignisse läuft Mo.–Fr., 09:00–18:00 CET.
Wenn Ihr Shop stabil ist und Sie einfach ein verlässliches Frühwarnsystem wollen, ist Monitoring Plan der richtige Ausgangspunkt. Wenn Sie es vorziehen, die kleinen Probleme für sich erledigen zu lassen, sobald sie auftauchen, ist Store Care Plan der natürliche Aufstieg — es enthält alles hiervon plus einen Pool von Expertenstunden pro Monat.
Monitoring Plan deckt Überwachung und Alarmierung ab — es sind die Augen auf Ihrem Shop, nicht die Hände. Wenn etwas kaputtgeht, werden Sie sofort benachrichtigt; die eigentliche Behebung wird dann separat kalkuliert oder durch die monatlichen Expertenstunden in Store Care Plan abgedeckt. Wir gehen mit dieser Unterscheidung bewusst um, damit es nie Überraschungen darüber gibt, was der Plan tut und was nicht.
Wie es in der Praxis funktioniert
Wenn eine Prüfung fehlschlägt — Ihre Storefront oder Ihr Checkout fällt aus, ein Cron-Job bleibt stehen oder ein fataler Fehler taucht auf — löst Monitoring Plan einen Alarm aus und protokolliert den Vorfall auf Ihrem Live-Dashboard. Sie erfahren von dem Problem in dem Moment, in dem es passiert, statt von einem frustrierten Kunden. Was Monitoring Plan nicht tut, ist sich automatisch einzuloggen und das Problem zu beheben; Diagnose und Lösung sind separate Arbeit.
Ihre Optionen, wenn etwas behoben werden muss
- Die Behebung separat kalkulieren — wir grenzen das konkrete Problem ab, und Sie genehmigen die Arbeit, bevor etwas getan wird.
- Auf Store Care Plan aufsteigen — wenn Sie sich nicht mit Angeboten pro Vorfall befassen möchten, enthält Store Care Plan alles aus Monitoring Plan plus 2 Stunden Expertenarbeit pro Monat (Obergrenze 6h), um die kleinen Probleme — Konfiguration, Cache, Cron, Moduleinstellungen und offensichtliche PHP-Fehler — zu erledigen, sobald sie auftauchen.
Stellen Sie es sich so vor: Monitoring Plan ist darauf ausgelegt, Sie schnell zu alarmieren, und gibt Ihnen eine klare Aufzeichnung dessen, was passiert ist. Store Care Plan fügt jemanden hinzu, der bei den kleinen Dingen handelt, ohne jedes Mal ein neues Angebot. Viele Shop-Inhaber beginnen mit Monitoring Plan für die Sicherheit und steigen auf Store Care Plan auf, sobald sie merken, wie viel routinemäßige Wartung sie lieber abgeben würden. So oder so werden größere Projekte — eine neue Funktion, ein individuelles Modul, eine Migration — stets eigenständig abgegrenzt und kalkuliert, sodass die Linie zwischen Überwachung und praktischer Arbeit sauber und ehrlich bleibt.
Ausfallzeit löst einen sofortigen Alarm aus. Ein P1-Ereignis — Ihre Storefront oder Ihr Checkout ist ausgefallen — wird während der Geschäftszeiten (Mo.–Fr., 09:00–18:00 CET) sofort gemeldet, sodass Sie es in dem Moment erfahren, in dem es passiert, statt von einem frustrierten Kunden oder einer verpassten Bestellung.
Was als P1 zählt
P1 ist den Dingen vorbehalten, die Sie direkt Umsatz kosten: Ihre Storefront lädt nicht, oder der Checkout schlägt fehl, sodass Kunden eine Bestellung nicht abschließen können. Dies sind die höchstpriorisierten Signale auf Ihrem Dashboard, gerade weil bei einem PrestaShop-Shop jede Minute eines Ausfalls zählt.
Wie die Alarmierung funktioniert
Monitoring Plan prüft Ihre Storefront und Ihren Checkout kontinuierlich. In dem Moment, in dem eine Prüfung fehlschlägt, wird ein Alarm ausgelöst und der Vorfall mit einem Zeitstempel auf Ihrem Live-Dashboard festgehalten. Das gibt Ihnen zwei Dinge zugleich: eine sofortige Vorwarnung und eine dauerhafte Aufzeichnung, auf die Sie zurückgreifen können — nützlich, um Muster zu erkennen oder genau zu bestätigen, wann ein Problem begann und endete.
Eine ehrliche Anmerkung
Monitoring Plan benachrichtigt Sie schnell — das ist sein Kernversprechen — aber es ist ein Überwachungs- und Alarmierungsplan, sodass die eigentliche Reparatur separat kalkuliert oder durch die monatlichen Stunden in Store Care Plan erledigt wird. Wir versprechen keine null Ausfallzeit; kein ehrlicher Anbieter kann das. Was wir versprechen, ist, dass Sie nicht die Letzten sind, die es erfahren. Die kontinuierlichen Prüfungen plus die sofortige Meldung während des Geschäftszeitfensters bedeuten, dass Probleme auftauchen, sobald die kontinuierlichen Prüfungen sie melden, nicht nachdem ein Kunde sich die Zeit nimmt, sich zu beschweren — was oft den Unterschied zwischen einer schnellen Erholung und einem verlorenen Nachmittag voller Bestellungen ausmacht.
Monitoring Plan eignet sich am besten für Shops, die stabil sind und einfach Augen auf sich haben wollen — ein verlässliches Sicherheitsnetz ohne einen monatlichen Pool an Arbeitsstunden. Wenn Ihr PrestaShop-Shop die meiste Zeit reibungslos läuft und Sie hauptsächlich sicher sein wollen, dass Sie schnell von einem Problem erfahren, ist dies die richtige Wahl.
Monitoring Plan bringt Ihnen am meisten, wenn…
- Ihr Shop etabliert und einigermaßen störungsfrei ist und Sie selten praktische Änderungen brauchen.
- Sie kontinuierliche Uptime-, Cron- und Kern-Gesundheitsüberwachung mit sofortigen Alarmen während der Geschäftszeiten (Mo.–Fr., 09:00–18:00 CET) wollen.
- Sie lieber für die gelegentliche Behebung als separates, genehmigtes Angebot zahlen, als ein monatliches Stundenbudget zu tragen, das Sie womöglich nicht nutzen.
- Sie ein Live-Dashboard und einen Monatsbericht als klare, ehrliche Aufzeichnung der Gesundheit Ihres Shops schätzen.
Wann Sie stattdessen aufsteigen sollten
Wenn Sie auch die kleinen Behebungen für sich erledigt haben möchten — Konfiguration, Cache, Cron, Moduleinstellungen und offensichtliche PHP-Fehler — ohne jede einzeln zu kalkulieren, steigen Sie auf Store Care Plan auf. Store Care Plan enthält alles aus Monitoring Plan plus 2 Stunden Expertenarbeit pro Monat (Obergrenze 6h, nicht übertragbar), sodass routinemäßige Wartung erledigt wird, statt sich anzustauen. Und wenn Ihre Priorität die Sichtbarkeit in der Suche statt der Uptime ist, konzentriert sich SEO Care Plan stattdessen auf technische SEO-Hygiene.
Kurz gesagt: Wählen Sie Monitoring Plan, wenn Sie eine verlässliche Frühwarnung und eine Beweiskette wollen und es Ihnen recht ist, Behebungen nach Bedarf kalkulieren zu lassen. Wählen Sie Store Care Plan, wenn Sie möchten, dass jemand die kleinen Dinge jeden Monat unauffällig in Ordnung hält. Viele Inhaber beginnen mit Monitor und steigen auf, sobald sie sehen, wie viel Routinearbeit sie lieber abgeben würden.
Store Care Plan hält Ihren PrestaShop-Shop gesund und gibt Ihnen eine echte Person, die sich um die kleinen Dinge kümmert, die sich sonst anstauen. Es ist die praktische Mitte unserer Care Plans: Überwachung plus ein monatlicher Pool an Expertenstunden, sodass Probleme sowohl erkannt als auch behandelt werden.
Was enthalten ist
- Alles aus Monitoring Plan — kontinuierliche Uptime-, Cron- und Kern-Gesundheitsüberwachung mit sofortigen Alarmen, sodass Sie stets wissen, wenn etwas nicht stimmt.
- Sicherheits- & Performance-Prüfungen — Modul- und Konfigurationswarnungen plus Regressionsüberwachung, sodass eine Änderung, die Ihren Shop still und leise verschlechtert, gemeldet wird.
- 2 Stunden Expertenarbeit pro Monat (Obergrenze 6h) — die Konfigurations-, Cache-, Cron- und Modulbehebungen sowie offensichtlichen PHP-Fehler, die sich sonst zu einem Rückstau ansammeln.
- Live-Dashboard + Monatsbericht — Gesundheitswerte, Vorfälle, durchgeführte Maßnahmen und genutzte Stunden, sodass Sie genau sehen können, wohin Ihre Zeit geflossen ist.
Wie die Stunden funktionieren
Store Care Plan enthält 2 Expertenstunden pro Monat. Die Stunden sind nicht übertragbar, und alles darüber hinaus wird in 15-Minuten-Schritten bis zu einer monatlichen Obergrenze von 6 Stunden abgerechnet — sodass ein arbeitsreicher Monat Ihnen nie davonläuft. Die Stunden sind auf die kleine, wiederkehrende Wartung ausgerichtet, die einen Shop am Laufen hält; ein größeres Projekt (eine neue Funktion, ein individuelles Modul, eine Migration) wird eigenständig abgegrenzt und kalkuliert.
Service-Ziele und Berichterstattung
Store Care Plan trägt ein Ziel von 99,5% überwachter Uptime und zielt auf eine Reaktion innerhalb von 3 Geschäftsstunden bei einem P1-Vorfall — Storefront oder Checkout ausgefallen — während des Geschäftszeitfensters (Mo.–Fr., 09:00–18:00 CET). Der Monatsbericht fügt alles zusammen: Er zeigt Ihre Gesundheitswerte und ihren Trend, die aufgetretenen Vorfälle, die konkreten Maßnahmen an Ihrem Shop und wie die monatlichen Stunden genutzt wurden — eine transparente Aufzeichnung statt eines vagen “alles in Ordnung”.
Store Care Plan eignet sich für Inhaber, die ihren Shop überwacht und die Routinearbeit unauffällig erledigt haben wollen, ohne jedes Mal ein separates Angebot einzuholen, wenn etwas Kleines Aufmerksamkeit braucht. Wenn Ihre Priorität stattdessen die Sichtbarkeit in der Suche ist, kombinieren Sie es mit SEO Care Plan, das sich auf technische SEO-Hygiene konzentriert.
Store Care Plan enthält 2 Expertenstunden pro Monat. Die Stunden sind nicht übertragbar, und alles darüber hinaus wird in 15-Minuten-Schritten bis zu einer monatlichen Obergrenze von 6 Stunden abgerechnet — sodass ein arbeitsreicher Monat Ihnen nie davonläuft und Sie Ihre maximale Belastung stets im Voraus kennen.
Wie die Stunden strukturiert sind
- 2 Stunden enthalten jeden Monat — Ihr fester Anspruch für routinemäßige Wartung.
- Nicht übertragbar — jeder Monat beginnt frisch; ungenutzte Zeit wird nicht angespart. Die Stunden sind dafür gedacht, Ihren Shop aktuell zu halten, nicht ein Guthaben anzuhäufen.
- Mehrverbrauch in 15-Minuten-Schritten — wenn ein Monat mehr als die enthaltenen 2 Stunden braucht, wird zusätzliche Arbeit präzise abgerechnet, in Viertelstundenblöcken statt auf die volle Stunde aufgerundet.
- Gedeckelt bei 6 Stunden — die monatlichen Gesamtstunden sind bei 6 gedeckelt, sodass selbst ein ungewöhnlich anspruchsvoller Monat eine vorhersehbare Obergrenze hat.
Wofür die Stunden da sind — und wofür nicht
Die Stunden decken die kleine, wiederkehrende Arbeit ab, die einen PrestaShop-Shop gesund hält: Konfiguration, Cache, Cron, Moduleinstellungen und offensichtliche PHP-Fehler. Sie sind bewusst auf die stetige Wartung ausgerichtet, die sich sonst anstaut.
Ein größeres Arbeitspaket — eine neue Funktion, ein individuelles Modul, eine Datenmigration, ein Redesign — fällt außerhalb der monatlichen Stunden und wird eigenständig abgegrenzt und kalkuliert. Das hält den monatlichen Anspruch fokussiert und Ihre Rechnung vorhersehbar: routinemäßige Pflege innerhalb des Plans, Projekte transparent bepreist und vor Beginn genehmigt.
Alles nachverfolgt
Jede Maßnahme und die dafür verbrauchten Stunden werden auf Ihrem Live-Dashboard festgehalten und im Monatsbericht zusammengefasst, sodass Sie genau sehen können, wie die 2 Stunden genutzt wurden und ob ein Mehrverbrauch angefallen ist. Wenn Sie durchgängig mehr brauchen, als die Obergrenze zulässt, ist das ein klares Signal, dass es sich lohnt, ein eigenes Vorhaben abzugrenzen, statt einen Wartungsplan zu überdehnen.
Bei einem P1-Vorfall — Ihre Storefront oder Ihr Checkout ausgefallen — zielt Store Care Plan auf eine Reaktion innerhalb von 3 Geschäftsstunden (Mo.–Fr., 09:00–18:00 CET). Der Plan trägt zudem ein Ziel von 99,5% überwachter Uptime, sodass Probleme schnell erkannt und behandelt werden, statt vor sich hin zu schwelen.
Was P1 bedeutet
P1 ist den Problemen vorbehalten, die Sie direkt am Handeln hindern: Ihre Storefront lädt nicht, oder der Checkout schlägt fehl, sodass Kunden eine Bestellung nicht abschließen können. Dies sind die höchstpriorisierten Ereignisse, weil bei einem PrestaShop-Shop jede Minute zählt, und sie sind es, um die das Reaktionsziel herum aufgebaut ist.
Wie die Reaktion neben der Überwachung funktioniert
Store Care Plan enthält alles aus Monitoring Plan, sodass ein P1-Ereignis durch kontinuierliche Prüfungen in dem Moment erkannt und gemeldet wird, in dem es passiert. Das Reaktionsziel von 3 Geschäftsstunden regelt dann, wie schnell wir während des Geschäftszeitfensters mit der Bearbeitung des Vorfalls beginnen. Die Erkennung ist sofort; das Reaktionsziel deckt den Beginn der praktischen Aufmerksamkeit ab.
Ein ehrliches Wort zur Uptime
Das Ziel von 99,5% überwachter Uptime ist genau das — ein Ziel, gegen das wir überwachen und über das wir berichten, kein Versprechen von null Ausfallzeit. Kein ehrlicher Anbieter kann garantieren, dass ein Shop niemals ausfällt. Worauf sich Store Care Plan verpflichtet, ist eine schnelle Erkennung und ein definiertes Reaktionsfenster sowie eine transparente Aufzeichnung der Vorfälle und ihrer Behandlung in Ihrem Monatsbericht.
Denken Sie daran, dass die monatliche Lösungsarbeit auf Ihre 2 Expertenstunden (Obergrenze 6h, nicht übertragbar) zurückgreift; eine wirklich große Wiederherstellung oder ein Projekt jenseits der Routinebehebungen wird separat abgegrenzt und kalkuliert. Die Kombination — kontinuierliche Überwachung, ein P1-Reaktionsziel von 3 Geschäftsstunden und ein Ziel von 99,5% überwachter Uptime — bedeutet, dass Probleme schnell aufgedeckt und angegangen werden, statt spät entdeckt und vor sich hin schwelen gelassen.
Die monatlichen Stunden von Store Care Plan decken die kleinen Dinge ab, die einen Shop gesund halten: Konfiguration, Cache, Cron, Moduleinstellungen und offensichtliche PHP-Fehler. Es ist die stetige, unspektakuläre Wartung, die sich sonst still und leise anstaut und, sich selbst überlassen, zu einem viel größeren Problem wird.
Typische Arbeit, die die Stunden abdecken
- Konfiguration — Anpassen von PrestaShop- und Moduleinstellungen, Korrigieren verstellter Optionen, Aufräumen von Shop-Parametern.
- Cache — Leeren und Neuaufbau des Caches, wenn er veraltete Seiten oder seltsames Verhalten verursacht, und Beheben cache-bedingter Störungen.
- Cron — stehengebliebene oder defekte geplante Aufgaben wieder zum Laufen bringen, sodass Hintergrundjobs ihre Arbeit erledigen.
- Moduleinstellungen — Korrigieren falsch konfigurierter Module und der kleinen Konflikte, die nach Updates auftauchen.
- Offensichtliche PHP-Fehler — Beheben der eindeutigen Fatals und Warnungen, die einen Shop verschlechtern.
Was außerhalb der monatlichen Stunden liegt
Alles Größere — eine neue Funktion, ein individuelles Modul, eine Theme-Änderung, eine Datenmigration — wird separat abgegrenzt und kalkuliert. Das ist beabsichtigt: Es hält die monatlichen Stunden darauf fokussiert, Sie reibungslos am Laufen zu halten, und es hält Ihre Rechnung vorhersehbar, mit größerer Arbeit transparent bepreist und vor Beginn genehmigt.
Wie die Zeit verwaltet wird
Sie haben 2 Expertenstunden pro Monat. Die Stunden sind nicht übertragbar, Mehrverbrauch wird in 15-Minuten-Schritten abgerechnet, und die Gesamtmenge ist bei 6 Stunden im Monat gedeckelt — sodass selbst ein arbeitsreicher Monat vorhersehbar bleibt. Jede Aufgabe und die dafür genutzten Stunden werden auf Ihrem Live-Dashboard protokolliert und im Monatsbericht zusammengefasst, sodass Sie genau sehen können, was getan wurde und wohin die Zeit floss. Wenn Sie feststellen, dass Sie bei Routinearbeit regelmäßig an die Obergrenze stoßen, ist das meist ein Zeichen, dass es sich lohnt, ein eigenes Vorhaben abzugrenzen, statt einen Wartungsplan zu überdehnen — und wir sagen Ihnen das ehrlich.
SEO Care Plan hält die technischen Grundlagen Ihres PrestaShop-SEO solide, während sich Ihr Katalog und Ihre Inhalte ständig verändern. Es ist ein fortlaufender Plan für technische Hygiene: eine regelmäßige Prüfung, Stunden zur Behebung des Gefundenen und eine ehrliche, priorisierte Sicht darauf, was als Nächstes zu tun ist — einschließlich, wann Sie nicht ausgeben müssen.
Was enthalten ist
- Monatliches technisches SEO-Audit — Indexierung, Canonicals, Metadaten, doppelte Inhalte, strukturierte Daten und Core Web Vitals, sodass die technischen Signale, auf die sich Suchmaschinen verlassen, sauber bleiben, während sich Ihr Shop entwickelt.
- Kategorie-/Produkt-SEO-Hygiene — Kategorie- und Produktseiten technisch solide halten plus Empfehlungen zur internen Verlinkung, um zu stärken, wie Seiten miteinander verbunden sind.
- 4 Stunden pro Monat (Obergrenze 8h) — Zeit, um die kleinen SEO-Probleme zu beheben, die das Audit aufdeckt, bevor sie sich ansammeln.
- Live-SEO-Dashboard + Monatsbericht — Ihr Werte-Trend über die Zeit, die angewandten Behebungen und eine priorisierte “als Nächstes tun”-Liste.
Was Dashboard und Bericht enthalten
Das Live-Dashboard verfolgt Ihre technische SEO-Gesundheit und wie sie sich entwickelt. Der Monatsbericht ergänzt die Details: was das Audit gefunden hat, welche Probleme mit den enthaltenen Stunden behoben wurden und eine klar geordnete “als Nächstes tun”-Liste, sodass die wertvollste Arbeit offensichtlich ist. Entscheidend ist, dass er Ihnen ehrlich sagt, wann Sie nicht ausgeben müssen — wir erfinden keine Arbeit, um die Stunden zu füllen.
Wie die Stunden funktionieren
SEO Care Plan enthält 4 Stunden pro Monat, um kleine SEO-Probleme zu beheben, bis zu einer Obergrenze von 8 Stunden; die Stunden sind nicht übertragbar. Der Fokus liegt darauf, Ihre SEO-Hygiene aktuell zu halten, statt Zeit anzusparen.
Eine ehrliche Abgrenzung
Bei SEO Care Plan geht es um technische SEO-Hygiene — es gibt keine Garantien für Rankings oder Traffic, weil kein ehrlicher Anbieter diese versprechen kann. Und es ist kein Uptime-Plan: Für Storefront-/Checkout-Überwachung und Ausfallreaktion kombinieren Sie es mit Store Care Plan (oder wählen Sie Complete Care Plan, das beides enthält). Was SEO Care Plan leistet, ist, technische Regressionen früh abzufangen, sodass ein solides Fundament solide bleibt.
SEO Care Plan enthält 4 Stunden pro Monat, um kleine SEO-Probleme zu beheben, bis zu einer Obergrenze von 8 Stunden. Die Stunden sind nicht übertragbar — jeder Monat ist eine frische Zuteilung, die darauf ausgerichtet ist, Ihre SEO-Hygiene aktuell zu halten, statt Zeit anzusparen.
Wie die Stunden strukturiert sind
- 4 Stunden enthalten jeden Monat — Ihre feste Zuteilung zur Behebung der kleinen technischen SEO-Probleme, die das monatliche Audit aufdeckt.
- Nicht übertragbar — ungenutzte Zeit wird nicht vorgetragen. Beim Plan geht es darum, Monat für Monat aktuell zu bleiben, nicht ein Guthaben anzuhäufen, das Sie womöglich nie nutzen.
- Gedeckelt bei 8 Stunden — sodass selbst ein Monat mit mehr zu beheben eine vorhersehbare Obergrenze hat.
Wofür die Stunden da sind
Die Stunden sind auf die stetige, kleine SEO-Hygienearbeit ausgerichtet, die Ihr technisches Fundament sauber hält, während sich Ihr Katalog und Ihre Inhalte verändern: Beheben von Indexierungs- und Canonical-Problemen, Aufräumen von Metadaten, Adressieren doppelter Inhalte, Korrigieren strukturierter Daten, Umsetzen von Empfehlungen zur internen Verlinkung und Beheben der Kategorie- und Produktseitenprobleme, die das Audit meldet. Sie sind bewusst auf Wartung ausgerichtet statt auf große Kampagnen.
Wo größere Arbeit hineinpasst
Ein großes, einmaliges Vorhaben — eine tiefe Diagnose, ein großes Inhalts- oder Strukturprojekt — sitzt außerhalb der monatlichen Stunden und wird separat behandelt; ein einmaliges SEO-Audit ist die natürliche Einstiegsrampe für eine solche Tiefenanalyse. SEO Care Plan hält dann das Fundament Monat für Monat gesund.
Eine ehrliche Anmerkung zur “nicht übertragbar”-Regel: Sie ist nicht da, um Sie Zeit verlieren zu lassen — sie spiegelt wider, wofür der Plan da ist. Wenn es in einem bestimmten Monat wirklich nichts Dringendes zu beheben gibt, sagt der Monatsbericht das klar. Wir sagen Ihnen das lieber, als Arbeit zu erfinden, um die Stunden zu verbrauchen. Und um die Erwartungen klar zu setzen: SEO Care Plan macht keine Versprechen über Rankings oder Traffic; es hält Ihr technisches SEO solide, was das Fundament ist, von dem diese Ergebnisse abhängen.
Die Standardreaktion bei SEO Care Plan beträgt 1 Werktag; ein kritisches Problem — zum Beispiel ein versehentliches noindex auf wichtigen Seiten — wird innerhalb von 8 Geschäftsstunden behandelt.
Was als kritisch zählt
Kritisch bedeutet ein technisches SEO-Problem, das Sie aktiv Sichtbarkeit kosten kann, wenn es nicht behoben wird — das klarste Beispiel ist ein versehentliches noindex auf wichtigen Seiten, das diese still und leise aus den Suchergebnissen nehmen kann. Probleme wie diese erhalten die schnellere Behandlung von 8 Geschäftsstunden; routinemäßige Punkte folgen der Standardreaktion von 1 Werktag.
Ist Ausfallzeit abgedeckt? Nein — und das ist bewusst so
SEO Care Plan ist kein Uptime-Plan. Es überwacht und pflegt Ihr technisches SEO; es überwacht nicht Ihre Storefront oder Ihren Checkout auf Ausfälle, und es trägt kein Uptime-Ziel oder einen SLA für die Ausfallreaktion. Wir halten diese Unterscheidung klar, sodass Sie sich nie für die falsche Aufgabe auf den falschen Plan verlassen.
Wenn Sie Storefront-/Checkout-Überwachung und Ausfallreaktion brauchen, kombinieren Sie SEO Care Plan mit Store Care Plan — das kontinuierliche Uptime-, Cron- und Kern-Gesundheitsüberwachung, ein Ziel von 99,5% überwachter Uptime und eine P1-Reaktion innerhalb von 3 Geschäftsstunden hinzufügt. Alternativ wählen Sie Complete Care Plan, das sowohl SEO Care Plan als auch die Uptime-Seite in einem einzigen Plan enthält.
Die ehrliche Zusammenfassung
SEO Care Plan gibt Ihnen definierte Reaktionsfenster für SEO-Arbeit — 1 Werktag Standard, 8 Geschäftsstunden für kritische Probleme wie ein versehentliches noindex — und hält Ihr technisches SEO gesund. Für alles, was damit zu tun hat, dass Ihr Shop tatsächlich online bleibt, ist das die Aufgabe von Store Care Plan. Die beiden zu kombinieren (oder Complete Care Plan zu nutzen) deckt beide Bereiche sauber ab.
Die beiden arbeiten auf unterschiedlichen Maßstäben und Zeithorizonten. Das SEO-Audit ist eine einmalige, tiefe Diagnose — ein gründlicher Blick auf Ihren Shop zu einem einzigen Zeitpunkt, der in einem priorisierten Plan mündet. SEO Care Plan ist die fortlaufende Beziehung: eine monatliche technische Prüfung, Stunden zur Behebung des Gefundenen und eine ehrliche “als Nächstes tun”-Liste, während sich Ihr Shop weiter verändert.
Das einmalige SEO-Audit
Ein SEO-Audit ist eine tiefe Diagnose zu einem bestimmten Zeitpunkt. Es untersucht Ihr technisches SEO im Detail und übergibt Ihnen einen priorisierten Plan dessen, was anzugehen ist. Es ist der ideale Weg, um zu verstehen, wo Sie stehen und was am wichtigsten ist — eine vollständige Momentaufnahme und Roadmap zu diesem Zeitpunkt. Was es nicht tut, ist danach weiter zu beobachten; einmal geliefert, ist es ein festes Bild eines Shops, der sich unweigerlich weiterentwickeln wird.
SEO Care Plan, der fortlaufende Plan
SEO Care Plan macht daraus eine kontinuierliche Disziplin. Jeden Monat führt es ein technisches SEO-Audit durch (Indexierung, Canonicals, Metadaten, doppelte Inhalte, strukturierte Daten, Core Web Vitals), gibt Ihnen 4 Stunden pro Monat (Obergrenze 8h, nicht übertragbar), um die kleinen Probleme zu beheben, die es aufdeckt, und stellt ein Live-Dashboard plus einen Monatsbericht mit einer priorisierten “als Nächstes tun”-Liste bereit. Weil sich Ihr Katalog und Ihre Inhalte ständig verändern, ist dies das, was technische Regressionen abfängt, bevor sie still und leise frühere Arbeit zunichtemachen.
Wie sie zusammenpassen
Sie ergänzen sich, statt zu konkurrieren. Ein einmaliges SEO-Audit ist die perfekte Einstiegsrampe — die Tiefenanalyse, die Ihre Ausgangsbasis und Prioritäten festlegt. SEO Care Plan hält dann dieses Fundament Monat für Monat solide, behebt die kleinen Dinge früh und sagt Ihnen ehrlich, wenn nichts Dringendes zu tun ist.
Ein ehrlicher Vorbehalt gilt für beide: Keines verspricht Rankings oder Traffic. Das Audit diagnostiziert und der Care-Plan pflegt Ihr technisches SEO — das Fundament, von dem diese Ergebnisse abhängen — statt ein Ergebnis zu garantieren, das kein ehrlicher Anbieter versprechen kann.
Growth Care Plan ist ein monatlicher Retainer, der Disziplin in den Teil Ihres PrestaShop-Shops bringt, den die meisten Teams still und leise treiben lassen: die Datenschicht, von der jede Marketingentscheidung abhängt. Es ist um einen einfachen Gedanken herum gebaut — bevor Sie mehr für Werbung ausgeben oder mehr Traffic jagen, müssen die Zahlen, an denen Sie sich messen, vertrauenswürdig sein. Growth Care Plan hält Tracking, Feeds und Conversion-Messung ehrlich und gibt Ihnen eine wiederkehrende zweite Meinung dazu, wo Budget verschwendet wird.
Was jeden Monat enthalten ist
- GA4- und Event-Tracking-Gesundheit — wir prüfen, dass GA4 korrekt auslöst, dass zentrale E-Commerce-Events (Ansicht, In-den-Warenkorb, Checkout, Kauf) vorhanden sind und nicht doppelt zählen und dass die Conversion-Tracking-Validierung bestätigt, dass die Werte, die Ihre Werbeplattformen erfassen, tatsächlich mit echten Bestellungen übereinstimmen.
- Produktfeed-Prüfung — wir gehen den Feed auf Fehler und Ablehnungen durch, melden fehlende oder fehlerhafte Attribute und führen einen Plausibilitätscheck für Google- und Social-Ads durch, sodass Ihr Katalog zulässig und korrekt dargestellt ist.
- Kampagnen- und Landing-Empfehlungen — ehrlicher, priorisierter Rat zu Struktur, Targeting und Landingpages, einschließlich Modul-Eignungsberatung, wenn ein PrestaShop-Modul ein Problem besser lösen würde als individuelle Arbeit.
- 4 Stunden pro Monat praktische Zeit (Obergrenze 8h, nicht übertragbar) für kleine Tracking- und Feed-Behebungen — die Art von Korrekturen, die sonst monatelang auf einem Rückstau sitzen.
Wie es funktioniert
Alles berichtet in ein Live-Marketing-Dashboard plus einen Monatsbericht. Das Dashboard zeigt Tracking- und Feed-Status auf einen Blick; der Bericht fasst zusammen, was wir geprüft, was wir innerhalb der enthaltenen Stunden geändert haben und welche Empfehlungen am wichtigsten sind. Er enthält bewusst einen “damit aufhören”-Abschnitt — die Ausgaben, Segmente oder Taktiken, die die Daten Ihnen zu streichen nahelegen — weil das Entfernen von Verschwendung oft der schnellste Gewinn ist.
Wichtig ist: Bei Growth Care Plan geht es um das Fundament, nicht um das tägliche Kampagnen- oder Gebotsmanagement, und es garantiert niemals ROAS oder Genehmigungen der Werbeplattformen. Wir sorgen dafür, dass die Messung sauber und der Feed gesund ist, sodass Sie — oder Ihr Media-Buyer — Entscheidungen aus Daten treffen können, denen Sie tatsächlich vertrauen können. Shops, die Betrieb und SEO in derselben Beziehung mitbetreut haben möchten, können auf Complete Care Plan aufsteigen, das Store Care Plan, SEO Care Plan und Growth Care Plan unter einem verantwortlichen Team vereint.
Nein — Growth Care Plan führt nicht Ihre Kampagnen und garantiert niemals ROAS oder Genehmigungen der Werbeplattformen. Es ist bewusst um das Fundament herum abgegrenzt statt um das tägliche Kampagnen- oder Gebotsmanagement, und wir halten diese Grenze ehrlich, weil das die einzige verantwortungsvolle Art ist, über bezahlte Medien zu sprechen.
Warum wir keine Ergebnisse versprechen
Die Rendite auf Werbeausgaben hängt von Faktoren ab, die keine Agentur kontrolliert: Ihren Margen, Ihrer Preisgestaltung gegenüber Wettbewerbern, Saisonalität, Auktionsdynamik, Kreativität und den eigenen Genehmigungs- und Prüfsystemen der Werbeplattformen. Wer eine ROAS-Zahl oder garantierte Genehmigungen verspricht, spielt entweder mit Ihrem Budget oder absorbiert das Risiko still und leise in seine Preisgestaltung. Wir sind lieber ehrlich zu Ihnen. Dasselbe gilt für die Genehmigungen der Werbeplattformen — Google und die sozialen Netzwerke entscheiden über die Zulässigkeit, und wir können ihre Prüfung nicht außer Kraft setzen.
Was Growth Care Plan tatsächlich liefert
- Tracking-Gesundheitsprüfung — GA4- und Event-Integrität plus Conversion-Tracking-Validierung, sodass die Zahlen, auf die Ihre Kampagnen hin optimieren, echt sind, nicht Phantom- oder doppelt gezählte Conversions.
- Produktfeed-Prüfung — Abfangen von Fehlern und Ablehnungen, bevor sie still und leise die Reichweite drosseln, und ein Plausibilitätscheck für Google/Social-Ads.
- Ehrliche Empfehlungen — einschließlich einer “damit aufhören”-Sicht darauf, wo Budget verloren geht, und Modul-Eignungsberatung, wo ein PrestaShop-Modul die bessere Antwort ist.
Der Wert ist einfach: Wenn Ihre Messung sauber ist, ruht jede Entscheidung, die Sie treffen — Budget, Gebote, Zielgruppen, Landingpages — auf Daten, denen Sie vertrauen können, statt auf Raterei. Dieses Fundament ist es, das Kampagnenmanagement (ob Sie es intern oder mit einem Media-Buyer betreiben) tatsächlich funktionieren lässt. Wenn Sie ein einziges Team wünschen, das für Betrieb, SEO und das Tracking-Fundament gemeinsam verantwortlich ist, vereint Complete Care Plan alle drei, wobei seine Stunden in Betrieb, SEO, Tracking und Feeds fließen — nicht in das Betreiben von Kampagnen.
Growth Care Plan trägt eine klare, zweistufige Reaktionsverpflichtung, sodass Sie stets wissen, was Sie erwarten können.
- Standardreaktion: 1 Werktag. Bei routinemäßigen Anfragen — einer Tracking-Frage, einer Feed-Anpassung, einer zu besprechenden Empfehlung oder einer kleinen Behebung innerhalb Ihrer enthaltenen Stunden — bestätigen wir und beginnen die Arbeit innerhalb eines Werktags.
- Tracking-Ausfall bei aktiver bezahlter Kampagne: innerhalb von 8 Geschäftsstunden. Wenn das Tracking bei einer laufenden bezahlten Kampagne ausfällt, kostet jede Stunde defekter Daten echtes Geld — das Budget gibt weiter aus, während Ihre Messung blind ist. Diese Fälle werden eskaliert und innerhalb von 8 Geschäftsstunden behandelt.
Warum die schnellere Stufe wichtig ist
Ein defektes GA4-Tag, ein fehlauslösender Conversion-Pixel oder eine Feed-Ablehnung während einer aktiven Kampagne verliert nicht nur einen Tag an Berichterstattung — es kann still und leise die Optimierung der Plattform verzerren, Ihre Gebotsabgabe in die Irre führen und Ausgaben verschwenden, bis es entdeckt wird. Die Stufe von 8 Geschäftsstunden existiert speziell für dieses Szenario: die Momente, in denen die Integrität der Messung Geld blutet und ein voller Tag Wartezeit nicht akzeptabel ist.
Dies sind Reaktionsverpflichtungen — wie schnell wir uns einschalten und die Arbeit beginnen — keine Versprechen, dass sich jedes Problem sofort löst, da manche Behebungen von Drittplattformen (Google, Meta, GA4) und deren eigenen Prüffristen abhängen. Die enthaltenen 4 Stunden pro Monat (Obergrenze 8h, nicht übertragbar) decken die praktische Behebung für kleine Tracking- und Feed-Korrekturen ab. Wenn Ihr Shop auch eine betriebliche Vorfallreaktion braucht, fügt Complete Care Plan eine Stufe von 3 Geschäftsstunden für Storefront- und Checkout-Vorfälle und ein optionales 24/7-Notfall-Add-on hinzu.
Growth Care Plan ist für Shops gebaut, die aktiv für Werbung ausgeben — Google, Shopping oder Social — und die Datenschicht unter diesen Ausgaben ehrlich gehalten haben wollen. Wenn Sie echtes Budget in bezahlte Akquise investieren, summieren sich die Kosten von schlechtem Tracking oder einem still und leise abgelehnten Feed schnell, und dieser Plan existiert, um dieses Abdriften zu stoppen.
Sie passen gut, wenn…
- Sie bezahlte Kampagnen betreiben und genaues, validiertes Conversion-Tracking brauchen, sodass Ihre Berichterstattung und die Optimierung der Plattformen mit echten Zahlen arbeiten.
- Sie einen sauberen Produktfeed wollen — Fehler und Ablehnungen früh abgefangen statt entdeckt, wenn die Reichweite einbricht.
- Sie eine monatliche zweite Meinung dazu schätzen, wo Budget verschwendet wird, einschließlich einer expliziten “damit aufhören”-Sicht, plus Modul-Eignungsberatung für Ihr PrestaShop-Setup.
- Sie (oder Ihr Media-Buyer) das eigentliche Kampagnen- und Gebotsmanagement übernehmen und einfach das Fundament solide gehalten haben müssen — denn Growth Care Plan führt keine Kampagnen und garantiert keinen ROAS.
Sie möchten vielleicht mehr, wenn…
Wenn Sie auch Betrieb (Überwachung, Kern-Gesundheitsprüfungen und kleine Behebungen wie Konfiguration, Cache, Cron und Moduleinstellungen) und technisches SEO in derselben Beziehung betreut haben wollen, vereint Complete Care Plan Store Care Plan, SEO Care Plan und Growth Care Plan zu einem verantwortlichen Team mit 10 Stunden pro Monat, einer vierteljährlichen strategischen Überprüfung und einem einzigen Executive-Bericht — statt drei Pläne parallel zu betreiben. Growth Care Plan lässt Sie schmal mit nur dem Marketing-Daten-Fundament beginnen; Complete Care Plan ist der Aufstieg, wenn Sie den gesamten Shop unter einem Dach wollen. Die enthaltenen 4 Stunden pro Monat (Obergrenze 8h, nicht übertragbar) halten die kleinen Behebungen in Bewegung, ohne jedes Mal ein separates Angebot.
Complete Care Plan vereint Store Care Plan, SEO Care Plan und Growth Care Plan zu einer verantwortlichen Beziehung, sodass ein einziges Team für den gesamten Shop verantwortlich ist, statt dass drei Anbieter jeweils einen Ausschnitt besitzen. Es ist für Shops konzipiert, die der stückweisen Betreuung entwachsen sind und Betrieb, technisches SEO und das Marketing-Daten-Fundament unter regelmäßiger, verzahnter Überprüfung gehalten haben wollen.
Was enthalten ist
- Alles aus Store Care Plan — Überwachung, Kern-Gesundheitsprüfungen und kleine betriebliche Behebungen wie Konfiguration, Cache, Cron, Moduleinstellungen und offensichtliche PHP-Fehler.
- Alles aus SEO Care Plan — technische SEO-Gesundheit unter Überprüfung gehalten, sodass der Shop crawlbar, indexierbar und strukturell solide bleibt.
- Alles aus Growth Care Plan — GA4- und Event-Tracking-Gesundheit, Conversion-Tracking-Validierung, Produktfeed-Prüfung und ehrliche Empfehlungen.
- 10 Stunden pro Monat (Obergrenze 18h, nicht übertragbar) über alles hinweg gebündelt — die Stunden fließen in Betrieb, SEO, Tracking und Feeds, nicht in das Betreiben von Werbekampagnen.
- Vierteljährliche strategische Überprüfung, plus Modul-Eignungs- und Theme-Eignungsberatung für Ihren PrestaShop-Stack.
Wie es funktioniert
Statt drei zusammenhanglosen Berichten erhalten Sie ein Executive-Dashboard plus einen Monatsbericht, das alles zusammenführt: jeden Gesundheitswert, das Stundenkonto, das genau zeigt, wohin die Zeit floss, die durchgeführten Maßnahmen, offene Risiken und eine Roadmap für den nächsten Monat. Das bedeutet eine einzige Prioritätenliste — das Team entscheidet, wo die Stunden dieses Monats über Betrieb, SEO und Tracking hinweg den meisten Wert schaffen, statt dass drei Pläne um Aufmerksamkeit konkurrieren.
Es lohnt sich, klar zu sagen, was Complete Care Plan nicht ist: Es führt keine Kampagnen, verwaltet keine Gebote und garantiert keine Rankings, keinen Traffic und keinen ROAS. Wie bei den einzelnen Care-Plänen ist der Ton sachlich und ehrlich — es hält die Fundamente stark und sagt Ihnen klar, was als Nächstes zu tun sich lohnt. Wenn Sie nur einen dieser Bereiche brauchen, lassen Sie die Einzelpläne (Store Care Plan, SEO Care Plan, Growth Care Plan) schmaler beginnen und später aufsteigen.
Complete Care Plan enthält 10 Stunden pro Monat (nicht übertragbar, Obergrenze 18h) praktische Zeit, gebündelt und über Betrieb, SEO, Tracking und Feeds verteilt. Weil es ein einziger gemeinsamer Pool ist statt drei separater Zuteilungen, kann das Team die Stunden dorthin lenken, wo sie in einem bestimmten Monat den meisten Wert schaffen — in einem Monat eine technische SEO-Behebung, im nächsten eine Tracking-Reparatur oder eine Feed-Bereinigung — ohne drei Budgets zu jonglieren. Die Stunden fließen in betriebliche, SEO-, Tracking- und Feed-Arbeit; sie werden nicht für das Betreiben von Werbekampagnen aufgewendet.
Reaktions-SLAs
- P1-Storefront-/Checkout-Vorfälle — innerhalb von 3 Geschäftsstunden. Wenn der Shop ausgefallen ist oder Kunden nicht auschecken können, blutet der Umsatz von Minute zu Minute, sodass diese das schnellste Einschalten erhalten.
- SEO-/Marketing-Probleme — innerhalb von 1 Werktag. Wichtige, aber nicht stündlich umsatzkritische Arbeit — Ranking-Signale, Tracking-Fragen, Feed-Anpassungen — wird innerhalb eines Werktags bestätigt und begonnen.
Uptime und Rund-um-die-Uhr-Abdeckung
Complete Care Plan zielt auf 99,7% überwachte Uptime. Das ist ein Überwachungs- und Reaktions-ziel — wir beobachten die Verfügbarkeit kontinuierlich und reagieren gemäß den obigen SLAs — keine Garantie von null Ausfallzeit, da Hosting, Netzwerke und Drittdienste alle außerhalb unserer Kontrolle ausfallen können. Für Shops, die Abdeckung außerhalb der Geschäftszeiten brauchen, gibt es ein optionales 24/7-Notfall-Add-on, das die Vorfallreaktion auf rund um die Uhr ausweitet.
Dies sind Reaktionsverpflichtungen — wie schnell wir uns einschalten und die Arbeit beginnen — wobei die eigentliche Behebung auf die monatlichen Stunden zurückgreift (und die 18h-Obergrenze für ungewöhnlich arbeitsreiche Monate). Es ist dieselbe ehrliche Einordnung wie bei den einzelnen Care-Plänen: klare Stufen, ein sachliches Uptime-Ziel und keine Ergebnisversprechen.
Die Servicebereiche sind so oder so dieselben Bausteine — der Unterschied liegt in Verantwortlichkeit und Koordination. Kaufen Sie Store Care Plan, SEO Care Plan und Growth Care Plan separat, erhalten Sie drei Beziehungen, drei Rückstände und drei Berichte, von denen jeder seine eigene Ecke optimiert. Mit Complete Care Plan erhalten Sie ein Team, das für den gesamten Shop verantwortlich ist, was verändert, wie die Arbeit tatsächlich abläuft.
Eine Prioritätenliste, nicht drei
Statt dreier um Aufmerksamkeit konkurrierender Pläne erzeugt Complete Care Plan eine einzige Prioritätenliste und einen Executive-Bericht — jeden Wert, das Stundenkonto, durchgeführte Maßnahmen, offene Risiken und die Roadmap für den nächsten Monat an einem Ort. Wenn etwas in diesem Monat mehr zählt als im letzten, lenkt das Team den gemeinsamen Aufwand einfach dorthin, statt dass Sie zwischen separaten Anbietern vermitteln.
Ein kombinierter, flexiblerer Stundenpool
Die 10 Stunden pro Monat von Complete Care Plan (Obergrenze 18h, nicht übertragbar) liegen in einem Pool über Betrieb, SEO, Tracking und Feeds. Das ist flexibler als drei feste Zuteilungen: Ein Monat, der schwer auf technischem SEO und leicht auf Tracking liegt, nutzt die Stunden einfach dort, wo sie gebraucht werden, statt Zeit in einem Plan stranden zu lassen, während ein anderer knapp läuft.
Strategie, die alles verbindet
Die vierteljährliche strategische Überprüfung verbindet Betrieb, SEO und Marketing zu einer einheitlichen Stoßrichtung — zum Beispiel sicherzustellen, dass eine SEO-Änderung, eine Tracking-Behebung und ein betriebliches Update einander verstärken, statt in unterschiedliche Richtungen zu ziehen. Kaufen Sie die Pläne einzeln, besitzt niemand diese übergreifende Sicht.
Kurz gesagt: Separat erhalten Sie drei kompetente, aber isolierte Dienste; kombiniert erhalten Sie ein einziges verantwortliches Team, einen Bericht, einen flexiblen gemeinsamen Stundenpool und eine vierteljährliche strategische Sicht. Complete Care Plan macht weiterhin keine Ergebnisgarantien — keine versprochenen Rankings, keinen Traffic, keinen ROAS — es macht das Ganze nur einfacher, von einem Ort aus zu betreiben. Wenn Sie wirklich nur einen Bereich brauchen, ist es vollkommen sinnvoll, mit dem Einzelplan zu beginnen.
Complete Care Plan ist für ernsthafte Shops, die ein einziges Team wollen, das dafür verantwortlich ist, die Fundamente von Betrieb, technischem SEO, Tracking und Feeds unter regelmäßiger Überprüfung zu halten — und eine ehrliche Stimme dazu, was über Betrieb, SEO und Marketing hinweg als Nächstes zu tun sich lohnt. Wenn Sie den Punkt erreicht haben, an dem das Jonglieren separater Anbieter (oder alles selbst zu machen) Sie mehr an Koordination kostet, als es einspart, ist dies der Plan, der es zusammenführt.
Sie passen gut, wenn…
- Sie einen umsatzrelevanten PrestaShop-Shop betreiben, bei dem Ausfallzeit, ein defekter Checkout oder ein Tracking-Ausfall echte Kosten verursachen, und Sie klare Reaktions-SLAs dahinter wollen.
- Sie ein verantwortliches Team über Betrieb, technisches SEO und die Marketing-Datenschicht hinweg wollen — eine einzige Prioritätenliste und einen Executive-Bericht statt dreier zusammenhangloser.
- Sie eine vierteljährliche strategische Überprüfung schätzen, die Betrieb, SEO und Marketing verbindet, plus Modul-Eignungs- und Theme-Eignungsberatung für Ihren Stack.
- Sie einen ehrlichen, sachlichen Partner schätzen — einen, der die Fundamente stark hält, Risiken klar meldet und keine Versprechen über Rankings, Traffic oder ROAS macht.
Sie ziehen es vielleicht vor, schmaler zu beginnen, wenn…
Wenn Sie gerade nur einen dieser Bereiche brauchen, lassen die einzelnen Care-Pläne Sie dort beginnen, wo der Schmerz sitzt: Store Care Plan für betriebliche Stabilität, SEO Care Plan für technische SEO-Gesundheit oder Growth Care Plan für das Marketing-Daten-Fundament. Sie können jederzeit später auf Complete Care Plan aufsteigen, wenn Sie alles unter einem Dach wollen. Die 10 Stunden pro Monat des kombinierten Plans (Obergrenze 18h, nicht übertragbar), über alle Bereiche gebündelt, und sein einziges Executive-Dashboard sind das, was ihn zur natürlichen Heimat für Shops macht, die dem Einzelnbetreuen dieser Dinge entwachsen sind — wobei die Stunden in Betrieb, SEO, Tracking und Feeds fließen statt in das Betreiben von Kampagnen.
hide-Aktion auf ausgewählte Versanddienst-Referenzen anwenden.hide entfernt den betroffenen Versanddienst, wenn seine Regel zutrifft. show_only behält nur die betroffenen Versanddienste, wenn mindestens einer davon aktuell verfügbar ist; passende Regeln werden nach Priorität sortiert, und die gültige show-only-Aktion mit der höchsten Priorität gewinnt.actionCartGetPackageShippingCost angewendet. Auf PrestaShop 1.7 und 8 zeigt das Modul Zuschlags- und Kostenloser-Versand-Ergebnisse in Labels, Frontend-Daten und Simulatorausgabe an, verändert aber den nativ berechneten Versandpreis nicht.free_over vergleicht ihren Schwellenwert mit der Warenkorb-Zwischensumme ohne Steuer. Feste Zuschlagsbeträge werden ebenfalls steuerexklusiv konfiguriert und können während der Auswertung von der Standardwährung des Shops in die Warenkorbwährung umgerechnet werden.EvaluationRequest und führt die gemeinsame RuleEngine aus. Danach zeigt er Versanddienst-Entscheidungen, passende Regeln, Bedingungs-Traces, Zuschlagszeilen, finale Labels, ETA-Werte und Warnungen bei fehlendem Versanddienst an.NO CARRIER LEFT. In Checkout-Daten stellt das Modul has_no_carrier_left bereit; die 1.7-Frontend-Schicht kann ein Banner für fehlende Versanddienste anzeigen, und der Schutz der Versanddienstauswahl löscht einen ausgewählten Versanddienst, wenn er inzwischen ausgeblendet wurde.match_priority des Feeds, zum Beispiel ean,sku,supplier_id. Vorhandene Modulzuordnungen werden wiederverwendet, wenn sie kohärent sind, doppelte Feed-Schlüssel werden blockiert, und Treffer nur über Lieferantenreferenzen gelten standardmäßig als geringes Vertrauen.create_missing und die relevanten Synchronisationsoptionen aktiviert sind. Die Erstellung bleibt trotzdem durch Sicherheitseinstellungen wie Produkt-Erstellungslimit, Kombination-Erstellungslimit und Prozentobergrenzen für Erstellung begrenzt.location_quantities enthalten; wenn sync_location_stock aktiviert ist, zeichnet das Modul Bestand pro Standort auf und aktualisiert den Gesamtbestand des Shops mit der ausgewählten Strategie. Standorte können virtuell bleiben oder PrestaShop Advanced Stock Management-Warenlagern zugeordnet werden.Prozentsatz, einen festen Rabattbetrag oder einen festen Zielpreis innerhalb eines definierten Start- und Enddatums an.priority-Wert. Wenn mehrere Kampagnen gleichzeitig auf dasselbe Produkt zutreffen, gewinnt die Kampagne mit der höheren Priorität, sodass die Preisgestaltung vorhersehbar bleibt.Sie können entweder den regulären Verkaufspreis oder den Einkaufspreis (Kostenpreis) aktualisieren. Jeder Durchlauf bearbeitet genau ein Preisfeld, sodass ein Stapel nie beide gleichzeitig ändert. So bleiben Verkaufs- und Kostenanpassungen getrennt und nachvollziehbar.
Nach der Anmeldung sehen Kunden in ihrem Kundenkonto-Bereich einen Link zum Handelskonto, der eine Antragsseite öffnet. Dort geben sie Firmenname, USt-IdNr., Handelsreferenzen, Geschäftstyp und eine optionale Nachricht ein. Der Antrag landet anschließend zur Prüfung in einer Warteschlange in Ihrem Back Office.
Jeder Durchlauf ist eingegrenzt. Sie können alle aktiven Produkte anvisieren oder die Auswahl vor dem Anwenden auf eine einzelne Kategorie, einen Hersteller oder einen Lieferanten beschränken. Der gewählte Bereich wird mit dem Durchlauf gespeichert, sodass Sie immer wissen, welche Produkte betroffen waren.
Ja. Sie können den standardmäßigen manuellen Ablauf beibehalten, bei dem Ihr Team jeden Antrag über die Warteschlange im Back Office genehmigt oder ablehnt, oder die automatische Genehmigung aktivieren, sodass neue Anträge sofort den Handelsstatus erhalten. Das ist eine einzige Einstellung, sodass Sie manuell beginnen und später automatisieren können.
Ja. Die Vorschau listet jedes betroffene Produkt mit ID, Name, aktuellem Preis, neuem Preis und der Differenz auf, sodass Sie das genaue Ergebnis vor der Bestätigung prüfen können. Es wird nichts in den Katalog geschrieben, bevor Sie den Stapel bestätigen.
Wenn Sie einen Antrag genehmigen, wird die als Handelsgruppe konfigurierte Kundengruppe diesem Kunden hinzugefügt und als seine Standardgruppe festgelegt. Ab diesem Zeitpunkt sieht er die Großhandelspreise oder den B2B-Zugang, den Sie bereits über die PrestaShop-Kundengruppen verwalten – ohne dass Sie Gruppen manuell bearbeiten müssen.
Sie können eine prozentuale Erhöhung, prozentuale Senkung, feste Erhöhung oder feste Senkung anwenden. Senkungen werden bei null begrenzt, sodass ein Preis nie negativ werden kann. Die Werte werden mit Dezimalgenauigkeit verarbeitet.
Sie können Firmenname, USt-IdNr. und Handelsreferenzen unabhängig voneinander als Pflichtfelder festlegen, sodass das Formular zu Ihrer Prüftiefe passt. Geschäftstyp und eine freie Nachricht werden ebenfalls als Kontext erfasst, und das Formular im Shop prüft die Pflichtfelder, bevor der Antrag abgeschickt wird.
Ja. Ein Kunde, der bereits einen ausstehenden oder genehmigten Antrag hat, kann keinen weiteren einreichen, sodass Ihre Prüf-Warteschlange nicht mit Wiederholungen überfüllt wird. Stattdessen zeigt sein Kundenkonto-Bereich den aktuellen Status an – beantragen, ausstehend, aktiv oder abgelehnt.
Aktualisierungen laufen als Jobs mit geplanter Ausführungszeit, und das Modul bringt einen Cron-Endpunkt mit, damit Stapel automatisch im Hintergrund verarbeitet werden. Jobs werden während der Ausführung gesperrt, damit sich zwei Durchläufe nicht im selben Katalog überschneiden.
Optionale E-Mails halten beide Seiten auf dem Laufenden: Ihr Team kann benachrichtigt werden, wenn ein neuer Antrag eingeht, und der Kunde kann eine E-Mail erhalten, wenn sich sein Status ändert. Jede Benachrichtigung ist eine eigene Einstellung, sodass Sie nur die aktivieren, die Ihr Ablauf benötigt.
Jeder erfolgreiche Durchlauf wird mit Formel, Bereich, Preisfeld, Anzahl der betroffenen Produkte, dem ausführenden Mitarbeiter und dem Datum protokolliert. So erhält Ihr Team einen klaren Prüfpfad für sensible Preisänderungen.
Ja. Erstellen Sie ein Konto auf chatra.io, öffnen Sie dann Einstellungen > Allgemein > Widget-Code und kopieren Sie die Widget-ID aus dem Installations-Snippet. Fügen Sie diese ID in das Widget-ID-Feld des Moduls ein. Solange keine Widget-ID gespeichert ist, bleibt das Modul inaktiv und das Back-Office zeigt einen Hinweis an — das Widget lädt also nie ohne gültige ID.
Ja. Ein Schalter für die mobile Sichtbarkeit unterdrückt das Widget auf mobilen Bildschirmen, während es auf dem Desktop erhalten bleibt. Ist er ausgeschaltet, überspringt das Modul das Chatra-Skript auf Mobilgeräten vollständig — es wird kein Chat-Button auf Smartphones hinzugefügt und kein zusätzliches Skript geladen.
Nein. Das Modul stellt die integrierten URL-Routingregeln von PrestaShop im Back-Office auf saubere, ID-freie Muster um und verarbeitet die Weiterleitungen von alten zu neuen Adressen ueber einen eigenen Front-Controller. Sie muessen weder Serverkonfiguration, .htaccess noch Theme-Dateien anfassen. Bei der Deinstallation werden die urspruenglichen PrestaShop-Routingregeln wiederhergestellt.
Support Revolution läuft unter PrestaShop 1.7, 8.x und 9.x. Eine interne Kompatibilitätsschicht sorgt dafür, dass die Ticket-, Abteilungs- und Wissensdatenbank-Datenmodelle in allen drei Versionen funktionieren, sodass dasselbe ZIP überall installiert werden kann.
Die einzige Funktion mit einer zusätzlichen Voraussetzung ist die optionale IMAP-E-Mail-zu-Ticket-Verarbeitung: Sie benötigt die PHP-Erweiterung imap auf Ihrem Server. Fehlt diese Erweiterung, arbeitet der restliche Helpdesk normal — nur der E-Mail-Import steht dann nicht zur Verfügung.
Filter Revolution bindet sich über den Product-Search-Provider von PrestaShop ein und übernimmt eine Listenseite nur dann, wenn Sie für diesen Kontext eine Filtervorlage erstellt haben. Unterstützt werden die Seiten Kategorie, Suche, Hersteller, Lieferant, Bestseller, Neue Artikel und Reduzierte Artikel.
Ist der aufgerufenen Seite keine Vorlage zugewiesen, gibt das Modul die Kontrolle an PrestaShop zurück, sodass Ihre bestehende oder native Facettennavigation dort unverändert weiterläuft. So können Sie das Modul schrittweise ausrollen, Kategorie für Kategorie, statt den ganzen Shop auf einmal umzustellen. Es läuft auf PrestaShop 1.7.6 und neuer, einschließlich 8.x und 9.x.
Nein. Wenn unser Modul SEO Revolution installiert und aktiviert ist, ueberlaesst der Friendly URL Manager ihm automatisch die URL-Verarbeitung, sodass sich beide nicht um dieselben Routen streiten. Laeuft er allein, uebernimmt er die Logik fuer saubere URLs und Weiterleitungen selbst. Grundsaetzlich sollte immer nur ein URL-System aktiv sein, um widerspruechliche Umschreibungen zu vermeiden.
Ja. Die Option Gast-Tickets erlauben ist standardmäßig aktiviert, sodass ein nicht angemeldeter Besucher ein Ticket mit Name, E-Mail, Betreff und Nachricht absenden kann.
Jedes Gast-Ticket erhält einen privaten, sicheren Link mit einem 64-stelligen Token, über den der Besucher genau dieses Ticket ohne Konto verfolgen und beantworten kann. Möchten Sie eine Anmeldung erzwingen, deaktivieren Sie die Option in den Moduleinstellungen — dann können nur angemeldete Kunden Tickets erstellen.
Jede Filtergruppe kann mit dem Steuerelement angezeigt werden, das zu ihren Werten passt: Kontrollkästchen und Optionsfelder für kurze Listen, ein Dropdown für lange Listen, ein Bereichsregler für Preis- und Zahlenwerte, Farbfelder und Bildfelder.
Kunden können nach Produktattributen (etwa Größe oder Farbe), Eigenschaften, Preisspanne, Hersteller bzw. Marke und Lagerverfügbarkeit filtern. Farb- und Bildfelder werden automatisch aus den vorhandenen Musterbildern je Attributwert zugeordnet, und jede Facettenbezeichnung wird in der Sprache des Besuchers gelesen, sodass eine Vorlage in jeder Shop-Sprache den korrekten Text zeigt.
Ja. URL-Muster, zwischengespeicherte Links, gespeicherte Weiterleitungen und manuelle Ueberschreibungen werden jeweils pro Sprache und pro Shop gespeichert. So behaelt jeder Shop und jede Sprache in einer Multistore-Installation eigene saubere Adressen und einen eigenen Weiterleitungsverlauf.
Standardmäßig ist jeder Anhang auf 10 MB begrenzt, und die erlaubten Endungen sind jpg, jpeg, png, gif, pdf, doc, docx, xls, xlsx, txt, zip, rar.
Sowohl die maximale Größe als auch die Liste der Endungen lassen sich in den Moduleinstellungen bearbeiten. Vor dem Speichern prüft das Modul die Dateiendung anhand Ihrer Liste, sodass alles außerhalb dieser Liste abgelehnt wird. Kürzen Sie die Liste, wenn Sie weniger Dateitypen zulassen möchten.
Sie erstellen im Back Office eine wiederverwendbare Filtervorlage, fügen die gewünschten Filtergruppen hinzu (Attribute, Eigenschaften, Preis, Marke, Lagerbestand), bringen sie in die von Ihnen bevorzugte Reihenfolge und weisen die Vorlage dann mit der Kategorieauswahl einer oder mehreren Kategorien zu.
Vorlagen werden pro Shop gespeichert, sodass verschiedene Shops in einer Multistore-Installation unterschiedliche Filter-Setups verwenden können, und jede Vorlage ist an einen Listen-Controller-Typ wie Kategorie, Suche oder Hersteller gebunden. Da Vorlagen wiederverwendbar sind, können Sie dieselbe Filteranordnung auf viele Kategorien anwenden, statt jede einzeln einzurichten.
Ja. Sie koennen eine eigene URL fest an ein bestimmtes Produkt, eine Kategorie, eine CMS-Seite, einen Hersteller oder einen Lieferanten binden oder eine Adresse auf eine andere Entitaet bzw. eine eigene Ziel-URL verweisen lassen. Bei jeder Ueberschreibung waehlen Sie den Weiterleitungstyp - 301 dauerhaft oder 302/307 temporaer - begrenzt auf die von Ihnen gewaehlte Sprache und den Shop.
Optional ja, über den IMAP-Import — er ist jedoch standardmäßig deaktiviert. Wenn Sie ihn aktivieren und Postfach-Host, Benutzername und Passwort eintragen, liest ein geplanter Abruf ungelesene Nachrichten aus dem Postfach.
Enthält der Betreff einer Nachricht eine vorhandene Ticket-Referenz (Ihr konfiguriertes Präfix, z. B. SR-00001), wird die E-Mail als Antwort zu diesem Ticket hinzugefügt; andernfalls wird daraus ein neues Ticket erstellt. Dafür sind die PHP-Erweiterung imap und ein Cronjob nötig, der den Cron-Endpunkt des Moduls mit Ihrem Token aufruft.
Nein. Das Modul beantwortet den DSGVO-Datenexport-Hook von PrestaShop mit der Aussage, dass es keine personenbezogenen Daten auf dem Server speichert, da die Filterung aus Ihren vorhandenen Katalog- und Indexdaten erfolgt und nicht aus Kundenprofilen.
Der optionale Missbrauchsschutz (Rate Limiter), der nur greift, wenn ein Bot Filter-URLs überlastet, arbeitet mit kurzlebigen Redis-Zählern und speichert keine personenbezogenen Daten dauerhaft. Deshalb ist das Modul in der Produktübersicht als nicht DSGVO-relevant gekennzeichnet.
Das legen Sie je Entitaetstyp fest. Eine entfernte oder deaktivierte Seite kann auf ihre uebergeordnete Kategorie weiterleiten, auf die Startseite weiterleiten, 410 Gone zurueckgeben oder gar nichts tun. Die alte Adresse wird im Weiterleitungsverlauf gespeichert, damit eingehende Links weiterhin aufgeloest werden, statt auf einen echten 404-Fehler zu treffen.
Ein Ticket speichert die Identität des Kunden, den gesamten Nachrichtenverlauf, die Abteilung, Priorität und den Status, den zugehörigen Shop sowie die IP-Adresse des Absenders — so entsteht eine echte Support-Historie innerhalb von PrestaShop.
Das Formular im Shop erfordert ein ausdrückliches DSGVO-Einwilligungskästchen; ist es nicht angehakt, wird kein Ticket erstellt. Interne Mitarbeiternotizen werden getrennt gespeichert und niemals in der kundenseitigen Konversationsansicht angezeigt.
Das Modul ist darauf ausgelegt, stark frequentierte Listenseiten schnell zu halten, ohne Ihre Datenbank aufzublähen. Es liest aus den vorhandenen Indextabellen von PrestaShop und pflegt kompakte, vorberechnete Facetten-Zähler-Aggregate, sodass das Frontend nicht bei jeder Anfrage für jeden Filter aufwendige Live-Abfragen ausführt.
Diese Aggregate können Sie über das Dashboard im Back Office neu aufbauen und den Indexzustand prüfen, und Filterkombinationen ohne Produkte lassen sich ausblenden, damit Kunden und Crawler nicht auf leeren Seiten landen. So bleiben die Filter-Antwortzeiten auch bei wachsendem Katalog stabil.
Das Modul deklariert Kompatibilität von PrestaShop 1.6.1.0 bis zur aktuellen 9.x-Reihe und benötigt PHP 7.1 oder neuer. Es hält getrennte Code-Pfade für PS 1.6 und 1.7+ bereit (zum Beispiel die Bestellseite im Admin und die Adressverarbeitung), sodass die Finanzwerkzeuge sowohl in einem älteren 1.6-Shop als auch unter PrestaShop 8 oder 9 funktionieren.
Sie können, wenn Sie möchten. Die Einstellung Automatisch schließen nach steht standardmäßig auf 14 Tage: Eine geplante Aufgabe schließt gelöste Tickets, die seit so vielen Tagen keine Aktivität mehr hatten. Setzen Sie den Wert auf 0, um das automatische Schließen ganz zu deaktivieren.
Die Aufgabe läuft über den Cron-Endpunkt des Moduls — entweder den CLI-Befehl cron.php --token=IHR_TOKEN oder einen URL-Aufruf mit demselben Token — also denselben Planer, der auch IMAP abfragt.
Es arbeitet parallel dazu. Der Dokumente-Bereich listet Ihre vorhandenen PrestaShop-Bestellrechnungen auf — Bestellreferenz, Kunde, E-Mail, Summen, Versand, Bestellstatus, Datum und den nativen PDF-Download — statt die Kernrechnungsstellung zu ersetzen. Zusätzlich ergänzt es Korrektur- (Gutschrift-) und Proforma-Abläufe, einschließlich der Umwandlung von Proforma in Rechnung, sofern die Bestellung dies zulässt. Ihre PrestaShop-Kernrechnungen bleiben die verbindliche Quelle.
Für EU-USt-IdNrn. ruft das Modul den offiziellen EU-VIES-Dienst auf (den checkVatService-SOAP-Endpunkt), um eine verbindliche Gültig/Ungültig-Antwort zu erhalten. Ist VIES nicht erreichbar oder tritt ein Timeout auf, blockiert es Sie nicht — es fällt auf eine reine Formatprüfung zurück und speichert das Ergebnis mit seiner Quelle (vies gegenüber format), sodass Sie stets sehen, ob eine Nummer verbindlich bestätigt oder nur formal geprüft wurde. Nicht-EU-Nummern werden nur formal geprüft, da VIES sie nicht abdeckt.
Zur Unterstützung der Umsatzsteuermeldung speichert das Modul USt-IdNrn. der Kunden zusammen mit der Prüfquelle, den von der Prüfung zurückgegebenen Daten, etwaigen Meldungen und Zeitstempeln in eigenen Tabellen. Das sind Geschäfts-/Steuerdaten, die Sie als Händler kontrollieren und in der Regel für Buchhaltungszwecke aufbewahren müssen. Das Modul übermittelt diese Daten außer an die EU-VIES-Abfrage selbst an keine Dritten und registriert keine automatischen PrestaShop-DSGVO-Export-/Lösch-Hooks — verlangt ein Kunde also Löschung, entfernen Sie seinen USt-Datensatz direkt im Admin.
Ja. Die Tabellen des Moduls — Finanzdatensätze, Kosten, Dokumente, USt-Daten und Einstellungen — enthalten alle eine id_shop-Spalte, sodass Einträge dem jeweiligen Shop zugeordnet sind. Jeder Shop behält seine eigenen Zahlen, Dokumentnummerierung und Konfiguration, statt sich ein gemeinsames Hauptbuch über den gesamten Multishop zu teilen.
Beides, je nach Datensatztyp. Erlösseitige Datensätze werden automatisch erstellt: Das Modul hängt sich in die Bestellvalidierung und Statusänderungen von Bestellungen ein und stellt sicher, dass für jede Bestellung ein Finanzdatensatz vorhanden ist. Kosten und Ausgaben erfassen Sie selbst — jede Kostenposition trägt eine Referenz, einen Partner, eine Kategorie, Netto- und Bruttobeträge, erstattete/rabattierte Beträge, Zahlungsstatus, Fälligkeitsdatum, Anhänge und eine optionale Zuordnung zu einem Produkt oder einer Kategorie, sodass Gewinn- und USt-Zahlen die tatsächlichen Lieferantenausgaben widerspiegeln.
Dieses Modul lädt das Drittanbieter-Tracking-Skript von ActiveCampaign (diffuser.js von diffuser-cdn.app-us1.com) direkt im Browser des Besuchers. Es wird ausgegeben, sobald das Modul aktiviert und eine Account-ID gespeichert ist — im Code gibt es kein integriertes Cookie-Consent, die Einwilligungsverwaltung liegt also bei Ihnen.
Die einzigen personenbezogenen Daten, die das Modul selbst übergibt, sind die E-Mail-Adresse eines angemeldeten Kunden, gesendet mit vgo('setEmail', ...), damit Besuche dem richtigen Kontakt zugeordnet werden. Gäste werden ohne E-Mail getrackt. Das Modul speichert in PrestaShop nur zwei Einstellungen (ENABLED und ACCOUNT_ID) und hält selbst keine Besucherdaten vor.
Da es sich um Marketing-/Analyse-Tracking handelt, das eine personenbezogene Kennung übertragen kann, laden Sie es dort, wo gesetzlich erforderlich, hinter Ihrer Consent-Lösung und nennen Sie ActiveCampaign in Ihrer Datenschutzerklärung.
Nein. Diese Integration nutzt ausschließlich das clientseitige Site-Tracking von ActiveCampaign. Der einzige erforderliche Wert ist die numerische Account-ID, die Sie in ActiveCampaign unter Einstellungen > Tracking > Site-Tracking kopieren.
Das Modul speichert nur ENABLED und ACCOUNT_ID und bindet den offiziellen diffuser.js-Tracker im Browser ein. In diesem Code-Pfad gibt es weder API-Schlüssel noch API-URL oder Server-zu-Server-Synchronisierung — es werden keine API-Zugangsdaten auf Ihrem Server gespeichert oder von ihm gesendet; alle Daten fließen vom Browser des Besuchers zu ActiveCampaign.
Denken Sie daran, das Site-Tracking auch in Ihrem ActiveCampaign-Konto zu aktivieren, sonst erscheinen die vom Skript erfassten Besuche nicht.
Das Modul ist für PrestaShop 1.6 bis 9.x ausgelegt und bearbeitet keine Theme-Dateien. Es registriert einen einzigen Front-Office-Hook, displayBeforeBodyClosingTag, und fügt das Tracking-Skript direkt vor dem schließenden </body>-Tag ein — nicht im Seitenkopf.
Da es auf diesen Hook angewiesen ist, erscheint das Skript nur, wenn Ihr Theme displayBeforeBodyClosingTag tatsächlich ausgibt, was die Standard-PrestaShop-Themes tun. Es wird nichts in ein Template kopiert, sodass ein Theme-Wechsel oder -Update die Integration nicht verliert.
Falls das Tracking im Seitenquelltext nie erscheint, prüfen Sie, ob das Modul aktiviert ist, die Account-ID ausgefüllt ist und ob Ihr eigenes Theme displayBeforeBodyClosingTag am Seitenende aufruft.
Das Modul ist von PrestaShop 1.6.1.0 bis zur aktuellen Version kompatibel und läuft somit auf 1.6, 1.7, 8.x und 9.x. Der Storefront-Schutz greift nur, solange das Modul aktiv ist, und die Back-Office-Seiten bleiben auch bei abgeschaltetem Schutz erreichbar – das Aktivieren sperrt Sie also nicht aus Ihrem eigenen Shop aus.
Nein. Die Firewall startet im Überwachungsmodus: Nach der Installation protokolliert sie Anfragen, die blockiert würden, ohne sie tatsächlich zu stoppen. Sie prüfen zunächst diese Protokolle und Sicherheitsdaten und wechseln erst dann in den Durchsetzungsmodus, wenn Sie sicher sind, dass die Regeln passen. Rate-Limits werden pro Aktionstyp (Registrierung, Kontakt, Kommentare, Warenkorb) statt über einen pauschalen Schwellenwert konfiguriert.
Das Modul liefert einen Notausgang für die Kommandozeile, den Sie auf dem Server ausführen – er funktioniert also auch, wenn Sie sich nicht anmelden können: php bin/console mprsecurityrevolution:admin-security:escape. Mit --disable-enforcement schalten Sie Login-Sperre, 2FA-Gate, 2FA-Pflicht, Session-IP-Bindung und Step-up-Prüfungen ab; --clear-lockouts löscht harte und durch Fehlversuche ausgelöste Sperren; --trust-ip fügt eine vertrauenswürdige Admin-IP bzw. ein CIDR als Ausnahme hinzu; --all kombiniert beides.
Die Schutz- und Überwachungsprüfungen laufen bei normalen Seitenaufrufen, der Kernschutz hängt also nicht von Cron ab. Ein Cronjob wird für geplante Wartung und Backups benötigt: cron.php (mit einem im Admin-Panel angezeigten Sicherheitstoken aufgerufen) führt Aufräumaufgaben aus, die alte Sicherheitsprotokolle, abgelaufene Rate-Limit-Einträge, blockierte Versuche, Request-Logs sowie Session- und Seitenaufruf-Daten löschen, und steuert geplante Backups. Ohne Cron laufen diese Aufgaben nicht und die Log-Tabellen wachsen weiter.
Registrierung, Kontaktformulare und Produktkommentare werden mehrschichtig geprüft: ein unsichtbares Honeypot-Feld, Rate-Limits je Aktion, die Ablehnung von Wegwerf- bzw. gesperrten E-Mail-Domains sowie eine Inhaltsprüfung auf Kauderwelsch, zu viele Links und riskante oder missbräuchliche Eingaben. Jeder Aktionstyp (Registrierung, Kontakt, Kommentar, Warenkorb) hat eigene Limits, sodass Sie bei Anmeldungen streng sein können, ohne normales Surfen auszubremsen. Alle Tracking- und Sicherheitsdaten bleiben in Ihrer eigenen Shop-Datenbank – nichts geht an einen Drittanbieter – und die integrierten Aufräumaufgaben löschen sie planmäßig.
In den Moduleinstellungen wählen Sie einen von drei Anbietern: Google reCAPTCHA v2 (die bekannte Checkbox "Ich bin kein Roboter"), Google reCAPTCHA v3 (unsichtbar, punktebasiert) oder hCaptcha (eine datenschutzfreundliche Checkbox-Alternative). Es ist immer nur ein Anbieter aktiv und gilt für alle geschützten Formulare.
reCAPTCHA v2 und hCaptcha zeigen dem Besucher ein Widget, während reCAPTCHA v3 unbemerkt im Hintergrund läuft und einen Wert zwischen 0 und 1 zurückgibt. Bei v3 legen Sie zusätzlich einen Schwellenwert fest (Standard 0,5), um die Strenge der unsichtbaren Prüfung anzupassen, ohne den Anbieter zu wechseln.
Ja. Das Modul betreibt keinen eigenen CAPTCHA-Dienst, sondern verbindet sich mit Google oder hCaptcha. Sie legen also ein kostenloses Konto beim gewählten Anbieter an, erzeugen einen Site-Key und einen Secret-Key und tragen beide in die Moduleinstellungen ein.
Der Schutz bleibt vollständig inaktiv, bis das Modul aktiviert und beide Schlüssel eingetragen sind. Vorher wird kein Widget angezeigt und keine Übermittlung geprüft, sodass eine unvollständige Einrichtung Ihre Kundenformulare niemals blockieren oder beschädigen kann. Das Backoffice zeigt außerdem einen Hinweis, welche Schlüssel noch fehlen.
Beim Absenden eines geschützten Formulars sendet das Modul das CAPTCHA-Antwort-Token, Ihren Secret-Key und die IP-Adresse des Besuchers an den Prüfdienst des Anbieters (den siteverify-Dienst von Google oder hCaptcha), um die Antwort zu bestätigen. Das JavaScript-Widget des Anbieters lädt zudem im Browser des Besuchers, genau wie auf jeder Website mit reCAPTCHA oder hCaptcha.
Das Modul selbst speichert weder das Token noch den Wert oder Besucherdaten in Ihrer Datenbank. Da ein Drittanbieter beteiligt ist, ist der Einsatz von CAPTCHA DSGVO-relevant; nennen Sie daher den gewählten Anbieter in Ihrer Datenschutzerklärung. Auf der Kontaktseite wird das Widget aus diesem Grund über den DSGVO-Einwilligungsbereich ausgegeben.
reCAPTCHA v3 gibt für jede Übermittlung einen Wert zwischen 0 und 1 zurück. Das Modul vergleicht ihn mit dem von Ihnen festgelegten Schwellenwert (Standard 0,5): Übermittlungen, die ihn erreichen oder übertreffen, werden akzeptiert, niedrigere gelten als automatisiert und werden gestoppt. Ein höherer Wert ist strenger, ein niedrigerer nachsichtiger.
Da die unsichtbare Bewertung gelegentlich einen echten Kunden falsch einschätzen kann, lässt sich optional ein Checkbox-Fallback aktivieren. Liegt eine v3-Übermittlung unter dem Schwellenwert, wird der Besucher gebeten, eine reCAPTCHA-v2-Checkbox auszufüllen (mit einem separaten v2-Schlüsselpaar), um sich als Mensch zu bestätigen und fortzufahren — echte Kunden landen so nicht in einer Sackgasse.
Nein. Das Modul erkennt, wenn das native PrestaShop-Modul contactform aktiv ist und bereits im Kontaktbereich ausgegeben wird, und fügt in diesem Fall dort kein zweites Widget hinzu. Stattdessen platziert es das CAPTCHA über den DSGVO-Einwilligungsbereich der Kontaktseite, sodass Sie ein CAPTCHA an der richtigen Stelle erhalten statt zwei gestapelter Widgets.
Diese Behandlung gilt speziell für das Kontaktformular. Login, Registrierung und Newsletter geben ihr CAPTCHA jeweils über ihren eigenen Hook aus, und jedes Formular hat einen eigenen Schalter, sodass Sie nur die gewünschten schützen.
Es ist für PrestaShop 1.6, 1.7, 8.x und 9.x ausgelegt — das Modul deklariert Kompatibilität von 1.6.0.0 bis zu Ihrer installierten Version und läuft unter PHP 7.1+. Der
Ja. Wenn das Einwilligungsmodul mprcookiesrevolution installiert und aktiviert ist, ordnet dieses Modul seinen Header-Hook automatisch so um, dass er zuletzt lädt, damit die Consent-Mode-Standardwerte der CMP gesetzt werden, bevor der GTM-Container (gtm.js) lädt. Ist keine CMP vorhanden und die Consent-Fallback-Option aktiviert, gibt das Modul vor dem Start von GTM einen Google-Consent-Mode-v2-Standard denied für ad_storage, ad_user_data, ad_personalization und analytics_storage aus, sodass Ihre Consent-Mode-Tags stets einen definierten Zustand haben.
Ja. Wenn die Option zum Ausschließen von Mitarbeitern aktiviert ist, werden angemeldete Backoffice-Mitarbeiter nicht erfasst. Bekannte Crawler und Audit-Tools (Googlebot, Bingbot, SemrushBot, AhrefsBot, Lighthouse/PageSpeed, Pingdom und weitere) werden anhand des User-Agents erkannt und übersprungen, und jeder Besucher mit dem Opt-out-Cookie mpr_notrack wird ausgeschlossen. Das Tracking läuft nur bei Front-Office-Seitenaufrufen, nicht im Admin oder bei AJAX-/API-Aufrufen.
Nicht, wenn der Measurement-Protocol-Fallback aktiviert ist. Bei der Bestellvalidierung kann das Modul den Kauf serverseitig direkt an GA4 senden (Measurement Protocol), sodass der Verkauf auch dann erfasst wird, wenn der Käufer die Bestätigungsseite nie erreicht, das Tag blockiert oder die Einwilligung clientseitig verweigert. Google dedupliziert anhand der transaction_id, sodass die Bestellung nicht doppelt gezählt wird, falls das Browser-Ereignis ebenfalls ausgelöst wird. Dafür sind eine GA4-Measurement-ID (G-XXXXXX) und ein API-Secret in der Konfiguration erforderlich.
Enhanced Conversions läuft nur, wenn die Option aktiviert und der Kunde angemeldet ist. Das Modul überträgt E-Mail, Vor- und Nachname, Telefon, Stadt, Postleitzahl und Region des Kunden als SHA256-Hashes in den dataLayer — niemals im Klartext — unter einem Ereignis enhanced_conversions_data. Über diesen Push verlassen keine personenbezogenen Rohdaten den Browser; nur die gehashten Werte, die Google für den Conversion-Abgleich erwartet.
Nein. Der Button wird als ein einziges Inline-Template ausgeliefert: Sein CSS und JavaScript sind direkt in die Footer-Ausgabe eingebettet, sodass im Front Office keine zusaetzlichen .css- oder .js-Dateien geladen und keine weiteren HTTP-Requests erzeugt werden.
Es wird weder jQuery noch eine externe Bibliothek geladen. Das Scrollen nach oben nutzt das browsereigene window.scrollTo({ top: 0, behavior: 'smooth' }), und der Scroll-Listener ist mit { passive: true } registriert, sodass er das Scrollen nie blockiert. Das Modul setzt ausserdem ein buttonRendered-Flag, damit der Button pro Seite nur einmal ausgegeben wird, selbst wenn Ihr Theme mehrere unterstuetzte Hooks ausloest.
Das gerenderte Markup ist ein einzelner 48x48-Pixel-<button> mit einem Inline-SVG-Pfeilsymbol, sodass die Auswirkung auf das Seitengewicht minimal ist.
Nein. Der Button ist reines clientseitiges visuelles Verhalten. Er setzt keine Cookies, schreibt nichts in localStorage, sendet keine AJAX- oder Analytics-Requests und ruft keinen externen oder Drittanbieter-Dienst auf.
Das gerenderte Template enthaelt nur einen <style>-Block, einen <button> und ein kleines eigenstaendiges <script>, das beim Scrollen eine CSS-Klasse umschaltet und beim Klick nach oben scrollt. Da keine personenbezogenen Daten gelesen, gespeichert oder uebertragen werden, entstehen durch den Button keine eigenen DSGVO- oder Cookie-Consent-Pflichten.
Er ist auf breite Kompatibilitaet ausgelegt. Das Modul deklariert Unterstuetzung fuer PrestaShop 1.6.0.0 bis zu Ihrer installierten Version und rendert ueber die Standard-Hooks displayFooter, displayFooterAfter und displayBeforeBodyClosingTag - jedes Theme, das mindestens einen davon ausgibt, zeigt den Button, wobei der zuerst ausgeloeste Hook verwendet wird.
Der Button nutzt position: fixed mit einem hohen z-index, sodass er ueber dem Seiteninhalt sowohl auf Desktop- als auch auf Mobil-/Touch-Layouts schwebt, und er erscheint, sobald der Besucher ueber den konfigurierten Pixel-Schwellenwert hinaus scrollt. Es sind keine Aenderungen an Theme-Dateien noetig - Modul installieren und aktivieren genuegt.
Die Suche wird selbst gehostet. Anfragen werden gegen Ihren eigenen Datenbankindex abgeglichen, und sämtliche Analysedaten – Suchbegriffe, Klicks und Anfragen ohne Treffer – werden in den eigenen Tabellen des Moduls innerhalb Ihrer PrestaShop-Datenbank gespeichert. Standardmäßig wird nichts an eine Such-Cloud von Drittanbietern gesendet.
Der Suchverlauf angemeldeter Kunden wird pro Kunde gespeichert und kann vom Shopper gelöscht werden. Die Zuordnung von Klick zu Bestellung nutzt ein First-Party-Cookie mit standardmäßig 30 Tagen Laufzeit. Eine optionale KI-Suche kann einen externen KI-Anbieter aufrufen, ist aber standardmäßig deaktiviert und nur aktiv, wenn Sie sie einschalten und Ihren eigenen API-Schlüssel hinterlegen.
Das Modul deklariert Kompatibilität ab PrestaShop 1.6 bis zur laufenden Version (ps_versions_compliancy min 1.6.0.0) und benötigt PHP 7.2 oder neuer.
Das Laden der Assets passt sich der Plattform an: unter PrestaShop 1.7 und höher registriert es CSS und JavaScript über actionFrontControllerSetMedia, unter 1.6 lädt es sie aus displayHeader mit addCSS/addJS. Derselbe displayHeader-Hook übergibt die Passwort-Einstellungen an window.mprcustomerpassword_config.
Das Front-Skript berücksichtigt beide Formulargenerationen: es adressiert das Feld password von PrestaShop 1.7+ sowie die Felder passwd und confirmation von 1.6. Der Setup-Link-Versand nutzt reset_password_token bei 1.7+-Kundenobjekten und ein Legacy-SQL-Update bei 1.6. Das Modul registriert drei Hooks: displayHeader, actionFrontControllerSetMedia und actionCustomerAccountAdd.
Ja. Synonyme, Produkt-Boosts, Suchweiterleitungen, SEO-Landingpages, Suchstatistiken und der gespeicherte Kundenverlauf sind jeweils pro Shop getrennt, sodass jeder Store einer Multistore-Installation seine eigene Konfiguration und seine eigenen Daten behält.
So können Sie für einen Shop andere Synonyme festlegen oder andere Produkte boosten, ohne die übrigen zu beeinflussen, und die Suchberichte jedes Stores bleiben getrennt.
Die Länge ist konfigurierbar und beträgt standardmäßig 12, der Generator erzwingt jedoch ein festes Minimum von 8 Zeichen, selbst wenn Sie einen kleineren Wert einstellen (Math.max(8, length)).
Kleinbuchstaben sind immer als Basissatz enthalten. Drei unabhängige Schalter fügen dann Großbuchstaben, Zahlen und Sonderzeichen hinzu (!@#$%^&*_+-=); standardmäßig sind alle drei aktiviert. Ist ein Satz aktiv, garantiert der Generator mindestens ein Zeichen daraus, füllt die restliche Länge aus dem kombinierten Pool und mischt das Ergebnis per Fisher-Yates, sodass die erforderlichen Zeichen nicht an vorhersehbarer Position stehen.
Die Generierung erfolgt vollständig im Browser in front.js anhand der über window.mprcustomerpassword_config übergebenen Werte (PWD_LENGTH, PWD_UPPERCASE, PWD_NUMBERS, PWD_SPECIAL). Pro Seite wird ein Passwort erzeugt und derselbe Wert in jedes passende Passwort- und Bestätigungsfeld geschrieben.
Es ist für PrestaShop 1.7, 8 und 9 ausgelegt – die angegebene Kompatibilität reicht von 1.7.0 bis zur aktuellen PrestaShop-Version – und läuft mit PHP 7.1 oder neuer.
Das Modul legt seine eigenen Datenbanktabellen bei der Installation automatisch an und hält das Schema aktuell, sodass Sie beim Installieren oder Aktualisieren innerhalb des unterstützten Bereichs kein manuelles SQL ausführen müssen.
Nein. Das Modul hat keine eigene Datenbanktabelle für Passwörter; seine Integritätskonfiguration führt keine kritischen Tabellen. Das Passwort wird clientseitig im Browser erzeugt und mit dem normalen Kontoformular übermittelt, und PrestaShop hasht und speichert es genau wie jedes andere Kundenpasswort.
Was danach aufbewahrt wird, hängt vom E-Mail-Modus ab. Bei send_password (Standard) wird das Klartext-Passwort einmalig an den Kunden gesendet. Bei setup_link speichert das Modul nur ein zeitlich begrenztes Reset-Token — random_bytes(32) unter PrestaShop 1.7+ oder ein MD5-Token unter 1.6 — mit 24 Stunden Gültigkeit am Kundendatensatz und sendet einen Einrichtungslink statt des Passworts. Bei silent wird nichts zusätzlich gespeichert und keine Passwort-E-Mail versendet.
Da die Generierung clientseitiges JavaScript ist, sehen Kunden mit deaktiviertem JavaScript einfach das normale Passwortfeld und es wird nicht automatisch ausgefüllt, sodass die Standard-Registrierung von PrestaShop weiterhin funktioniert.
Die Suche läuft auf Ihrem eigenen Server statt über eine entfernte API, es gibt also keinen externen Roundtrip. Anfragen werden zudem während der Eingabe gedrosselt: Ein Mindestzeichen-Schwellenwert (standardmäßig 2) verhindert eine Abfrage bei nur einem Buchstaben, und eine Debounce-Verzögerung (standardmäßig 150 ms) fasst schnelle Tastenanschläge zu einer Anfrage zusammen.
Autocomplete-Vorschauen und Ergebnisanzahlen sind durch konfigurierbare Grenzwerte begrenzt, sodass ein Dropdown nie mehr Zeilen lädt als nötig. Alle diese Schwellenwerte lassen sich im Back Office an Ihre Kataloggröße und Ihren Server anpassen.
Nein. Nach der Installation läuft es mit sinnvollen Standardeinstellungen – es erweitert das vorhandene Suchfeld Ihres Themes und liefert Produkte, Kategorien, CMS-Seiten, Hersteller und Lieferanten während der Eingabe, wobei die Tippfehlertoleranz bereits aktiv ist.
Die erweiterten Werkzeuge – Synonyme, Produkt-Boosts, Suchumschreibungen und Weiterleitungen, SEO-Landingpages und der Ranking-Simulator – sind alle optional und werden im Back Office ohne Programmierung verwaltet. So können Sie einfach starten und die Suche mithilfe der integrierten Statistiken nach und nach optimieren.
Das Modul unterstützt PrestaShop 1.6, 1.7, 8.x und 9.x. Es fügt das Microsoft-Clarity-Skript über den Header-Hook des Shops ein, sodass Clarity mit seinem eigenen asynchronen Tracking-Code läuft und Ihre Aufzeichnungen und Heatmaps in Ihrem Microsoft-Clarity-Konto verarbeitet werden, nicht auf Ihrem Server. Das Modul legt keine zusätzlichen Datenbanktabellen für Tracking-Daten an.
Das Modul ist von PrestaShop 1.6.0.0 bis zu Ihrer installierten Version kompatibel und läuft daher unter 1.6, 1.7, 8 und 9. Es registriert zwei Hooks auf der Bestellseite — displayAdminOrder für die Bestellansicht von PrestaShop 1.6 und displayAdminOrderMain für die Bestellansicht ab 1.7 — damit die Löschaktion in jeder Version an der richtigen Stelle erscheint.
Sie können Back-Office-Sitzungen von Clarity ausschließen. Wenn „Mitarbeiter-Besuche ausschließen" aktiviert ist – das ist die Standardeinstellung – lädt das Modul das Clarity-Skript nicht, während ein angemeldeter Mitarbeiter den Shop durchsucht, sodass die eigenen Besuche Ihres Teams nicht aufgezeichnet werden. Normale Kundensitzungen werden weiterhin erfasst.
Ja. Das Modul liefert zwei standardmäßig aktivierte Einstellungen: ENABLED legt fest, ob die Löschaktion überhaupt auf der Bestellseite erscheint, und REQUIRE_CONFIRMATION lässt die Schaltfläche vor dem Ausführen eine Browser-Bestätigung anzeigen. Ist ENABLED deaktiviert, gibt der Hook nichts aus, sodass Mitarbeiter die Schaltfläche nicht sehen. Beides ändern Sie auf der Einstellungsseite des Moduls im Back Office.
Das Modul hängt Shopping-Kontext als Clarity-Sitzungs-Tags und Events an: Seitentyp und Controller, Produktname, Kategorie und IDs, Warenkorb- und Bestellwert, Währung, Artikelanzahl, Bestellreferenz und den Suchbegriff. Es sendet keine Kundennamen, E-Mail-Adressen, Passwörter oder Zahlungsdaten. Das Tracking läuft nur, wenn das Modul mit einer gültigen Projekt-ID aktiviert ist und – sofern konfiguriert – nach erteilter Marketing-Einwilligung.
Ja. Das Modul ruft die native Methode Order::delete() von PrestaShop auf, die die Bestellung zusammen mit den vom Core kaskadierten Datensätzen entfernt — Rechnungen, Bestellpositionen, Lagerbewegungen und Zahlungseinträge. Der Papierkorb bewahrt keine vollständige Kopie auf: Er speichert nur eine kleine JSON-Zusammenfassung (Bestell-ID, Referenz, Kunden-ID, bezahlter Gesamtbetrag, Erstellungsdatum und aktueller Status) und ist damit ein Protokoll des Gelöschten, kein Backup, aus dem sich die Bestellung wiederherstellen lässt. Behandeln Sie das Löschen als endgültig und nutzen Sie es für Test-, Duplikat- oder unerwünschte Bestellungen.
Nein. Automatic Internal SEO Linker arbeitet ausschließlich in den von Ihnen konfigurierten Inhaltsbereichen — Produkt- und Kategoriebeschreibungen, CMS-Inhalten sowie Blog-, Hersteller- oder Lieferantentexten. Bevor etwas eingefügt wird, extrahiert das Modul den <body> der Seite und lässt <head>, <script>-Blöcke und JSON-LD-Strukturdaten bewusst unberührt, sodass Ihre Rich Snippets und Meta-Tags nie umgeschrieben werden.
Vorhandene Links zählt es nur innerhalb dieser Inhaltsbereiche, nicht im Menü, im Header oder in den Breadcrumbs. Navigationslinks verbrauchen daher nie das Link-Budget einer Gruppe, und das Modul verwandelt Ihre Menüpunkte oder Breadcrumb-Pfade nicht in zusätzliche Anker. Standardmäßig überspringt es zudem Überschriften, meidet bereits verlinkten Text und verlinkt eine Seite niemals auf sich selbst.
Das Modul ist für PrestaShop 1.6, 1.7, 8.x und 9.x ausgelegt (deklarierte Kompatibilität 1.6.1.0 bis 9.x) und läuft mit den Standard-PHP-Versionen dieser Releases. Es ist nicht von einem bestimmten Theme abhängig.
Es arbeitet über den Output-Hook actionOutputHTMLBefore, das heißt, es liest das fertige Storefront-HTML und fügt die Links beim Senden in die Antwort ein. Es bearbeitet niemals Ihre Theme-Template-Dateien und schreibt niemals die in Ihrer Datenbank gespeicherten Beschreibungen um. Das Deaktivieren einer Linkgruppe oder das Deinstallieren des Moduls entfernt die erzeugten Links sofort, da sie nur der Ausgabe hinzugefügt und nicht in Ihren Inhalten gespeichert wurden.
Ja. Jede Linkgruppe kann eigene Link-Attribute festlegen: einen rel-Wert (zum Beispiel nofollow oder noopener), ein Ziel (etwa _self oder _blank, um in einem neuen Tab zu öffnen) und eine CSS-Klasse. Es gibt zudem eine Option, den Anker für fette Hervorhebung in <strong> einzuschließen.
Wenn eine Gruppe diese Felder leer lässt, greifen die shopweiten Standardwerte: Links öffnen im selben Tab (_self), das rel-Attribut ist leer und die Standard-CSS-Klasse ist mpr-autolink, die Sie in Ihrem Theme gestalten können. Limits pro Seite und pro Gruppe (standardmäßig 5 Links pro Seite und 3 pro Gruppe) halten die Verlinkung natürlich statt spammig.
Nein. Automatic Internal SEO Linker arbeitet vollständig serverseitig: Auf jeder Front-Office-Seite liest es Ihre gespeicherten Linkgruppen, betrachtet das von PrestaShop bereits erzeugte HTML und fügt vor dem Senden der Antwort Anker ein. Es speichert ausschließlich Ihre eigene Konfiguration — die Linkgruppen, Keywords und Einstellungen, die Sie im Back Office anlegen.
Es setzt keine Cookies, verfolgt oder profiliert keine Besucher, speichert keine personenbezogenen Daten und ruft zum Erzeugen der Links keine externen APIs auf. Da keine Besucherdaten erfasst oder weitergegeben werden, ist das Modul auf der Storefront-Seite nicht DSGVO-relevant.
Nein. Der Dubletten-Finder erkennt und listet Duplikate nur — er führt nichts zusammen und löscht nichts von selbst. Er sucht nach doppelten Produkten (gruppiert nach Name oder nach Referenz, EAN-13, UPC bzw. ISBN), doppelten Kategorien (gleicher Name unter demselben übergeordneten Element), doppelten Merkmalen und Merkmalswerten sowie doppelten Attributgruppen und deren Werten und zeigt jede Gruppe mit den zugehörigen IDs an, damit Sie sie vergleichen können.
Anschließend prüfen Sie die Ergebnisse und entscheiden selbst, was in Ihrem Katalog zu tun ist. Das ist bewusst so: Das Zusammenführen von Produkten oder Attributen betrifft Kombinationen, Bestände, Preise und frühere Bestellungen. Deshalb überlässt das Modul diese unumkehrbaren Änderungen Ihnen, statt zu raten, welcher Datensatz behalten werden soll.
Ja, und das Modul geht dabei umsichtig vor. Es listet Modulordner auf, die auf der Festplatte vorhanden, in PrestaShop aber nicht installiert sind, und bietet einen Ordner nur dann zum Entfernen an, wenn es sich um ein wirklich deinstalliertes Modul handelt. Es löscht keinen Ordner, dessen Name (unabhängig von Groß-/Kleinschreibung) mit einem installierten Modul übereinstimmt (ein Ordner foo wird also nie entfernt, solange Foo installiert ist), und es folgt niemals Symlinks — beides sind häufige Fälle, in denen ein "deinstallierter" Ordner in Wahrheit zu aktivem Code gehört.
Zusätzlich erkennt es verwaiste Modul-Datenbanktabellen und übrig gebliebene Modul-Konfigurationsschlüssel, deren zugehöriges Modul nicht mehr installiert ist — diese werden jedoch nur zur Überprüfung angezeigt; das Modul löscht keine Tabellen oder Konfigurationen für Sie. Wie bei jeder Aufgabe gilt: zuerst die Vorschau ausführen und vor dem Entfernen ein Backup anlegen.
Die Tabellenoptimierung führt den MySQL-Befehl OPTIMIZE TABLE aus, um den freien Speicher zurückzugewinnen, der nach großen Löschvorgängen zurückbleibt. Das Modul misst zunächst die Fragmentierung jeder Tabelle (freier Speicher im Verhältnis zur Datengröße, ausgelesen aus information_schema) und optimiert nur Tabellen, die über Ihrem konfigurierten Fragmentierungsschwellenwert liegen und tatsächlich zurückgewinnbaren Speicher haben — Tabellen ohne Nutzen werden übersprungen. Jeder Lauf hält den freigegebenen Speicher und die Dauer im Prüfprotokoll fest.
Ein Punkt zur Planung: Bei InnoDB baut OPTIMIZE TABLE die Tabelle neu auf und sperrt sie für die Dauer des Vorgangs, große Tabellen sollten daher außerhalb der Stoßzeiten optimiert werden. Deshalb legt der integrierte Zeitplan die Tabellenoptimierung in ein wöchentliches Nachtfenster (04:00), getrennt von den täglichen Datenbank- und Datei-Bereinigungen, die um 03:00 und 03:30 laufen.
Nein. Die Vergleichsliste wird vollständig im localStorage des Browsers unter dem Schlüssel mprcompare gespeichert, und das Modul setzt dafür keine Cookies. Es wird nichts in die Datenbank oder eine Server-Sitzung geschrieben, daher enthält die Vergleichsfunktion keine personenbezogenen Daten und erfordert selbst keine zusätzliche Einwilligung.
Das ergibt sich aus dem Design: Eine Auswahl existiert nur in dem Browser, der sie erstellt hat, wird also nicht zwischen Smartphone und Laptop geteilt und verschwindet, sobald der Besucher seine Website-Daten löscht.
Nein, standardmäßig nicht. Facebook Pixel enthält eine Option Angemeldete Mitarbeiter ausschließen, die von Haus aus aktiviert ist. Wenn also jemand, der in Ihrem PrestaShop-Back-Office angemeldet ist, den Shop durchsucht, werden für ihn keine Pixel- oder Conversions-API-Ereignisse gesendet. Damit eine zwischengespeicherte Seite dieses ereignisfreie Markup später nicht an echte Kunden ausliefert, setzt das Modul bei diesen Mitarbeiterbesuchen zusätzlich no-store-Cache-Header (einschließlich CDN und Cloudflare). Schalten Sie die Option aus, wenn Sie die eigenen Sitzungen Ihres Teams mitzählen möchten.
Das Modul deklariert Kompatibilität von PrestaShop 1.7.0.0 bis zur 9.x-Reihe und enthält im Code zwei getrennte Hook-Sätze. Unter 1.7, 8 und 9 nutzt es actionFrontControllerSetMedia, displayAfterProductAddCartBtn, displayNav2 und displayBeforeBodyClosingTag, während ältere 1.6-Themes auf displayHeader, displayProductButtons, displayNav und displayFooter mit einer eigenen 1.6-Vergleichsvorlage zurückgreifen.
Preise auf der Vergleichsseite werden über einen versionsabhängigen Wrapper formatiert, sodass die Funktion auch unter PrestaShop 9 arbeitet, wo der alte Preis-Helfer entfernt wurde.
Die Conversions API ist optional. Der Browser-Pixel funktioniert eigenständig – geben Sie Ihre Pixel-ID ein, aktivieren Sie das Tracking, und er löst PageView, ViewContent, AddToCart, InitiateCheckout, Purchase, Search, AddToWishlist und CompleteRegistration direkt aus dem Browser des Besuchers aus. Die Conversions API ist eine separate, serverseitige Ebene, die Sie nur dann einschalten, wenn Sie Purchase zusätzlich von Ihrem Server senden möchten – das hilft, Conversions zurückzugewinnen, die Browser-Tracker wegen Adblockern oder Datenschutzeinstellungen verpassen. Sie benötigt ein eigenes Meta-Zugriffstoken, und einmal aktiviert sendet das Modul jeden Kauf sowohl vom Browser als auch vom Server unter einer gemeinsamen Ereignis-ID, sodass Meta sie zu einer einzigen, entduplizierten Conversion zusammenführt.
Ja. Wenn die Vergleichsseite Produktdaten anfordert, lädt das Modul jedes Produkt anhand des aktuellen Shops und der aktuellen Sprache aus dem PrestaShop-Kontext. So werden Namen, Kurzbeschreibungen, Preise und Eigenschaften für den Shop und die Sprache angezeigt, in denen der Besucher unterwegs ist.
Produkte, die deaktiviert sind oder nicht mehr geladen werden können, werden automatisch übersprungen und erscheinen nicht in der Tabelle, selbst wenn ihre ID noch im Browser gespeichert ist. Der Vergleich erfolgt auf Produktebene, daher erstellt die Tabelle keine eigene Spalte für jede Kombination eines Produkts.
Der Browser-Pixel läuft vollständig clientseitig und benötigt keine personenbezogenen Daten aus Ihrer Datenbank. Erst wenn Sie zusätzlich die Conversions API aktivieren, erstellt das Modul serverseitige Purchase-Ereignisse aus der Bestellung – diese Abgleichsdaten können die Angaben des Kunden sowie seine Rechnungs- oder Lieferadresse enthalten, dazu Facebooks eigene _fbp/_fbc-Browser-Cookies, sofern vorhanden. Diese Ereignisse werden in eine Warteschlange gestellt und von einem Hintergrundprozess von Ihrem Server an die konfigurierte Meta-Graph-API-Version übermittelt; mit einem Meta-Testereigniscode können Sie sie prüfen, bevor sie live zählen. Da es hier um Kundendaten geht, lassen Sie die Einwilligungsoption aktiviert, damit Ereignisse erst ausgelöst werden, nachdem ein Besucher die Marketing-Einwilligung erteilt hat.
Nein. Database Cleanup entfernt nur betrieblichen Ballast. Seine sieben Aufgaben betreffen ausschließlich diese Tabellen: verlassene Warenkörbe, Suchstatistiken, abgelaufene Sonderpreise, Logs, Verbindungen, verwaiste Gäste und alte Mail-Einträge. Es führt niemals ein DELETE auf Ihren Kunden, Bestellungen, Rechnungen oder Adressen aus.
Zwei Regeln schützen insbesondere Ihre Historie: Ein Warenkorb wird nur entfernt, wenn ein LEFT JOIN auf die Bestelltabelle zeigt, dass daraus nie eine Bestellung wurde, und ein Gastdatensatz wird nur entfernt, wenn keine zugehörige Verbindung mehr existiert. Umgewandelte Warenkörbe, echte Bestellhistorie und Kundenkonten bleiben also unangetastet — das Tool löscht Daten ohne Geschäftswert, nicht Ihre kommerziellen Datensätze.
Nein. Die Bereinigungsabfragen laufen gegen die gemeinsam genutzten PrestaShop-Tabellen (cart, log, statssearch, mail usw.) über die gesamte Datenbank und sind nicht nach Shop-Kontext eingegrenzt. In einer Multistore-Installation löscht ein Durchlauf daher alle passenden alten Datensätze für sämtliche Shops auf einmal, nicht nur den Shop, den Sie gerade im Back Office betrachten.
Für ein Wartungswerkzeug ist das beabsichtigt — die betroffenen Daten (abgelaufene Warenkörbe, alte Logs, veraltete Verbindungen) sind Housekeeping-Daten, keine shop-spezifischen Katalog- oder Kundendaten. Wenn Sie mehr Kontrolle benötigen, prüfen Sie die Zählungen vor dem Ausführen und bereinigen Sie in einer ruhigen Phase.
Es gibt kein Rückgängig. Jede Aufgabe führt ein echtes SQL-DELETE aus, entfernte Zeilen sind also endgültig weg — das Modul führt keinen Papierkorb und keinen Wiederherstellungspunkt. Die Alle-ausführen-Aktion wird genau deshalb mit einer Bestätigung für unwiderrufliche Aktionen angezeigt.
Erstellen Sie vor der ersten Bereinigung immer ein Datenbank-Backup. Der Bildschirm zeigt für jede Aufgabe die genaue Anzahl vor der Ausführung an; der sichere Ablauf lautet daher: Zählungen prüfen, sichern und dann eine Kategorie nach der anderen bereinigen oder den vollständigen Durchlauf starten, sobald Sie sicher sind.
Das Modul ist kompatibel mit PrestaShop 1.6 bis 9.x (ps_versions_compliancy min 1.6.0.0, max 9.99.99) und wird auf 1.7, 8.x und 9.x eingesetzt. Ihre Kunden müssen sich nie bei Facebook anmelden, um den Feed zu sehen.
Für die Verbindung benötigen Sie drei Dinge von Facebook: eine Facebook-Developer-App mit der Pages-API, ein langlebiges Page Access Token (die Admin-Hilfe verlangt die Berechtigungen pages_read_engagement und pages_read_user_content) und Ihre numerische Page ID. Der Seitenname ist optional und legt nur die Kopfzeile fest.
- Beiträge werden serverseitig über die Facebook Graph API
v21.0abgerufen, Ihr Server benötigt also ausgehendes HTTPS. Das Modul nutzt cURL, sofern verfügbar, andernfalls einenfile_get_contents-Stream. - Das Anfrage-Timeout beträgt 15 Sekunden; liefert Facebook einen Fehler oder keine Daten, rendert der Shop-Block nichts, statt die Seite zu zerstören.
- Solange nicht sowohl Page Access Token als auch Page ID gespeichert sind, hält ein Admin-Hinweis den eigenständigen Feed inaktiv.
Da das Token Ihnen als Seiteninhaber gehört und der Abruf auf dem Server läuft, müssen sich Besucher nie bei Facebook authentifizieren.
Der Feed wird mit dem eigenen Template und CSS des Moduls dargestellt und nicht als offizielles Facebook-Embed, sodass er sich an Ihr Theme anpasst statt an ein starres Widget. Layout, Abstände und Verhalten stellen Sie in den Moduleinstellungen ein.
- Layout-Modus:
grid,slider(Karussell) oderlist. - Spalten: 2 bis 6 am Desktop und 1 oder 2 auf Mobilgeräten.
- Beitragsanzahl: 1 bis 25, Standard
6. - Theme: hell oder dunkel. Hover-Effekt: Elevate (Schatten), Glow, Rahmen-Hervorhebung oder keiner.
- Abstände: Raster-Abstand (Standard
16px) und Kartenradius (Standard8px). - Slider: optionaler Auto-Scroll mit Geschwindigkeit von 2s bis 10s sowie Touch-Swipe auf Mobilgeräten.
- Bilder: Lazy Loading ist standardmäßig aktiv, um die Seitengeschwindigkeit zu schonen.
Sie können zudem einen Abschnittstitel setzen, einen Folgen-Button mit eigenem Text ein- oder ausblenden und den gesamten Block auf Mobilgeräten mit dem Schalter Auf Mobil anzeigen ausblenden.
Nein. Das Modul bindet weder das Facebook-SDK noch den Pixel (connect.facebook.net / fbevents) in Ihren Shop ein. Am Anzeige-Hook fügt es nur das eigene CSS und JavaScript hinzu, setzt also keine Facebook-Drittanbieter-Cookies und meldet Ihre Besucher beim Seitenaufruf nicht an Facebook.
Beiträge werden serverseitig geladen: Ihr Server ruft die Facebook Graph API auf und das normalisierte Ergebnis wird in eine JSON-Cache-Datei (mprfb_feed_cache.json) geschrieben. Gespeichert wird nur öffentlicher Seiteninhalt – Beitragstext, Bild-URLs, Permalinks sowie die öffentlichen Reaktions-, Kommentar- und Teilen-Zahlen. Es werden keine personenbezogenen Kundendaten erhoben oder an Facebook gesendet.
- Das Access Token wird in Ihrer Shop-Konfiguration gespeichert und nur für den serverseitigen Abruf verwendet; es wird nie an den Browser weitergegeben.
- Beitragsbilder und "Auf Facebook ansehen"-Links verweisen auf Facebook-/fbcdn-URLs, sodass der Browser eines Besuchers diese Bilder wie jedes andere externe Bild vom Facebook-CDN lädt – das Modul selbst sendet nichts, was den Kunden identifiziert.
Bei Bedarf erhöhen Sie die Cache-Dauer (bis zu 24 Stunden), um zu verringern, wie oft Ihr Server Facebook kontaktiert.
Nein. Das Datum wird für den gesamten Katalog auf die gleiche Weise aus den globalen Einstellungen berechnet — Bearbeitungstage, Annahmeschluss, Wochenendregel und Datumsformat. Es berücksichtigt weder Lagerbestand, Gewicht oder Lieferant eines Produkts noch das Land oder die Adresse des Kunden. Die Berechnung nutzt die Uhrzeit Ihres Servers, nicht die lokale Zeitzone des Besuchers, sodass jede Produktseite zu einem bestimmten Zeitpunkt die gleiche Schätzung anzeigt. Wenn Sie produkt- oder transportspezifische Regeln benötigen, ist das eine andere Aufgabe — siehe die Frage zu Transportzeiten oben.
Nein. Der Lieferhinweis wird beim Aufbau der Produktseite erzeugt; dabei wird nichts in die Datenbank geschrieben, kein Cookie gesetzt und keine personenbezogenen Daten wie IP-Adresse, Name oder Standort erfasst. Das Datum wird zur Laufzeit aus Ihren Einstellungen und der Serveruhr berechnet, sodass es zu einem Besucher nichts zu speichern, zu exportieren oder zu löschen gibt — auf Besucherseite bestehen somit keine DSGVO-Pflichten.
Das Modul ist für PrestaShop 1.6 bis 9.x ausgelegt. Die Schätzung wird über den Hook displayProductAdditionalInfo eingebunden; bei Themes, die diesen Hook nutzen, erscheint der Block im Bereich der Zusatzinformationen der Produktseite, nahe dem In-den-Warenkorb-Bereich. Die Beschriftungen („Voraussichtliche Lieferung“, „Bestellen Sie innerhalb von … Stunden“) sind in den sechs Shop-Sprachen übersetzbar, die Wochentags- und Monatsnamen im Datum selbst werden jedoch von PHP erzeugt und erscheinen unabhängig von der aktiven Sprache auf Englisch.
Nein. Das Modul arbeitet vollständig über zwei PrestaShop-Hooks: filterCmsContent für CMS-Seitenüberschriften und actionOutputHTMLBefore für den gerenderten Linktext in Footern und Menüs. Beide werden bei der Installation registriert, und es werden keine .tpl-Template-Overrides und keine Core-Klassen-Overrides erstellt, sodass es mit Ihrem Theme kompatibel bleibt und Theme-Updates übersteht. Da actionOutputHTMLBefore die endgültige HTML-Ausgabe umschreibt, werden Ihre CMS-Linkbezeichnungen überall dort ersetzt, wo die standardmäßigen cms-page-link-Anker von PrestaShop erscheinen, ohne dass Sie eine einzige Template-Datei anfassen müssen.
Nein. Die einzige Tabelle des Moduls (mprcmsnames) speichert vier Spalten: id_cms, id_lang, id_shop und den von Ihnen eingegebenen display_name-Text, und nichts über Kunden, Bestellungen oder Besucher. Es liest keine personenbezogenen Daten und schreibt keine, sodass es keine Auswirkungen auf Ihre DSGVO-Pflichten oder Ihre Datenschutzerklärung hat. Es ist rein ein redaktionelles Beschriftungswerkzeug für Ihre CMS-Seiten.
Bei der Deinstallation wird die moduleigene Tabelle mprcmsnames gelöscht, sodass jeder von Ihnen gespeicherte individuelle Anzeigename entfernt wird. Ihre nativen PrestaShop-CMS-Seiten bleiben unberührt: ihre ursprünglichen Namen und Meta-Titel wurden ohnehin nie geändert, daher zeigt das Front Office einfach wieder die Standard-CMS-Titel an. An den Tabellen ps_cms oder ps_cms_lang wird zu keinem Zeitpunkt etwas geändert.
Nein. Es ist ein Modul mit Express-Zahlungsbuttons, kein Ersatz für den One-Page-Checkout. Ihr normaler PrestaShop-Checkout, die Gast- und Kontoabläufe sowie die Bestellbestätigung bleiben erhalten, und die standardmäßigen PrestaShop-Zahlungsarten stehen an der Kasse weiterhin zur Verfügung. Das Modul fügt lediglich schnellere Verknüpfungen für Apple Pay, Google Pay, PayPal, Link und Karte auf den von Ihnen gewählten Seiten hinzu (Produkt, Warenkorb, Produktliste oder eine benutzerdefinierte Platzierung), sodass Sie die Zahlungsgeschwindigkeit verbessern, ohne den Checkout-Prozess neu aufzubauen.
Ja, wenn Sie das Speichern von Karten in den Moduleinstellungen aktivieren. Ist es aktiv, fügt das Modul im Kundenkontobereich einen Link und eine eigene Seite für gespeicherte Karten hinzu, auf der angemeldete Kunden ihre gespeicherten Zahlungsmethoden für schnellere künftige Käufe ansehen und entfernen können. Die Kartendaten liegen bei Stripe und werden nicht in Ihrer PrestaShop-Datenbank gespeichert. Wenn Sie das Speichern von Karten deaktiviert lassen, werden keine Karten gespeichert und der Kontolink wird nicht angezeigt.
Für die Wiederherstellung abgebrochener Warenkörbe und die Diagnose erfasst das Modul Sitzungskontext wie die Identität des Kunden oder Gasts, Traffic-Quelle und Kampagnendetails, Gerätetyp, Browser und die darin verfügbaren Wallets sowie Erstbesuchsdaten. Tatsächliche Kartennummern werden von Stripe verarbeitet und nicht in PrestaShop gespeichert. Sie können optional ein Datenschutz-Einwilligungskästchen mit eigenem Text im Express-Bezahlvorgang aktivieren, das auf die Datenschutzseite Ihres Shops verlinkt, damit Kunden vor der Zahlung zustimmen.
FAQ Manager deklariert Kompatibilität von PrestaShop 1.6.1.0 bis zu Ihrer installierten Version 9.x und bringt eine für PrestaShop 1.6 sichere ObjectModel-Schicht mit, sodass dieselben Modelle über diese Versionen hinweg funktionieren.
Jede FAQ-Kategorie, Frage, Antwort, jede sprechende URL, jeder Meta-Titel und jede Meta-Beschreibung wird pro Sprache in den _lang-Tabellen des Moduls gespeichert, sodass die FAQ vollständig mehrsprachig ist - jede Sprache behält ihren eigenen Text und ihren eigenen Slug.
Multishop wird über die Zuordnungstabelle Frage-zu-Shop unterstützt, sodass eine Frage auf die von Ihnen gewählten Shops beschränkt werden kann, statt jedem Store der Gruppe aufgezwungen zu werden.
Der Produkt-FAQ-Tab lädt nur Fragen, die diesem Produkt direkt zugewiesen sind; ist nichts zugewiesen, zeigt der Tab nichts an, statt fremde Kategorieinhalte einzublenden.
Um Produktseiten leicht zu halten, behandelt das Modul Antworten nach ihrem Geltungsbereich: Eine genau einem Produkt zugeordnete Frage kann ihre Antwort direkt im anfänglichen Seiten-HTML rendern, während eine über mehrere Produkte geteilte Frage als verwandt gilt und ihre Antwort erst dann per Lazy Loading nachgeladen wird, wenn ein Kunde sie öffnet.
Die Auflistung berücksichtigt außerdem das Veröffentlichungsdatum, Kundengruppen-Einschränkungen und das Datum der Antwortfreigabe; die Ergebnisse werden nach der Bilanz hilfreicher Stimmen und Aktualität sortiert, sodass die nützlichsten Antworten zuerst erscheinen.
Die interaktiven Funktionen speichern nur das, was sie zum Funktionieren brauchen. Eine hilfreiche oder nicht hilfreiche Stimme wird in einer Stimmen-Tabelle mit dem Entitätstyp, der Entitäts-ID und der Besucher-IP-Adresse erfasst, die dazu dient, eine Stimme pro IP je Frage oder Antwort durchzusetzen; ein PrestaShop-Cookie wird nur gesetzt, damit sich die Oberfläche merkt, wie Sie abgestimmt haben.
Wenn ein Besucher eine Frage stellt, speichert der Pending-Datensatz Name, E-Mail, Fragetext, Sprache, Shop, Produkt- oder Kategoriekontext und IP mit dem Status ausstehend, sodass nichts öffentlich erscheint, bis ein Mitarbeiter es freigibt. Die Formulare begrenzen Fragen- und Antworttext auf 5000 Zeichen und nutzen ein Honeypot-Feld sowie ein Limit ausstehender Fragen pro E-Mail und Kategorie (Standard 2), um Spam einzudämmen.
Auf reinen Lese-FAQ-Seiten deaktiviert das Modul das Schreiben von Cookies, sodass bloßes Durchsehen der Fragen keine Session-Schreibvorgänge auslöst.
Ja. Anfragen werden pro Shop und pro Sprache gespeichert, und die öffentlichen URLs sind für jede Shop-Sprache lokalisiert.
- Trennung pro Shop: jede Anfrage trägt eine
id_shop, der Slug ist pro(slug, id_shop)eindeutig, und die Roadmap-Abfrage filtert nachid_shop, sodass die Ideen eines Shops nie im Board eines anderen Shops erscheinen. - Inhalte pro Sprache: jede Anfrage speichert ihre Sprache, und für die sechs Sprachen sind lokalisierte Routen-Präfixe definiert — Englisch
feature-requests, Deutschfunktionswuensche, Französischdemandes-de-fonctionnalites, Polnischpropozycje-funkcji, Italienischrichieste-funzionalita, Spanischsolicitudes-de-funciones— mit Rückfall auffeature-requestsfür andere Sprachen. - Sprechende URLs: Hub, produktspezifische Seiten, einzelne Anfrageseiten und paginierte Listen erhalten jeweils ihre eigene lokalisierte URL.
Das Modul speichert die Identität und die IP-Adresse des Einsenders zur Moderation und zum Missbrauchsschutz und entfernt diese Angaben anschließend aus den öffentlichen Antworten.
- Was gespeichert wird: für jede Anfrage die Kunden-ID oder bei Gästen ein Name und eine validierte E-Mail-Adresse sowie die IP-Adresse des Besuchers aus
Tools::getRemoteAddr(), zusammen mit Titel, Beschreibung, Status, Sprache und Shop. - Wozu die IP: sie begrenzt Einsendungen auf maximal 3 pro Produkt und IP pro Tag und verhindert doppelte Gast-Stimmen, die standardmäßig ohne Login möglich sind.
- Nicht öffentlich sichtbar: bevor eine Liste an den Browser gesendet wird, entfernt das Modul
customer_email,ip_addressundid_customeraus der Antwort, sodass andere Kunden nie sehen, wer eine Idee eingereicht hat, noch deren E-Mail oder IP.
Da E-Mail und IP gespeichert werden, sollten Sie diese Daten in Ihrer Datenschutzerklärung erwähnen.
Das Modul ist für PrestaShop 1.7.6.0 und neuer ausgelegt und deckt 1.7, 8.x und 9.x ab. Die angegebene Kompatibilität lautet min 1.7.6.0 bis zur laufenden PrestaShop-Version.
Es ist ein Bootstrap-Back-Office-Modul, das vollständig im Back Office ohne Programmierung eingerichtet wird. Der Produktseiten-Tab wird über einen Anzeige-Hook hinzugefügt, sodass kein Template-Override oder Theme-Eingriff nötig ist — er erscheint nur, wenn ENABLED und SHOW_ON_PRODUCT aktiv sind und das Produkt ermittelt werden kann. Die öffentliche Roadmap und die Anfrageseiten nutzen die eigenen sprechenden Routen des Moduls statt Theme-Dateien.
Nur den Ereignisnamen. Die Events API von Hotjar läuft im Browser und akzeptiert ausschließlich einen Ereignisnamen, keine Ereigniseigenschaften. Das Modul sendet deshalb saubere Namen wie product_view, add_to_cart und purchase mit hj('event', '...') an Hotjar.
Details wie Bestellwert, Währung und Produkt-IDs werden vom Modul weiterhin aufbereitet, aber zur Transparenz nur im Demo-Ereignismonitor angezeigt und nicht an Hotjar übertragen. Anhand der Ereignisnamen filtern Sie Aufzeichnungen, Heatmaps, Funnels und Umfragen rund um relevante Kaufmomente.
Jedes Ereignis hat im Back Office seinen eigenen Schalter, sodass Sie nur das senden, was Sie brauchen. Die integrierten Ereignisse sind Seitenaufruf, Produktansicht, Kategorieansicht, In den Warenkorb, Auf die Wunschliste, Checkout-Start, Suche, Kauf und Kundenregistrierung.
Benutzerdefinierte Ereignisregeln sind eine separate Einstellung und standardmäßig deaktiviert, sodass nichts Zusätzliches ausgelöst wird, bis Sie eigene Regeln hinzufügen.
Ja. Neben den integrierten E-Commerce-Ereignissen können Sie im Back Office benutzerdefinierte Ereignisregeln als JSON definieren. Eine Regel kann bei einem Klick auf einen CSS-Selektor ausgelöst werden, wenn die URL ein Fragment enthält, bei einem bestimmten PrestaShop-Controller oder -Modul oder bei einem DOM-Ereignis, das Sie auslösen.
Die Regeln laufen über das Front-Office-Skript des Moduls, sodass Sie keine Theme-Dateien anfassen. Benutzerdefinierte Ereignisse bleiben deaktiviert, bis Sie sie aktivieren und mindestens eine Regel hinzufügen.
Jede Treuestufe ist mit einer nativen PrestaShop-Kundengruppe verknüpft. Erreicht ein Kunde eine Stufe, fügt das Modul ihn dieser Gruppe hinzu und entfernt die Gruppe der vorherigen Stufe, wobei die Standard-Kundengruppe Ihres Shops stets erhalten bleibt. Die eigentliche Preisreduzierung erfolgt über die native Gruppenpreisgestaltung von PrestaShop und alle Katalogpreisregeln, die Sie dieser Gruppe zuweisen, sodass Ihre bestehenden Gruppenrabatte, Steuerregeln und Beschränkungen weiterhin funktionieren. Der im Kundenkonto angezeigte Prozentsatz ist der angekündigte Wert der Stufe zur Anzeige; den tatsächlichen Rabatt konfigurieren Sie also an der verknüpften Kundengruppe.
Die Ausgaben werden pro Shop erfasst. Jeder Treuedatensatz ist pro Kunde und Shop eindeutig, und sowohl die Erfassung bei Bestellung als auch die Neuberechnung summieren nur Bestellungen des jeweiligen Shops. Ein Kunde, der in zwei Shops derselben Installation kauft, baut daher in jedem Shop eine eigene Ausgabensumme und Stufe auf. Die verknüpfte Kundengruppe wird im Kundenkonto hinzugefügt, und die Standard-Kundengruppe des Shops bleibt stets erhalten.
Die Installation überträgt den bisherigen Verlauf nicht automatisch; neue Ausgaben werden ab der nächsten bestätigten Bestellung erfasst. Um bestehende Kunden zu initialisieren, führen Sie die Neuberechnung aus, die für jeden Kunden die vergangenen Bestellungen in den konfigurierten gültigen Bestellstatus (pro Shop) summiert und die passende Stufe zuweist. Dieselbe Neuberechnung läuft automatisch, wenn eine Bestellung später in einen konfigurierten Storno- oder Erstattungsstatus wechselt, sodass die Gesamtsumme eines Kunden stets die tatsächlich behaltenen Ausgaben widerspiegelt und kein reiner Zähler ist, der nie sinkt.
Das Modul deklariert ps_versions_compliancy von 1.6.0.0 bis zur laufenden PrestaShop-Version, und der Datei-Header nennt PS 1.6 bis 9.x. composer.json setzt PHP 7.2 oder neuer voraus. Es registriert nur den Hook displayHeader und ist daher nicht auf Front-Controller-APIs angewiesen, die sich zwischen Hauptversionen geändert haben.
Nein. Es registriert nur Back-Office-Hooks — displayBackOfficeHeader, displayAdminOrder, displayAdminOrderMainBottom und actionOrderStatusPostUpdate — und liefert keinen Front-Office-Controller. Teams, Workflow-Status, Kommentare, Erinnerungen und Benachrichtigungen sind interne Mitarbeiterwerkzeuge, daher sehen Kunden nichts Zusätzliches im Shop.
Ja. Der Konfigurationsbildschirm hat einen Reiter Berechtigungen mit unabhängigen Schaltern: Kunde ändern, Adresse ändern, Versanddienstleister ändern, Rabatte verwalten und Produkte hinzufügen. Jeder Schalter wird als Boolescher Wert gespeichert, sodass Sie zum Beispiel Produkt- und Mengenänderungen aktiviert lassen und gleichzeitig die Kundenneuzuweisung deaktivieren können. Nach der Installation sind alle Schalter standardmäßig aktiviert.
Auf der Seite Ausstehende Zahlungen ruft die Aktion Als bezahlt markieren die Methode markAsPaid() auf, die is_paid auf 1 setzt, das Zahlungsdatum speichert und die ID des bestätigenden Mitarbeiters festhält. Befindet sich die verknüpfte PrestaShop-Bestellung noch im Status Warten auf aufgeschobene Zahlung, wird sie zusätzlich auf Zahlung eingegangen (PS_OS_PAYMENT) gesetzt; eine Bestellung in einem anderen Status bleibt unverändert. Da der Betrag nicht mehr als offen gilt, wird zudem das verfügbare Kreditlimit des Kunden für neue Bestellungen wieder freigegeben.
Nein. Blog Revolution entscheidet bei jedem Seitenaufruf über die Sichtbarkeit, es ist also kein Cronjob oder geplanter Task einzurichten.
Vor der Anzeige eines Beitrags im Shop werden zwei Bedingungen geprüft:
- Der Status muss Veröffentlicht sein – Entwürfe und archivierte Beiträge werden Besuchern nie angezeigt.
- Das Veröffentlichungsdatum muss erreicht sein – jede Front-Office-Abfrage filtert auf
date_published <= NOW().
Um einen Artikel zeitgesteuert zu veröffentlichen, setzen Sie ihn auf Veröffentlicht und geben ein zukünftiges Datum an. Er bleibt verborgen, bis dieser Zeitpunkt erreicht ist, und erscheint dann automatisch beim nächsten Aufruf einer Blogseite – ganz ohne Hintergrundjob. Dieselbe Datumsprüfung hält zukünftig datierte Beiträge auch aus Listen, Kategorien, Tags, Archiven, dem RSS-Feed und der XML-Sitemap fern, bis ihre Zeit gekommen ist.
Da die Prüfung live und nicht durch einen Scheduler erfolgt, benötigen Sie keinen Shell- oder Cron-Zugriff auf Ihrem Hosting – praktisch in eingeschränkten oder Shared-Hosting-PrestaShop-Umgebungen.
Auf jeder Storefront-Seite sendet der Header ein $pageViewed-Ereignis an die omnisend-Warteschlange und lädt Omnisends externes launcher-v2.js von omnisnippet1.com. Ist ein Kunde angemeldet, übergibt hookDisplayHeader() zusätzlich dessen E-Mail-Adresse in einem identify-Aufruf; Gäste senden keine E-Mail. Warenkorb-, Bestell- oder Zahlungsdaten sendet das Modul nicht. Da eine E-Mail eines angemeldeten Kunden Ihren Shop an einen Dritten verlässt, bleiben Sie für die passende Einwilligung und den Datenschutzhinweis verantwortlich.
Ja. Jedes Team speichert eine id_shop und verwendet standardmäßig den aktuellen Shop-Kontext (Shop::getContextShopID()); Team-Abfragen werden nach Shop gefiltert. Öffnet ein Mitarbeiter das Workflow-Panel einer Bestellung oder schreibt einen Kommentar, prüft das Modul zuerst mit hasAuthOnShop(), ob der Mitarbeiter für den Shop der Bestellung berechtigt ist, bevor etwas angezeigt oder gespeichert wird.
Vor dem Anwenden von Änderungen prüft der Editor, ob die Bestellung eine Rechnung hat, und die Mitarbeiter werden gewarnt, dass eine Korrektur erforderlich sein kann. Eine standardmäßig aktivierte Einstellung für automatische Korrekturdokumente erzeugt beim Bearbeiten einer Bestellung mit Rechnung ein Korrekturdokument (Gutschrift) für die Differenz. Sie können sie deaktivieren, wenn Sie Korrekturdokumente lieber manuell erstellen möchten.
Ja. Jede aufgeschobene Bestellung wird mit der id_shop gespeichert, in der sie aufgegeben wurde, und die Prüfung des offenen Saldos (getOutstandingByCustomer()) erfolgt pro Shop. Der unbezahlte Gesamtbetrag eines Kunden in einem Shop wird also nicht auf Bestellungen in einem anderen Shop angerechnet. Auch die Liste im Kundenkonto ist auf den aktuellen Shop gefiltert. Kreditlimits werden hingegen pro Kundengruppe in mpr_pt_credit_limit gespeichert, das nur nach id_group ohne Shop-Spalte indiziert ist — derselbe Grenzwert gilt daher für diese Gruppe in jedem Shop, in dem sie existiert.
Ja. Blog Revolution speichert Blog-Inhalte pro Sprache und pro Shop, sodass ein Multishop- oder mehrsprachiges PrestaShop unterschiedliche (oder gemeinsame) Blogs betreiben kann, ohne dass Inhalte zwischen Shops überlaufen.
So funktioniert es im Datenmodell:
- Beiträge, Kategorien und Autoren halten ihre übersetzbaren Felder – Titel, Auszug, Inhalt, Meta-Titel/-Beschreibung und den
link_rewrite-Slug – in sprachspezifischen Tabellen, eine Zeile pro Sprache. - Jede Front-Office-Abfrage verknüpft die Übersetzung des Beitrags mit der aktuellen Sprache und seine Shop-Zuordnung mit dem aktuellen Shop, sodass jeder Shop nur die ihm zugewiesenen Beiträge auflistet, jeweils in der Sprache des Besuchers.
- Auch der WordPress-Import und der XML-/JSON-Export arbeiten für den Shop und die Sprache, für die Sie sie ausführen.
Ein ehrlicher Hinweis: Mehrsprachig bedeutet, dass die Felder übersetzbar sind, nicht maschinell übersetzt. Sie schreiben jede Sprachversion selbst (oder importieren sie); ein Beitrag muss zudem einem Shop zugeordnet sein, um dort zu erscheinen. Bleibt bei einem Massenimport der Slug einer Übersetzung leer, kann das Modul die fehlenden link_rewrite-Werte neu erzeugen, damit Listen nicht auf die Blog-Index-URL zurückfallen.
Ja. Die Einstellung Schutzbereich bietet zwei Modi: Gesamter Shop und Ausgewählte CMS-Seiten, Kategorien und Produkte. Im ausgewählten Modus fängt das Gate nur die Produkt-, Kategorie- und CMS-Seiten ab, deren IDs mit Ihrer gespeicherten Auswahl übereinstimmen (in PROTECTED_ENTITIES gespeichert); alle anderen Seiten werden normal geladen. Der Standardmodus schützt den gesamten Shop.
Wenn die Option Suchmaschinen abhalten aktiviert ist (Standard), antwortet die Passwortseite mit HTTP 503 Service Temporarily Unavailable, einem Retry-After: 86400-Header und X-Robots-Tag: noindex, nofollow. Das signalisiert Crawlern, dass die Sperre vorübergehend ist, und bittet sie, den geschützten Shop nicht zu indexieren. Deaktivieren Sie die Option, wenn das Gate eine normale 200-Antwort zurückgeben soll.
Nein. Die einzige Datenbanktabelle, die es anlegt, ist mpr_pack_content mit drei Ganzzahlen pro Zeile: id_pack, id_product und position. Es setzt keine Cookies, nutzt keinen lokalen Speicher und liest keine Kundendaten. Die Frontend-Skripte fügen den Produktkarten nur ein Bundle-Abzeichen hinzu und zeigen die Liste der enthaltenen Produkte an. Für DSGVO-Anfragen gibt es daher nichts zu exportieren oder zu löschen.
Ja. Das Frontend-Skript überwacht den Container #js-product-list mit einem MutationObserver und wendet das Bundle-Abzeichen erneut an, sobald die Liste per AJAX aktualisiert wird, etwa durch Facettensuche oder Infinite Scroll, sodass auch neu geladene Paketkarten gekennzeichnet werden.
Der Exporter ruft Shop::isFeatureActive() auf. Ist Multistore aktiv, wird die Abfrage auf den aktuellen Kontext-Shop beschränkt (o.id_shop = current shop), sodass die Datei nur die Bestellungen dieses Shops enthält. Ist Multistore deaktiviert, wird keine Shop-Bedingung hinzugefügt und alle Bestellungen werden exportiert.
Ja. Die Datei wird als text/csv; charset=utf-8 mit einem UTF-8-BOM (EF BB BF) am Anfang gesendet, sodass Excel UTF-8 erkennt und Akzente korrekt anzeigt. Jeder Wert wird in doppelte Anführungszeichen gesetzt, sodass ein Trennzeichen oder Zeilenumbruch innerhalb eines Feldes die Spalten nicht zerstört.
Ja. RESPECT_CONSENT ist standardmäßig aktiviert: Wenn mprcookiesrevolution oder mprcookiebanner aktiv ist, wartet das Tracking auf die Marketing-Einwilligung. Es liest das Cookie mprcr_consent oder mprcookie_consent und wird erst ausgelöst, sobald Marketing zugestimmt wurde. EXCLUDE_EMPLOYEES ist ebenfalls standardmäßig aktiv, sodass ein angemeldeter Mitarbeiter im Shop nicht getrackt wird. Beide Optionen können in den Moduleinstellungen deaktiviert werden.
Auf jeder Seite liest das Header-Skript ob_click_id (akzeptiert auch outbrain_click_id oder dicbo) aus der Landing-URL und speichert sie 90 Tage lang in einem First-Party-Cookie mproutbr_ob_click_id. Wenn S2S aktiviert ist, wird ein Ereignis aus der Warteschlange nur dann an Outbrain gesendet, wenn es eine gültige Click-ID enthält (Buchstaben, Zahlen, Punkte, Unterstriche, Doppelpunkte und Bindestriche, bis zu 500 Zeichen); Ereignisse ohne Click-ID werden übersprungen. Die Option S2S_SEND_IP_UA steuert, ob IP- und User-Agent-Metadaten aufbewahrt werden.
Ja. Bei der Installation liest Lightweight Cookie Banner die Stylesheets Ihres aktiven Themes aus und ermittelt daraus eine Start-Farbpalette, damit das Banner wie ein Teil Ihres Shops wirkt und nicht wie ein fremdes Overlay.
Die Erkennung liest die custom.css und theme.css Ihres Themes und, falls diese fehlen, den kompilierten CCC-Cache, und übernimmt Farben aus:
- Bootstrap-5-/Hummingbird-CSS-Variablen —
--bs-primarywird zur Akzeptieren-Schaltfläche,--bs-darkzum Banner-Hintergrund. - der Regel
.btn-primary, die die Variablen überschreibt, wenn sie vorhanden ist, für Hintergrund und Text der Akzeptieren-Schaltfläche. - dem Hintergrund von
.header-top, der für den Banner-Hintergrund wiederverwendet wird.
Zusätzlich prüft es die Helligkeit jeder Farbe, damit der Text lesbar bleibt: Ein dunkles Banner erhält hellen Text und eine hellere Ablehnen-Beschriftung, ein helles Banner dunklen Text. Wird kein Theme-CSS gefunden, greift ein sinnvoller Rückfall mit dunklem Banner, weißem Text und blauer Akzeptieren-Schaltfläche.
Ein ehrlicher Hinweis: Diese Palette wird einmal bei der Installation als Ausgangspunkt ermittelt. Sie wird nicht automatisch neu erkannt, wenn Sie später das Theme wechseln. Jede Farbe — Banner-Hintergrund und -Text, Farben der Akzeptieren- und Ablehnen-Schaltfläche — ist eine normale Einstellung, die Sie jederzeit in der Modulkonfiguration manuell überschreiben können.
Lightweight Cookie Banner ist für PrestaShop 1.6, 1.7, 8.x und 9.x ausgelegt. Die Versionskompatibilität ist von 1.6.0.0 bis zu Ihrer installierten PrestaShop-Version angegeben, sodass es sich über diesen gesamten Bereich installieren lässt.
Das Modul lädt sein Front-end-CSS und -JavaScript versionsabhängig. Unter PrestaShop 1.7 und neuer registriert es Stylesheet und Skript über actionFrontControllerSetMedia, wobei das Skript am Seitenende geladen wird; unter PrestaShop 1.6 greift es auf addCSS und addJS im Header-Hook zurück. Das Banner-Markup selbst wird über die Footer-Hooks gerendert und ist so abgesichert, dass es nur einmal ausgegeben wird, obwohl es an displayFooter und displayFooterAfter gleichzeitig hängt.
Es ist ein Front-office-Banner mit einer Back-office-Konfigurationsseite und benötigt kein externes Konto und keinen externen Dienst — die Entscheidung des Besuchers wird in einem First-Party-Cookie auf Ihrer eigenen Domain gespeichert. Eine Regel bei der Installation: Es lässt sich nicht installieren, solange Cookies Revolution aktiv ist, da nur ein Cookie-Consent-Modul den Shop steuern sollte.
Ab PrestaShop 8.2 nutzt das Modul den Hook actionGenerateDocumentReference (Typ order) und gibt die formatierte Referenz zurück. Unter PrestaShop 1.7.x, wo dieser Hook nicht existiert, wird ein Order::generateReference()-Override verwendet, der an das Modul delegiert. Ist die Nummerierung deaktiviert oder liefert nichts zurück, verwendet PrestaShop wieder seine zufällige Standardreferenz.
Das Modul ist mit PrestaShop 1.6, 1.7, 8.x und 9.x kompatibel. Die Versionskompatibilität ist auf ein Minimum von 1.6.0.0 und ein Maximum entsprechend Ihrer laufenden PrestaShop-Version eingestellt, sodass es sich ohne manuelle Anpassung auf aktuellen Shops installieren lässt.
Nein. Die Einstellung Anzeige-Hook ist eine einzelne Auswahl: Das Widget wird entweder unter dem Produkt (displayFooterProduct) oder auf der Startseite (displayHome) angezeigt, nicht an beiden Stellen gleichzeitig. Wählen Sie die Platzierung, die am besten zu Ihrem Ablauf passt. Das Tracking-Skript erfasst Aufrufe weiterhin auf jeder Produktseite, unabhängig davon, wo der Block angezeigt wird.
Das Modul erkennt und wendet Regeln auf fünf Front-Office-Seitentypen an: Produktseiten, Kategorieseiten, CMS-Seiten, Herstellerseiten und Lieferantenseiten. Wenn ein Besucher eine dieser Seiten öffnet, ermittelt Product Canonical Manager die Entität aus dem Controller und sucht nach einer passenden Regel für dieses product, category, cms, manufacturer oder supplier.
Seiten, die nicht an eine dieser Entitäten gebunden sind — etwa die Startseite, Suchergebnisse, der Warenkorb oder Kontoseiten — werden von Regeln nicht erfasst, da das Modul keine Entität hat, mit der es sie abgleichen kann. Seine Aufgabe ist es, die Canonical-, Robots- und hreflang-Signale auf den Katalog- und Inhaltsseiten zu steuern, die Suchmaschinen tatsächlich indexieren.
Ja. Die Zähler werden pro Shop gespeichert: Die Tabelle mprordernumber_counter hat einen eindeutigen Schlüssel auf (id_shop, scope_type, scope_id), und der Generator liest die Shop-ID des aktuellen Kontexts. Jeder Shop erhöht seinen eigenen Zähler, sodass Bestellungen in einem Shop keine Nummern eines anderen verbrauchen.
Nein. Wenn beide Wege aktiv sind, erzeugt das Modul eine einzige Event-ID für den Kauf und übergibt dieselbe ID sowohl an den Browser-Pixel als auch an das in die Warteschlange gestellte Conversions-API-Ereignis. Quora nutzt diese gemeinsame Event-ID, um Browser- und Server-Ereignis als eine Conversion zu erkennen und zu deduplizieren.
Die Liste behält bis zu der unter Maximale Produktanzahl eingestellten Zahl (Standard 8), und das Browser-Cookie, das die IDs speichert, wird bei jedem Produktaufruf auf eine Laufzeit von 30 Tagen aufgefrischt. Das aktuell angesehene Produkt wird aus der Liste entfernt, und die serverseitige Abfrage begrenzt die Anfrage zusätzlich auf 20 IDs, bevor sie geladen werden. Es werden nur gültige, aktive Produkte zurückgegeben, sodass gelöschte oder deaktivierte Artikel automatisch aus dem Block verschwinden.
Nein. Product Canonical Manager bearbeitet niemals Ihre Produkt-, Kategorie- oder CMS-Datensätze und ändert keine Theme-Dateien. Es arbeitet vollständig zur Ausgabezeit über den Hook actionOutputHTMLBefore und schreibt den fertigen HTML-<head> unmittelbar bevor die Seite an den Browser gesendet wird um — es ersetzt oder fügt das Canonical-Tag ein, ergänzt Robots-Direktiven und baut hreflang-Links so auf, wie es Ihre Regeln vorgeben.
Da nichts in Ihren Katalog oder Ihre Templates geschrieben wird, ist die Änderung vollständig reversibel: Deaktivieren Sie eine Regel, kehrt die Seite zur Standardausgabe von PrestaShop zurück; deinstallieren Sie das Modul, wird seine Regeltabelle entfernt. Das Modul speichert nur Ihre SEO-Regeln — keine Kunden- oder personenbezogenen Daten — und vergrößert somit Ihren DSGVO-Fußabdruck nicht.
Ja. Neben den Standardereignissen können Sie eigene Browser-Ereignisregeln definieren, die bei Klicks auf Elemente, bei bestimmten URLs, bei passenden Controllern oder Seiten oder bei DOM-Aktionen ausgelöst werden. Ereignisname, Selektor, URL und Parameterschlüssel jeder Regel werden vor dem Speichern geprüft und bereinigt, sodass nur wohlgeformte Regeln gespeichert werden.
Ja, JavaScript muss aktiviert sein: Das Cookie wird gelesen und geschrieben und die Produktkarten werden per AJAX geladen, vollständig im Browser des Besuchers. Da die personalisierte Liste clientseitig nach dem Rendern der Seite geladen wird, bleibt der Block pro Besucher korrekt, selbst wenn die umgebende Seite aus dem Full-Page- oder CDN-Cache ausgeliefert wird — nichts Besucherspezifisches wird in das zwischengespeicherte HTML eingebettet. Ist JavaScript deaktiviert, bleibt der Block einfach ausgeblendet.
Ja. Jede Regel trägt einen Shop-Geltungsbereich: Sie kann für einen bestimmten Shop gelten oder für alle Shops, wenn ihr id_shop auf 0 gesetzt ist. In einer Multistore-Installation lädt der Resolver nur Regeln, deren Shop dem aktuellen Shop oder dem Alle-Shops-Wert entspricht, sodass jeder Shop seine eigene Canonical- und Indexierungsrichtlinie haben und gleichzeitig globale Regeln teilen kann.
Wenn mehrere Regeln auf dieselbe Seite passen, ordnet das Modul sie nach priority (höchste zuerst), und die erste Regel mit einer Canonical-Aktion bestimmt die Canonical-URL der Seite. noindex- und nofollow-Flags sind kumulativ — setzt eine passende Regel sie, werden sie angewendet — sodass eine breite gruppenweite noindex-Regel und eine spezifische Canonical-Regel konfliktfrei zusammenwirken.
Ja. Jeder Aufruf wird mit dem Shop gespeichert, in dem er stattgefunden hat, und jede Zählung – Aufrufe, Verkäufe, aktuelle Betrachter und die Liste der letzten Käufe – wird nach dem aktuellen Shop gefiltert. Verkäufe werden ausschließlich aus den gültigen Bestellungen dieses Shops gelesen. So zeigt jeder Store in einem PrestaShop-Multistore seine eigenen Zahlen, und nichts wird zwischen den Shops vermischt.
Ja. Eine Untertitel-Regel kann Platzhalter enthalten, die das Modul pro Seite aus Ihren Katalogdaten befüllt, sodass ein Wortlaut über eine ganze Kategorie oder Marke hinweg passend bleibt. Enthält ein Untertitel Platzhalter, verarbeitet der Resolver sie vor der Ausgabe über die Platzhalter-Engine anhand der aktuellen Entität, Sprache und des Shops.
Unterstützt werden {name} (Name von Produkt, Kategorie, CMS, Hersteller oder Lieferant), {reference} und {ean13} für Produkte, {price} (der formatierte Produktpreis), {manufacturer}-Name und {category} (Name der Standardkategorie) sowie {feature:X} für einen Merkmalswert und {attribute:X} für einen Kombinationswert.
Da Platzhalter zur Laufzeit in der aktuellen Sprache aufgelöst werden, hält eine einzige Sammelregel nach Kategorie, Marke oder Lieferant jede Seite korrekt, ohne Produkte einzeln zu bearbeiten. Untertiteltext ohne Platzhalter wird genau so ausgegeben, wie er geschrieben ist.
Nein. Bevor ein Aufruf gespeichert wird, prüft das Modul, ob der Besucher menschlich wirkt. Wenn die gemeinsamen Sitzungsdaten verfügbar sind, überspringt es alles, was als Bot, Rechenzentrum oder interner Verkehr markiert ist; andernfalls greift es auf eine Prüfung des User-Agents gegen eine lange Liste bekannter Crawler und Automatisierungstools zurück (Googlebot, Bingbot, AhrefsBot, SemrushBot, GPTBot, Headless-Browser, curl/wget und Ähnliche). Bot-Aufrufe werden nicht gespeichert, und wiederholte Besuche desselben Kunden werden 30 Minuten lang ignoriert, sodass eine Person durch das Neuladen der Seite den Zähler nicht aufblähen kann.
Der Untertitel wird vom Hook displayMprSubtitle ausgegeben, der direkt nach der Überschrift in Ihrem Theme stehen muss. Der Template Placement Manager durchsucht die .tpl-Dateien des aktiven Themes nach dem h1 (bzw. dem h2/h3 auf Listenkarten) je Seitentyp und fügt den Hook-Aufruf danach ein.
Die Platzierung überschreibt Ihr Eltern-Theme nicht. Liegt die Überschrift im Eltern-Theme, erstellt das Modul ein minimales Child-Theme-Override mit {extends} und einem {block}-Override und kopiert nur den Block mit der Überschrift statt der ganzen Datei.
Wenn Sie die volle Kontrolle möchten, können Sie den Scanner überspringen und {hook h='displayMprSubtitle'} von Hand an beliebiger Stelle in Ihre Templates einfügen; Themes, die bereits displayProductSubtitle verwenden, können diesen Alias aufrufen. Da die Ausgabe stets über einen Standard-Hook läuft, erscheinen Untertitel, ohne Modul-Markup fest in Kerndateien zu schreiben.
Der Aufruf-Tracker speichert pro Besuch nur vier Dinge: die Produkt-ID, die Shop-ID, die anonyme Gast-ID von PrestaShop und einen Zeitstempel – keine Namen, E-Mail-Adressen oder IP-Adressen. Das Popup der letzten Käufe liest vorhandene Bestell- und Kundendaten direkt aus Ihrer eigenen Datenbank, statt sie in eine neue Tabelle zu kopieren, und Käufernamen können auf den Anfangsbuchstaben gekürzt werden. Alte Aufruf-Einträge werden automatisch auf etwa das Doppelte Ihres konfigurierten Zeitraums bereinigt, und beim Deinstallieren wird die Tabelle des Moduls vollständig gelöscht.
Ja. Advanced SEO Sitemap Builder ist auf geplante Generierung ausgelegt, daher richten Sie den Cron Ihres Servers (oder einen externen Cron-Dienst) auf eine eigene Cron-URL aus. Das Modul baut nicht bei jedem Seitenaufruf still alle Dateien neu auf — die geplante Ausführung hält diese Arbeit von den Anfragen Ihrer Besucher fern.
Der Cron-Endpunkt ist durch einen privaten Zugriffs-Token geschützt, der bei der Installation automatisch erzeugt wird und jederzeit im Back Office neu generiert werden kann. Eine Anfrage ohne den korrekten Token wird mit einem 403 abgewiesen, sodass die Generierungs-URL nicht öffentlich offen liegt.
Zwei Schutzmechanismen verhindern überlappende oder zu häufige Läufe: Läuft bereits eine Generierung, wird ein zweiter Aufruf übersprungen (ein hängengebliebener Lauf wird nach etwa 30 Minuten automatisch freigegeben), und ein Mindestintervall — standardmäßig eine Stunde — verhindert einen zu häufigen Neuaufbau. Sie können den Cron beliebig oft aufrufen; er meldet einfach, dass die Generierung kürzlich lief, bis das Intervall abgelaufen ist.
Ja. Advanced SEO Sitemap Builder arbeitet pro Shop. Jeder Shop erhält seine eigene Sitemap-Index-Datei und seine eigenen Unterdateien, und die Generierung läuft im Shop-Kontext der Anfrage — URLs werden also für genau diesen Shop erfasst und geschrieben statt vermischt.
Der Schutz, der ein Überlappen zweier Generierungen verhindert, wird pro Shop verfolgt, sodass ein langer Lauf in einem Shop die Dateien eines anderen nicht stört. Auch der Sitemap-Link, den das Modul in den Seitenkopf einfügt, verweist auf den Sitemap-Index des Shops, den der Besucher gerade ansieht.
Ja. In den Moduleinstellungen koennen Sie das Widget auf alle Seiten, nur Produktseiten, nur Kategorieseiten oder nur Checkout-Seiten (Warenkorb und Bestellung) beschraenken, und ein separater Schalter "Auf Mobilgeraeten anzeigen" verhindert das Laden auf Mobilgeraeten. Die Seitenregel wird serverseitig geprueft, bevor der Smartsupp-Loader ausgegeben wird, sodass auf ausgeschlossenen Seiten gar kein Chat-Skript eingebunden wird.
Nein. Die Aufgabe dieses Moduls ist es, das Smartsupp-Widget anhand Ihres Website-Keys in Ihrem Shop zu laden. Funktionen wie Chatbots, Sitzungs-Videoaufzeichnungen und Multichannel-Messaging werden in Ihrem Smartsupp-Konto konfiguriert und haengen von Ihrem Smartsupp-Tarif ab, nicht von PrestaShop. Sobald das Widget verbunden ist, wird alles, was Sie in Smartsupp aktivieren, darueber bereitgestellt.
Nein. Name und E-Mail-Adresse des Kunden werden nur dann an Smartsupp uebergeben, wenn die Option "Kundendaten uebergeben" aktiv ist und der Kunde angemeldet ist. Bei Gaesten oder nicht angemeldeten Besuchern wird nichts vorausgefuellt - der Chat funktioniert weiterhin, startet aber ohne diesen Kontext. Sie koennen "Kundendaten uebergeben" auch vollstaendig deaktivieren, wenn Sie keine personenbezogenen Daten senden moechten.
mpr_tax_display gespeichert; die Umschaltanfrage vermeidet bewusst das Schreiben des privaten PrestaShop-Session-Cookies und ist als no-store und noindex gekennzeichnet. Da Cache-Key- und Cookie-Regeln variieren, testen Sie das Verhalten in Ihrer eigenen CDN-/Full-Page-Cache-Umgebung.Es geht nichts verloren, denn das Modul speichert den Alt-Text niemals in Ihrer Datenbank. Automatic SEO Images Alt Tags setzt den Wert des Bild-legend-Felds (Alt) im Arbeitsspeicher, waehrend jede Produkt-, Listen- oder Kategorieseite aufgebaut wird - es schreibt nicht in Ihre Bilddatensaetze. Der erzeugte Alt-Text existiert nur, solange das Modul aktiv ist.
Wenn Sie das Modul ueber den Schalter enabled abschalten oder es vollstaendig deinstallieren, laufen die Presenter-Hooks nicht mehr und die Seiten fallen auf den in PrestaShop gespeicherten Alt-Text zurueck. Von Hand eingegebene Bildunterschriften bleiben unveraendert erhalten; nur der per Vorlage erzeugte Text erscheint nicht mehr. Standardmaessig (mit deaktiviertem override_existing) fuellt das Modul nur leere Felder und hat Ihren manuellen Text also ohnehin nie ersetzt.
Beim Deinstallieren werden ausschliesslich die eigenen Einstellungen und das Admin-Menue des Moduls entfernt. Es werden keine Bild-, Produkt- oder Kategoriedaten durchsucht, ueberschrieben oder geloescht, sodass das Modul gefahrlos ausprobiert und wieder entfernt werden kann.
Das Modul ist fuer PrestaShop 1.7, 8.x und 9.x ausgelegt (deklarierte Kompatibilitaet bis 9.99.99). Es registriert drei Presenter-Hooks: actionPresentProduct fuer Produktseiten, actionPresentProductListing fuer Kategorie-, Such- und Startseitenlisten sowie actionPresentCategory fuer Kategorie-Titelbilder.
Der Alt-Text fuer Produkt- und Listenbilder funktioniert im gesamten unterstuetzten Bereich. Die Bildunterschrift des Kategoriebilds haengt jedoch vom Hook actionPresentCategory ab, den es erst ab PrestaShop 9.1 gibt. In frueheren Versionen greifen die Produkt- und Listenvorlagen weiterhin normal; nur die separate Vorlage fuer das Kategoriebild benoetigt 9.1 oder hoeher.
Da alles auf der Presenter-Ebene geschieht und nicht durch Auslesen des Themes oder Umschreiben von HTML, ist das Modul nicht von einem bestimmten Theme abhaengig und bleibt kompatibel, solange Ihr Theme die ueblichen PrestaShop-Presenter fuer Produkte und Kategorien verwendet.
Nein. Das Modul ist bewusst schlank und cache-freundlich. Beim Erzeugen des Alt-Texts fuehrt es keine Datenbankabfragen aus, liest oder schreibt kein gerendertes HTML und beruehrt keine Bilddateien. Der Alt-Text entsteht durch einfaches Ersetzen von Zeichenketten in Daten, die PrestaShop fuer die Seite bereits geladen hat.
Die Einstellungen werden einmal gelesen und fuer die Anfrage in einem Arbeitsspeicher-Cache gehalten; der Text-Builder wird erst bei der ersten Verwendung erzeugt. Jede Bildunterschrift entsteht durch Einsetzen von Vorlagen-Platzhaltern wie {product_name} oder {category}, das Bereinigen von Leerzeichen und Trennzeichen sowie das Kuerzen auf die maximale Laenge (standardmaessig 125 Zeichen).
Da es mit den praesentierten Produkt- und Kategoriedaten arbeitet, wird das Ergebnis von Ihrem Full-Page-Cache mit erfasst, sodass zwischengespeicherte Seiten den erzeugten Alt-Text ohne zusaetzlichen Aufwand pro Besuch behalten. Es gibt keinen Cronjob, keine Hintergrundaufgabe und keinen Massenlauf zu planen.
Beides funktioniert. Sie können einen persönlichen Telegram-Benutzernamen oder einen Bot-Benutzernamen eingeben, mit oder ohne das @-Zeichen; er muss 5 bis 64 Zeichen lang sein und aus Buchstaben, Zahlen und Unterstrichen bestehen. Das Modul erstellt einen https://t.me/…-Link zu diesem Konto, und mehr macht es auf der Telegram-Seite nicht.
Das Modul sendet von sich aus keine automatischen Antworten, Begrüßungen oder Bot-Menüs. Wenn Sie automatische Antworten wünschen, erstellen Sie mit @BotFather in Telegram einen Bot und verweisen Sie das Modul auf diesen Bot; die Automatisierung befindet sich dann in Telegram, nicht in diesem Modul.
ORDER BY RAND()-Abfrage über Produkte mit active = 1) und schließt jedes Produkt aus, das innerhalb des von Ihnen eingestellten Wiederholungsschutz-Zeitfensters (standardmäßig 12 Wochen) bereits beworben wurde. Es gibt keinen Kategorie-, Preis- oder Bestandsfilter, sodass jedes aktive Produkt im Shop infrage kommt. Um vor dem Erstellen zu sehen, welches Produkt, welcher Code und welche Preise erzeugt würden, nutzen Sie die Schaltfläche Dry Run im Back-Office – sie liefert die Auswahl, ohne eine Warenkorbregel zu erstellen oder in sozialen Medien zu posten. Ein erneutes Dry Run oder Run Now würfelt die Auswahl neu.Ja. Im Back Office lasst sich die Schaltflache auf alle Seiten, nur Produktseiten, nur Kategorieseiten oder nur Checkout-Seiten (Warenkorb, Bestellung und One-Page-Checkout) beschranken. Ein separater Schalter steuert, ob sie auf Mobilgeraten angezeigt wird.
Sie konnen zudem eine Anzeigeverzogerung in Sekunden einstellen, damit die Schaltflache erst nach dem ersten Laden erscheint, sowie einen Randabstand, damit sie keine Produkt- oder Checkout-Elemente verdeckt. Die Schaltflache wird nur ausgegeben, wenn das Widget aktiviert und eine gultige Telefonnummer gespeichert ist.
Warehouse Revolution ist von PrestaShop 1.6.1.0 bis zur aktuellen 9.x-Reihe kompatibel, und eine integrierte Kompatibilitätsschicht sorgt dafür, dass die Datenklassen sowohl auf dem älteren 1.6-Zweig als auch auf 1.7, 8 und 9 laufen. Vorausgesetzt wird PHP 7.1 oder neuer. Alle Verwaltungsseiten nutzen die native Back-Office-Oberfläche, sodass keine zusätzliche Serversoftware erforderlich ist.
Die vorausgefüllte Nachricht ist optional. Wenn Sie eine festlegen, fügt das Modul sie als URL-codierten Text zum Telegram-Link hinzu, sodass der Kunde sie in Telegram bereits eingetippt sieht und vor dem Senden bearbeiten kann. Es ist eine Startzeile und keine Nachricht, die automatisch im Namen des Kunden gesendet wird.
Sie können in diesem Text den Platzhalter {url} verwenden. Das Modul ersetzt ihn vor dem Öffnen des Chats durch die Adresse der Seite, auf der sich der Kunde befindet, wodurch Ihr Team erfährt, was der Kunde gerade angesehen hat. Lassen Sie das Feld leer, wenn Kunden die erste Nachricht lieber selbst schreiben sollen.
Nein. Das Modul bindet weder das WhatsApp Business SDK noch JavaScript von Drittanbietern ein. Im Shop registriert es lediglich eine eigene kleine CSS-Datei und gibt einen einfachen Link auf https://wa.me/<nummer> aus. Das einzige Inline-Skript ist ein optionaler Timer, der hinzugefugt wird, wenn Sie eine Anzeigeverzogerung einstellen.
Das Modul selbst setzt keine Cookies. Wenn ein Besucher auf die Schaltflache klickt, wird WhatsApp (bzw. WhatsApp Web am Desktop) in einem neuen Tab geoffnet und das Gesprach findet dort auf dem Dienst von WhatsApp statt.
Warehouse Revolution verwirft den nativen Bestand nicht. Es führt ein eigenes Register – Lager, Lagerplätze und Bestandsbewegungen – als maßgebliche Quelle und schreibt die resultierende Menge anschließend in den PrestaShop-Bestand (stock_available) zurück, damit Shop, Katalog und andere Module stets die korrekte Verfügbarkeit sehen. Bei aus Komponenten gefertigten Produkten mit Stückliste wird die verkäufliche Menge aus dem Engpass der Rezeptur abgeleitet und planmäßig aktualisiert (eine Cron-Aufgabe läuft etwa alle 15 Minuten), sodass das Front Office ohne manuelle Eingriffe korrekt bleibt.
Das Modul speichert seine Einstellungen in einer eigenen Konfigurationstabelle, anstatt sie in die Standard-PrestaShop-Konfiguration zu mischen. Diese Einstellungen sind global: Derselbe Telegram-Benutzername, dasselbe Erscheinungsbild und dasselbe Anzeigeverhalten gelten für jeden Shop in einer Multistore-Installation.
Diese Version bietet kein separates Telegram-Ziel pro Shop. Wenn Sie also unterschiedliche Telegram-Konten für verschiedene Shops benötigen, wird dies derzeit nicht unterstützt. Beim Deinstallieren des Moduls werden seine gespeicherten Einstellungen entfernt.
cron.php des Moduls mit dem im Back-Office angezeigten Sicherheits-Token aufrufen — zum Beispiel * * * * * php .../modules/mprweeklysale/cron.php --token=YOUR_TOKEN (eine HTTP-URL mit demselben Token funktioniert ebenfalls). PrestaShop führt Hintergrundaufgaben nicht von selbst aus, daher wird der Sale ohne diesen Cron am geplanten Tag und zur geplanten Uhrzeit nicht ausgelöst. Sie können einen Sale jederzeit mit der Schaltfläche Run Now auf der Konfigurationsseite starten, die außerdem den Zeitplan, den nächsten und letzten Lauf sowie den exakten zu kopierenden Cron-Befehl anzeigt.Nein. Um mit verschiedenen Themes zu funktionieren, registriert sich das Modul sowohl am Footer- als auch am Before-Body-Closing-Tag-Hook. Eine interne Absicherung stellt jedoch sicher, dass das Widget pro Seite nur einmal ausgegeben wird, selbst wenn das Theme mehrere dieser Hooks aufruft.
Sie erhalten also immer nur eine WhatsApp-Schaltflache, unabhangig davon, wie viele kompatible Platzierungen Ihr Theme bietet. Wirkt eine Schaltflache falsch platziert, passen Sie Position, Rand und Seiteneinstellungen im Back Office an, statt das Theme zu bearbeiten.
Ja. Warehouse Revolution fügt eine kundenseitige Rücksendeseite hinzu, die eine Anmeldung voraussetzt, sodass jede Rücksendeanfrage an das eigene Konto und die eigenen Bestellungen des Kunden gebunden ist. Im Back Office bearbeiten Sie jede RMA über einen festgelegten Ablauf – beantragt, genehmigt, Rücksendung erwartet, erhalten, geprüft und schließlich gelöst oder abgelehnt – und bewerten die zurückgesendeten Artikel von Klasse A (wie neu, volle Bestandsgutschrift) bis Klasse F (unverkäuflich, Abschreibung), was steuert, ob ein Artikel wieder in den verkäuflichen Bestand gelangt. Kunden erhalten außerdem eine Versandseite, um ihre Bestellung zu verfolgen.
Ja. Warehouse Revolution ist für den Mehrlagerbetrieb ausgelegt: Sie können mehrere Lager definieren und pro Produkt in jedem Lager eine separate Bestandsmenge führen, sodass das Modul jederzeit weiß, wie viel Sie halten und wo. Innerhalb jedes Lagers lässt sich die physische Lagerung in Regale und einzelne Fächer oder Behälter gliedern, und Sie können dem Bestand eines Produkts einen Lagerplatz-Hinweis hinzufügen, damit Kommissionierer direkt zum richtigen Regal geschickt werden, statt die Fläche abzusuchen. Bestandsbewegungen, Umlagerungen zwischen Lagern, Bestellungen und Rücksendungen werden alle dem zugehörigen Lager zugeordnet und geben Ihnen einen genauen, standortbezogenen Blick auf den Bestand im gesamten Betrieb.
Andere Kategorien
Noch Fragen?
Sie finden nicht, wonach Sie suchen? Senden Sie uns Ihre Frage und wir melden uns bei Ihnen.