# DF Recently Viewed — Zuletzt angesehene Produkte (PrestaShop 8/9)

> Übersicht DF Recently Viewed (dfrecentlyviewed) zeigt die zuletzt von Ihren Besuchern angesehenen Produkte – mit einer auf Konversion ausgerichteten Architektur: Der Verlauf wird serverseitig gespeichert, beim Login in das Kundenkonto…

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

## Übersicht

DF Recently Viewed (`dfrecentlyviewed`) zeigt die zuletzt von Ihren Besuchern angesehenen Produkte – mit einer auf Konversion ausgerichteten Architektur: Der Verlauf wird serverseitig gespeichert, beim Login in das Kundenkonto überführt, per AJAX gerendert und bleibt damit hinter einem Seiten-Cache korrekt, ergänzt um Preissenkungs-Badges. Ein Analytics-Dashboard rundet das Ganze mit einer Konversionsrate von Ansicht zu Kauf ab.

### Voraussetzungen

- PrestaShop 8.0 bis 9.x
- PHP 7.4 bis 8.3
- Keine externen Abhängigkeiten (weder Composer noch jQuery noch Karussell-Bibliothek)

## Installation

1. Öffnen Sie im Backoffice **Module > Modul-Manager**.
2. Klicken Sie auf **Modul hochladen** und legen Sie die Datei `dfrecentlyviewed.zip` ab.
3. Klicken Sie auf **Installieren**. Das Modul legt seine Tabelle an, registriert seine Hooks und fügt den Reiter **Katalog > Statistik zuletzt angesehen** hinzu.
4. Klicken Sie auf **Konfigurieren**, um zu den Einstellungen zu gelangen.

Das Modul funktioniert sofort nach der Installation mit sinnvollen Standardwerten: 8 Produkte, Karussell, AJAX-Rendering, aktivierte Preissenkungs-Badges, 90 Tage Aufbewahrung.

## Konfiguration

### Reiter Anzeige

- **Blocktitel** — in jeder Ihrer Sprachen übersetzbar.
- **Anzahl der Produkte** — 1 bis 24 im Block angezeigte Produkte.
- **Karussell-Layout** — aktiviert: horizontales Karussell mit Navigationspfeilen. Deaktiviert: responsives Raster.
- **Auf Produktseiten anzeigen** — Hook `displayFooterProduct`.
- **Auf der Startseite anzeigen** — Hook `displayHome`.
- **Auf der Warenkorbseite anzeigen** — Hook `displayShoppingCartFooter`.
- **Link «Verlauf löschen» anzeigen** — für DSGVO-Transparenz empfohlen.

### Reiter Intelligentes Verhalten

- **Aktuell angezeigtes Produkt ausschließen** — vermeidet die Empfehlung der bereits sichtbaren Seite.
- **Ausverkaufte Produkte ausblenden** — der Filter berücksichtigt erlaubte Vorbestellungen.
- **Produkte im Warenkorb ausblenden** — der Warenkorb wird serverseitig neu berechnet, niemals aus der gecachten Seite.
- **Preissenkungs-Badges** — zeigt ein «-X %»-Badge an, wenn der Preis seit der letzten Ansicht des Besuchers gefallen ist.
- **AJAX-Rendering (cache-sicher)** — dringend empfohlen, siehe den eigenen Abschnitt unten.
- **Aufbewahrung des Verlaufs (Tage)** — 1 bis 730 Tage. Ältere Ansichten werden automatisch bereinigt.

## Kompatibilität mit Full Page Cache

In einem Shop mit Varnish, Cloudflare, LiteSpeed Cache oder einem CDN wird ein serverseitig gerenderter, personalisierter Block zusammen mit der Seite gecacht: Der nächste Besucher sieht den Verlauf einer anderen Person oder einen leeren Block.

Der standardmäßig aktivierte Modus **AJAX-Rendering** löst das Problem: Der Block wird nach dem Rendern der Seite über eine Anfrage an den Front-Controller des Moduls eingefügt. Das Tracking der Produktansicht wird als nicht blockierender _Beacon_ gesendet, der auch dann funktioniert, wenn die Seite aus dem Cache stammt.

Deaktivieren Sie den AJAX-Modus nur, wenn Ihr Shop überhaupt keinen Seiten-Cache verwendet. Andernfalls zeigt der Block falsche Daten an.

## Preissenkungs-Badges

Bei jeder Ansicht einer Produktseite speichert das Modul den zu diesem Zeitpunkt angezeigten Bruttopreis für genau diesen Besucher. Beim Anzeigen des Blocks vergleicht es diesen gemerkten Preis mit dem aktuellen:

- Ist der Preis um mindestens 1 % gefallen, erscheint oben links auf der Miniaturansicht ein rotes Badge «↓ -X %».
- Der gemerkte Preis wird bei jeder neuen Ansicht aktualisiert: Das Badge bedeutet daher immer «Der Preis ist seit Ihrem letzten Besuch dieser Seite gefallen».
- Steigt der Preis wieder, verschwindet das Badge.

## Geräteübergreifender Verlauf

Ansichten werden bei anonymen Besuchern mit der Gast-Kennung (`id_guest`) und bei angemeldeten Besuchern mit der Kunden-Kennung (`id_customer`) erfasst.

Beim Login (Hook `actionAuthentication`) wird der Gast-Verlauf in das Kundenkonto überführt: Die Ansichtszähler werden addiert und das jüngste Ansichtsdatum bleibt erhalten. So findet der Kunde seine angesehenen Produkte auf allen Geräten wieder.

## Seite «Mein Browserverlauf»

Das Modul fügt im Kundenkonto eine Kachel hinzu (Hook `displayCustomerAccount`), die zu einer eigenen Seite mit bis zu 48 angesehenen Produkten führt – inklusive Löschen-Schaltfläche, wenn die Option aktiviert ist.

URL der Seite: `/module/dfrecentlyviewed/history` (gemäß Ihrer URL-Konfiguration umgeschrieben).

## Widget

Der Block kann aus jedem Template Ihres Themes aufgerufen werden:

```
{widget name='dfrecentlyviewed'}
{widget name='dfrecentlyviewed' limit=6}
```

Der Parameter `limit` ist optional und auf 24 begrenzt; ohne ihn gilt die im Backoffice konfigurierte Anzahl.

## Analytics-Dashboard

Gehen Sie zu **Katalog > Statistik zuletzt angesehen**. Über einen Zeitraum von 7, 30, 90 oder 365 Tagen finden Sie dort:

- **Produktansichten** — Gesamtzahl der erfassten Ansichten.
- **Unterschiedliche angesehene Produkte** — die tatsächliche Breite der Katalogentdeckung.
- **Eindeutige Besucher** — Gäste und Kunden zusammen.
- **Konversion Ansicht zu Kauf** — Anteil der angesehenen Kunde/Produkt-Paare, die zu einer gültigen Bestellung nach der Ansicht geführt haben. Nur für angemeldete Kunden berechnet.
- **Meistangesehene Produkte** — Ranking mit Direktlink zur Produktseite im Backoffice.

## DSGVO und Aufbewahrung

### psgdpr-Hooks

Das Modul implementiert `actionExportGDPRData` und `actionDeleteGDPRCustomer`: Ist das offizielle Modul psgdpr installiert, wird der Browserverlauf in die von Ihren Kunden angeforderten Exporte und Löschungen personenbezogener Daten einbezogen.

### Selbstbedienungs-Löschung

Ist die Option aktiviert, erscheint neben dem Blocktitel und auf der Verlaufsseite ein Link «Verlauf löschen». Besucher können ihre Daten nach Bestätigung selbst löschen.

### Automatische Bereinigung

Ansichten, die älter als die konfigurierte Aufbewahrungsdauer sind, werden opportunistisch automatisch bereinigt (bei etwa 1 % der erfassten Ansichten). Es ist keine Konfiguration erforderlich.

### Optionaler CRON

Für Shops mit hohem Traffic wird auf der Konfigurationsseite eine token-geschützte Bereinigungs-URL angezeigt. Sie können sie täglich aufrufen:

```
0 4 * * * curl -s "https://ihr-shop.de/module/dfrecentlyviewed/tracking?action=cleanup&token=IHR_TOKEN"
```

## Theme-Integration

Die Produkte werden über die native Miniaturansicht Ihres Themes gerendert (`catalog/_partials/miniatures/product.tpl`). Der Block übernimmt damit automatisch das Design Ihrer Listings: Bild, Name, Preis, Aktions-Badges, Schnell-Hinzufügen-Button, sofern Ihr Theme einen anbietet.

Möchten Sie den Container anpassen, überschreiben Sie die Modul-Templates aus Ihrem Theme heraus:

```
themes/ihr-theme/modules/dfrecentlyviewed/views/templates/hook/recentlyviewed.tpl
themes/ihr-theme/modules/dfrecentlyviewed/views/templates/hook/_products.tpl
```

## Multishop

Die Verläufe sind pro Shop getrennt: Wer ein Produkt in Shop A ansieht, sieht es nicht in Shop B auftauchen. Alle Einstellungen werden über die Configuration-Tabelle von PrestaShop mit nativer Multishop-Unterstützung gespeichert.

## Deinstallation

Die Deinstallation entfernt die Verlaufstabelle, sämtliche Einstellungen und den Statistik-Reiter. Vor dem Vorgang wird eine Bestätigung verlangt.

## Fehlerbehebung

### Der Block erscheint nicht

- Prüfen Sie, ob der zur Seite passende Hook in der Konfiguration aktiviert ist (Produktseite, Startseite, Warenkorb).
- Der Block erscheint nur, wenn der Besucher mindestens ein infrage kommendes Produkt angesehen hat. Ein Erstbesucher sieht nichts.
- Sind sowohl der Ausschluss des aktuellen Produkts als auch der Warenkorb-Ausschluss aktiv, bleibt möglicherweise kein Produkt zur Anzeige übrig.

### Der Block bleibt auf einer gecachten Seite leer

Stellen Sie sicher, dass der Modus **AJAX-Rendering** aktiviert ist. Prüfen Sie außerdem, ob Ihre Cache-Konfiguration Anfragen an `/module/dfrecentlyviewed/tracking` nicht abfängt.

### Preissenkungs-Badges erscheinen nie

Das Badge kann nur erscheinen, wenn der Besucher das Produkt _vor_ der Preissenkung angesehen hat. Geben Sie den Besuchern nach einer Preisänderung Zeit zurückzukehren. Prüfen Sie außerdem, ob die Option aktiviert ist.
