Warenkorb-Button in PrestaShop Produktlisten ersetzen: Installation und Einrichtung
Modul installieren, Regeln nach Kategorie, Produkt oder Variante anlegen, Button und „Ab“-Preis einstellen, Selektoren an Ihr Theme anpassen.
Überblick
Das Modul ersetzt den Button In den Warenkorb in Produktminiaturen (Kategorieseiten, Suche, Startseite, Karussells, Zubehörprodukte) durch einen Button, der zur Produktseite führt. Dort wählt der Kunde Gewicht, Größe oder Format, bevor er in den Warenkorb legt. Sie legen Regeln fest: welche Produkte betroffen sind, welchen Text der Button zeigt und ob der niedrigste Variantenpreis mit „Ab“ angezeigt wird.
Installation
- Klicken Sie unter Module > Modulverwaltung auf Modul hochladen und laden Sie die Datei
dflistingbutton-1.0.0.ziphoch. - Das Modul legt die Tabellen
ps_dflb_rule,ps_dflb_rule_lang,ps_dflb_rule_shop,ps_dflb_rule_categoryundps_dflb_rule_productan und fügt das Menü Katalog > Buttons in Produktlisten hinzu. - Eine deaktivierte Beispielregel „Beispiel: alle Produkte mit Varianten“ wird angelegt. Sie können sie unverändert aktivieren oder löschen.
- Öffnen Sie nach dem Anlegen oder Aktivieren einer Regel eine Kategorieseite des Shops. Erscheint der Button nicht, leeren Sie den Cache unter Erweiterte Einstellungen > Leistung.
Regel anlegen
Klicken Sie unter Katalog > Buttons in Produktlisten auf Regel hinzufügen. Das Formular hat drei Bereiche.
Regel und Zielauswahl
- Name der Regel: interner Name, für Kunden nicht sichtbar.
- Aktiv: Eine deaktivierte Regel wird ignoriert.
- Priorität: Wenn mehrere Regeln auf ein Produkt passen, gilt die mit der niedrigsten Zahl. Standardwert: 10.
- Gilt für: Alle Produkte, Kategorien oder Bestimmte Produkte.
- Kategorien: Baum mit Kontrollkästchen und Filterfeld. Für diesen Regeltyp ist mindestens eine Kategorie Pflicht.
- Unterkategorien einbeziehen: Produkte aller Unterkategorien der gewählten Kategorien sind ebenfalls betroffen.
- Kategorie-Abgleich: Produkt ist in einer der Kategorien (alle dem Produkt zugeordneten Kategorien zählen) oder Nur Standardkategorie des Produkts.
- Produkte: für den Typ Bestimmte Produkte, Suche nach Name, Artikelnummer oder ID.
- Bedingung: Keine Bedingung, Produkte mit Varianten oder Produkte mit einer Attributgruppe. Mit Produkte mit Varianten behalten einfache Produkte derselben Kategorie ihren Warenkorb-Button.
- Attributgruppe: für die letzte Bedingung, zum Beispiel Gewicht oder Größe. Nur Produkte mit einer Variante aus dieser Gruppe sind betroffen.
- Ausgeschlossene Produkte: Diese Produkte erhalten den Button dieser Regel nie, unabhängig von der Zielauswahl.
- Shop-Zuordnung: Wählen Sie im Multishop die Shops, in denen die Regel gilt.
Button
- Button-Text: ein Text je Sprache, zum Beispiel „Alle Gewichte ansehen“. Eine leere Sprache übernimmt den zuerst eingegebenen Text.
- Stil: Primärer Theme-Button (Klassen
btn btn-primary), Theme-Button mit Rahmen (btn btn-outline-primary) oder Eigene Farben mit Hintergrund- und Textfarbe und Vorschau. - Symbol: Pfeil, Optionen, Waage, Auge oder keins.
- Volle Breite: Der Button nimmt die ganze Breite der Miniatur ein.
- Zusätzliche CSS-Klassen: werden dem Button hinzugefügt, nützlich um eine Klasse Ihres Themes zu übernehmen.
- Mengenauswahl ausblenden: blendet das Mengenfeld aus, das manche Themes in Produktlisten zeigen.
Preis in Produktlisten
Dieser Bereich betrifft nur Produkte mit mindestens zwei Varianten.
- Niedrigsten Variantenpreis anzeigen: PrestaShop berechnet den Preis jeder Variante (Steuern, Kundengruppe, Sonderpreise und Rabatte inklusive). Weicht der niedrigste vom Preis des Themes ab, ersetzt er ihn, und der durchgestrichene alte Preis sowie das Rabattetikett der Miniatur werden ausgeblendet.
- Präfix „Ab“ hinzufügen: erscheint vor dem Preis nur, wenn sich die Variantenpreise unterscheiden und der angezeigte Preis der niedrigste ist. Wenn Sie die vorige Option deaktivieren und die Standardvariante nicht die günstigste ist, wird das Präfix nicht angezeigt, damit kein falscher Preis angekündigt wird.
- Präfix-Text: ein Text je Sprache („Ab“, „From“, „Desde“ usw.).
Beispiel: Käse und Wurst nach Gewicht
- Name: Käse nach Gewicht. Gilt für: Kategorien. Wählen Sie Käse und Wurst und lassen Sie Unterkategorien einbeziehen aktiv.
- Bedingung: Produkte mit einer Attributgruppe, Gruppe Gewicht.
- Button-Text: „Alle Gewichte ansehen“ auf Deutsch, „Ver todas las opciones de peso“ auf Spanisch.
- Lassen Sie Niedrigsten Variantenpreis anzeigen und Ab aktiv und speichern Sie.
In der Kategorie zeigt jeder Käse in 250 g, 500 g und 1 kg „Ab“ mit dem Preis für 250 g und den Button zu seiner Produktseite. Ein Produkt, das stückweise ohne Gewichtsvariante verkauft wird, behält seinen Warenkorb-Button.
Allgemeine Einstellungen
Die Konfigurationsseite des Moduls (Button Einstellungen über der Regelliste) enthält:
- Modul aktivieren: schaltet alle Regeln aus, ohne sie zu löschen.
- Theme-Erkennung: Automatisch (empfohlen), Immer die AJAX-Abfrage verwenden oder Nur Hooks. Siehe nächster Abschnitt.
- Auch den nativen Warenkorb-Link deaktivieren: leert serverseitig die Warenkorb-URL der betroffenen Produkte über den Hook
actionPresentProductListing. Manche Themes zeigen dann einen eigenen Link „Produkt ansehen“: Wenn Sie zwei Buttons erhalten, lassen Sie diese Option aus. - Schnellansicht-Button ausblenden: nur bei betroffenen Produkten.
- Ausverkaufte Varianten beim niedrigsten Preis ignorieren: gilt, wenn die Lagerverwaltung aktiv ist und das Produkt Bestellungen ohne Bestand ablehnt. Sind alle Varianten ausverkauft, werden alle berücksichtigt.
Theme-Kompatibilität
Wie das Modul die Produkte erkennt
Beim Rendern einer Miniatur läuft das Modul in den Hooks displayProductPriceBlock und displayProductListReviews, die das Theme Classic, Hummingbird und die meisten Themes aufrufen. Für jedes betroffene Produkt gibt es eine unsichtbare Markierung aus. Das Skript des Moduls findet die Miniatur mit der Markierung, blendet den Warenkorb-Button, das umgebende Warenkorb-Formular und die Mengenauswahl aus und fügt den neuen Button an der Stelle des ausgeblendeten Buttons ein.
Zeigt das Theme in Produktlisten keinen Warenkorb-Button (wie das Theme Classic), wird der Button direkt nach dem Preisblock eingefügt.
Im Modus Automatisch sendet das Skript, wenn keine Miniatur der Seite diese Hooks ausgelöst hat, die IDs der sichtbaren Produkte an den Controller des Moduls, der die betroffenen zurückgibt (höchstens 60 Produkte pro Abfrage, nur aktive und sichtbare Produkte). Miniaturen, die nach einem Facettenfilter, einer Sortierung oder einem Endlos-Scroll hinzukommen, werden automatisch verarbeitet.
CSS-Selektoren
Der Bereich Theme-Kompatibilität (CSS-Selektoren) der Konfiguration enthält die Selektoren des Skripts:
- Container der Produktminiatur: Block, der ein Produkt umschließt (
.product-miniature,.ajax_block_productusw.). - Warenkorb-Button: ersetzte Elemente (
.add-to-cart,[data-button-action="add-to-cart"]usw.). - Mengenauswahl, Preis, Alter Preis und Rabatt, Einfügepunkt, Schnellansicht-Button.
Ergänzen Sie die Klassen Ihres Themes in der Liste, durch Kommas getrennt. Der Button Standard-Selektoren wiederherstellen stellt die ursprünglichen Werte wieder her.
Stil anpassen
Der Button hat die Klasse .dflb-btn, dazu .dflb-full bei voller Breite und .dflb-style-custom bei eigenen Farben (Variablen --dflb-bg und --dflb-color). Das Preispräfix hat die Klasse .dflb-from, die verarbeitete Miniatur erhält .dflb-has-btn.
Testen Sie bei einem stark angepassten Theme auf einer Kopie des Shops: Kategorieseite, Suche, Startseite und Facettenfilter.
Was das Modul nicht ändert
- das Hauptprodukt der Produktseite und seine Schnellansicht;
- den Warenkorb, den Bestellprozess und das Kundenkonto;
- Kern- und Theme-Dateien (kein Override, kein geändertes Template).
Bekannte Einschränkungen
- Das Modul ändert die Darstellung der Produktlisten. Es blockiert kein Hinzufügen zum Warenkorb auf anderem Weg (direkter Link, Drittmodul).
- Der niedrigste Preis und das Präfix werden im Browser angewendet. Das ursprüngliche HTML und die strukturierten Daten des Themes behalten den Preis der Standardvariante.
- Bei mehr als 150 Varianten eines Produkts werden nur die ersten 150 für den niedrigsten Preis berücksichtigt.