# DF Quantity Tiers — Dokumentation

> Überblick und Voraussetzungen DF Quantity Tiers verwandelt die nativen Mengenrabatte von PrestaShop in einen klaren, anklickbaren Verkaufsblock. Das Modul führt keine neue Preislogik ein: Es liest die bereits in Ihrem…

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

## Überblick und Voraussetzungen

DF Quantity Tiers verwandelt die nativen Mengenrabatte von PrestaShop in einen klaren, anklickbaren Verkaufsblock. Das Modul führt keine neue Preislogik ein: Es liest die bereits in Ihrem Katalog konfigurierten Spezialpreise „ab N Stück“ und stellt sie als Karten oder Tabelle dar, mit einem In-den-Warenkorb-Button für jede Staffel.

- Kompatibel mit PrestaShop 8.0 bis 9.x, dem Classic-Theme und davon abgeleiteten Themes.
- PHP 7.4 bis 8.3.
- Multistore und mehrsprachig: Oberfläche übersetzt ins Englische, Französische, Deutsche, Italienische, Spanische, Niederländische, Portugiesische und Polnische. Jede andere Sprache zeigt die Texte auf Englisch an.
- Keine Datei-Overrides: nur native Hooks.

Die Staffeln stammen aus **Katalog > Artikel > Preise > Spezifische Preise**, Feld „Ab Menge“. Hat ein Produkt keine mengenbasierten Spezialpreise, wird der Block für dieses Produkt nicht angezeigt.

## Installation

Installieren Sie das Modul wie jedes andere PrestaShop-Modul:

1. Laden Sie das Archiv `dfquantitytiers-1.2.2.zip` aus Ihrem Kundenkonto herunter.
2. Gehen Sie im Back Office zu **Module > Modulmanager**.
3. Klicken Sie auf **Modul hochladen** und legen Sie das Archiv ab.
4. Klicken Sie nach der Installation auf **Konfigurieren**.

Bei der Installation registriert das Modul seine Hooks, legt seine Statistiktabelle an und füllt in jeder Sprache des Shops einen übersetzten Blocktitel vor. Ihre bestehenden Staffelpreise erscheinen sofort auf den betreffenden Produktseiten.

## Aktualisierung

Die Aktualisierung erfolgt wie gewohnt über den Modulmanager, indem Sie das neue Archiv über die alte Version hochladen. Ihre bestehende Konfiguration bleibt erhalten.

- **Ab Version 1.0.0**: Das integrierte Upgrade-Skript legt die Statistiktabelle an, registriert den Hook der Warenkorbseite und wendet die Standardwerte der in 1.1.0 eingeführten Optionen an.
- **Ab Version 1.1.x oder 1.2.0**: Es ist keine Migration erforderlich.

Leeren Sie nach der Aktualisierung den Cache unter **Erweiterte Einstellungen > Leistung**. Ohne diesen Schritt kann PrestaShop weiterhin die alten Templates und Texte ausliefern (zum Beispiel französische Bezeichnungen in einem italienischen Shop).

## Allgemeine Konfiguration

Die Konfigurationsseite bündelt alle Anzeigeeinstellungen:

- **Blocktitel**: über den Staffeln angezeigter Text, pro Sprache übersetzbar. Lassen Sie das Feld leer, um den Titel vollständig auszublenden.
- **Darstellung**: „Karten“ (empfohlen, eine Karte pro Staffel) oder „Kompakte Tabelle“ (eine Zeile pro Staffel).
- **Position auf der Produktseite**: unter dem Kaufbereich (Hook `displayProductAdditionalInfo`, Standard) oder direkt unter dem Preis (Hook `displayProductPriceBlock`).
- **Akzentfarbe**: wird für die Staffel „Bestes Angebot“, die Badges und die Buttons verwendet.
- **Anzeige der Ersparnis**: als Prozentsatz („−10%“), als gesparter Betrag pro Stück („Sie sparen 0,78 € / Stück“) oder beides.
- **Gesamtpreis der Staffel anzeigen**: ergänzt den Gesamtpreis für genau die Staffelmenge, beschriftet mit „Gesamt für 6 Stück: 42,12 €“. Standardmäßig deaktiviert.
- **Staffel „Einzelstück“ anzeigen**: zeigt den regulären Einzelpreis als erste Vergleichsstaffel an.

Die Ersparnis wird pro Stück angegeben, damit sie unabhängig von der bestellten Menge stimmt: Ein Kunde, der 7 Stück in einer Staffel „6+“ nimmt, spart bei jedem Stück tatsächlich 0,78 €. Der Gesamtpreis gilt dagegen nur für die exakte Staffelmenge; deshalb ist er standardmäßig deaktiviert.

Die Staffel mit dem niedrigsten Stückpreis erhält automatisch das Badge „Bestes Angebot“ (nur wenn mindestens zwei Rabattstaffeln vorhanden sind). Ändert der Kunde die Menge, wird die zu seiner Wahl passende Karte in Echtzeit hervorgehoben.

## Steuermodus (B2B)

Der Steuermodus legt fest, ob die Staffelpreise netto oder brutto angezeigt werden:

- **Automatisch**: folgt der Preisanzeige-Einstellung der aktuellen Kundengruppe (Standardverhalten von PrestaShop).
- **Netto erzwingen**: zeigt die Preise immer netto an, mit dem Hinweis „zzgl. MwSt.“ neben jedem Stückpreis. Ideal für einen B2B-Shop.
- **Brutto erzwingen**: zeigt die Preise immer brutto an, mit dem Hinweis „inkl. MwSt.“.

Der gewählte Modus gilt gleichermaßen für die Karten auf der Produktseite, den Upsell-Block im Warenkorb und die strukturierten Daten. Der Hinweis wird in die Sprache des Besuchers übersetzt (zum Beispiel „IVA escl.“ auf Italienisch, „HT“ auf Französisch).

## Verpackungsbezeichnungen

Sie können jeder Menge eine geschäftliche Bezeichnung zuordnen, zum Beispiel „Karton“ oder „Palette“. Geben Sie im Feld **Verpackungsbezeichnungen** eine Zuordnung pro Zeile im Format `Menge=Bezeichnung` ein:

```
12=Karton à 12
48=Halbe Palette
96=Palette
```

Die Bezeichnung wird unter der Menge der entsprechenden Staffel angezeigt. Dieses Feld ist übersetzbar: Füllen Sie es für jede Sprache über die Sprachauswahl im Formular aus.

## Bestand, Mindestmenge und Sichtbarkeit der Preise

Der Block berücksichtigt die Verkaufsregeln von PrestaShop:

- **Mindestbestellmenge**: Wird ein Produkt nur ab 6 Stück verkauft, legt der Button der Staffel „Einzelstück“ 6 Stück in den Warenkorb und zeigt „6 hinzufügen“ an.
- **Bestand**: Ist die Lagerverwaltung aktiv und sind Bestellungen ohne Lagerbestand nicht erlaubt, werden die Buttons der Staffeln, deren Menge den verfügbaren Bestand übersteigt, deaktiviert und mit „Nicht genügend Bestand“ gekennzeichnet.
- **Nicht bestellbares Produkt** (Option „Zum Verkauf verfügbar“ deaktiviert, Katalogmodus): Die Staffeln bleiben zur Information sichtbar, jedoch ohne Hinzufügen-Button.
- **Verborgene Preise** (Katalogmodus ohne Preise, Kundengruppe ohne Preisanzeige, Option „Preis anzeigen“ deaktiviert): Der Block wird nicht angezeigt.

## Anreiz zur nächsten Staffel

Zwei Anreizmechanismen stehen zur Verfügung und lassen sich unabhängig voneinander aktivieren.

### Auf der Produktseite

Ein Fortschrittsbalken zeigt eine Meldung wie „Noch 3 Stück hinzufügen und 15% sparen“ an, die je nach eingegebener Menge in Echtzeit neu berechnet wird. Erreicht der Kunde die vorteilhafteste Staffel, wechselt die Meldung zu „Sie erhalten den besten Rabatt!“.

### Auf der Warenkorbseite

Für jedes Produkt im Warenkorb, bei dem eine höhere Staffel noch erreichbar ist, zeigt das Modul unter dem Warenkorb einen Block „Fügen Sie noch N Stück hinzu, um nur X € pro Stück zu zahlen“ mit einem Ein-Klick-Button an. Der Button nutzt den nativen Warenkorb-Aktualisierungsmechanismus von PrestaShop und lädt die Seite anschließend neu.

- Werden die Mengenrabatte pro Produkt berechnet (PrestaShop-Einstellung _Mengenrabatte basierend auf: Artikel_), werden die Mengen aller Varianten des Produkts zusammengezählt, so wie PrestaShop es auch für den Preis tut.
- Es erfolgt kein Vorschlag, wenn der Bestand nicht ausreicht, um die Staffel zu erreichen, und auch nicht für Gratisprodukte.
- Lehnt PrestaShop das Hinzufügen ab (Bestand, Höchstmenge …), wird die Fehlermeldung direkt im Block angezeigt.

## Strukturierte Daten (JSON-LD)

Ist die Option aktiviert, fügt das Modul auf der Produktseite ein JSON-LD-Markup vom Typ `Product` mit einem `Offer` hinzu, dessen Feld `priceSpecification` pro Staffel eine `UnitPriceSpecification` mit der zulässigen Mindestmenge (`eligibleQuantity`) und der Angabe brutto/netto auflistet. Das ist die empfohlene Form für Staffelpreise desselben Verkäufers. Das Markup enthält außerdem die Verfügbarkeit, das Hauptbild und die Artikelnummer (SKU).

Falls Ihr Theme oder ein anderes SEO-Modul bereits ein vollständiges `Product`- / `Offer`-Markup für Ihre Produkte ausgibt, deaktivieren Sie diese Option, um ein in der Search Console gemeldetes doppeltes Markup zu vermeiden.

## Klickstatistiken pro Staffel

Ist die Option aktiviert, wird jeder Klick auf einen Staffel-Button anonym erfasst: Produkt, Variante, Menge und Rabatt der angeklickten Staffel. Es werden keine personenbezogenen Daten und keine Cookies verwendet, wodurch die Funktion DSGVO-konform ist.

Die Staffel wird serverseitig erneut geprüft und der Rabatt anhand Ihrer tatsächlichen Preise neu berechnet: Die Daten können nicht durch manipulierte Anfragen verfälscht werden. Klicks, die älter als ein Jahr sind, werden automatisch gelöscht, damit die Tabelle schlank bleibt.

Die Konfigurationsseite zeigt ein Dashboard der letzten 30 Tage: Gesamtzahl der Klicks und die meistgeklickten Kombinationen aus Produkt / Staffel / Rabatt. Diese Daten helfen Ihnen, Ihre Rabatte zu kalibrieren, indem sie zeigen, welche Staffeln tatsächlich Warenkorb-Hinzufügungen auslösen.

## Übersetzungen

Die Texte des Moduls werden auf Englisch, Französisch, Deutsch, Italienisch, Spanisch, Niederländisch, Portugiesisch und Polnisch mitgeliefert. Sie passen sich automatisch der Sprache des Besuchers und des Back Office an. Um eine Formulierung zu ändern, öffnen Sie **International > Übersetzungen > Übersetzungen installierter Module** und wählen Sie _dfquantitytiers_.

Die in der Konfiguration eingegebenen Texte (Blocktitel, Verpackungsbezeichnungen) pflegen Sie Sprache für Sprache über die Sprachauswahl im Formular.

## FAQ und Fehlerbehebung

### Der Block erscheint bei einem Produkt nicht

Prüfen Sie, ob das Produkt Spezialpreise mit einer Startmenge größer als 1 hat, ob diese Preise für die aktuelle Kundengruppe, Währung und das aktuelle Land gelten und ob die Preise für diesen Kunden sichtbar sind (siehe „Bestand, Mindestmenge und Sichtbarkeit der Preise“).

### Die Texte erscheinen in einem anderssprachigen Shop auf Französisch

Sie verwenden eine Version vor 1.2.0, deren Texte noch nicht übersetzt waren. Installieren Sie die neueste Version und leeren Sie anschließend den Cache unter **Erweiterte Einstellungen > Leistung**.

### Die Felder „Blocktitel“ und „Verpackungsbezeichnungen“ haben kein Eingabefeld

Dieser Anzeigefehler des Konfigurationsformulars ist seit Version 1.2.0 behoben. Nach der Aktualisierung erscheinen beide Felder mit ihrer Sprachauswahl.

### Der angezeigte Gesamtpreis oder die Ersparnis passen nicht zur bestellten Menge

Seit Version 1.2.1 wird die Ersparnis pro Stück angezeigt und stimmt für jede Menge innerhalb der Staffel. Der Gesamtpreis gilt nur für die exakte Staffelmenge: Deaktivieren Sie die Option **Gesamtpreis der Staffel anzeigen**, wenn Sie ihn nicht anzeigen möchten.

### Der Hinzufügen-Button funktioniert mit meinem Theme nicht

Das Modul stützt sich auf den Standard-In-den-Warenkorb-Button des Classic-Themes. Stellen Sie bei einem stark angepassten Theme sicher, dass das Mengenfeld (`name="qty"`) und der Hinzufügen-Button (`data-button-action="add-to-cart"`) dem Standard-Markup von PrestaShop folgen.

### Der Block erscheint nicht in der Schnellansicht (Quickview)

Das ist beabsichtigt: Das Schnellansicht-Fenster lädt die Styles des Moduls nicht. Die Staffeln werden auf der vollständigen Produktseite angezeigt.

### Funktioniert es mit Varianten?

Ja. Die Staffeln werden für jede Variante neu berechnet und der Block aktualisiert sich beim Variantenwechsel automatisch, ohne Neuladen der Seite.

### Was passiert bei der Deinstallation?

Die Deinstallation entfernt die Hooks, die Konfigurationsvariablen und die Statistiktabelle sauber. Es bleiben keine Restdaten in der Datenbank zurück.
