Installation
Voraussetzungen
Magento 2.4.x. PHP 8.1–8.5. Funktioniert mit Hyvä (jedes Child-Theme) und Luma (dem Standard-Magento-Theme) — das aktive Theme wird automatisch erkannt, keine Konfiguration nötig. Bei jedem anderen Theme hat das Modul keine Wirkung (keine Aktion, wie bei Deaktivierung).
Installationsschritte
- Fügen Sie die per E-Mail erhaltenen Zugangsdaten zu
auth.jsonim Stammverzeichnis Ihres Magento-Projekts hinzu:{ "http-basic": { "repo.codingrow.com": { "username": "...", "password": "..." } } } composer config repositories.codingrow composer https://repo.codingrow.comcomposer require codingrow/module-pppsbin/magento module:enable Codingrow_Pppsbin/magento setup:upgrade && bin/magento setup:di:compile- Fügen Sie Ihren Lizenzschlüssel in Admin → Stores → Configuration → Codingrow Extensions → Product Page Pro & SEO → License → License Key ein, speichern Sie, dann
bin/magento cache:flush. bin/magento setup:static-content:deploy -f(improduction-Modus).
Es ist kein Tailwind-Build-Schritt und keine Theme-Konfiguration erforderlich: Jede layoutkritische Regel (Rasterverhältnisse, fixierte Positionierung, Breakpoints) ist als reines CSS in die Templates des Moduls eingebettet, nicht als Tailwind-Utility-Klassen.
Konfiguration
Fünf unabhängige Schalter unter Stores → Configuration → Codingrow Extensions → Product Page Pro & SEO → General:
- Enable column gallery on desktop — 2-spaltiges Bilderraster statt einem Bild nach dem anderen.
- Enable sticky buy-box on desktop — auf Hyvä werden sowohl Bilder als auch Preisspalte fixiert (die naturgemäß kürzere bleibt sichtbar, während die andere weiterscrollt); die Beschreibung wandert unter die Galerie und diese Einstellung schaltet die beiden folgenden frei. Auf Luma bleibt nur die Preis-/Kaufspalte beim Scrollen fixiert.
- Enable repeated image strip below description — erfordert die obige Einstellung "sticky buy-box". Zeigt alle Produktbilder erneut in einer umbrechenden Zeile.
- Enable simplified section titles — entfernt den wiederholten Produktnamen neben Titeln wie "Description" (nur Hyvä).
- Enable product SEO structured data — fügt einen schema.org/Product JSON-LD-Block hinzu (Name, Bild, Marke, GTIN, Preis, Verfügbarkeit) für Google Rich Results und ergänzt eine meta description für Produkte, die keine besitzen. Nicht visuell; auf Hyvä und Luma, Desktop wie Mobil gleichermaßen; überschreibt nie eine vorhandene meta description.
Alle fünf erfordern eine gültige Lizenz; ohne diese verhält sich das Modul, als wäre es vollständig deaktiviert (unverändertes Standard-Layout des Themes, kein Fehler für Shop-Besucher sichtbar).
| Option | Was sie tut | Standard | Hinweise |
|---|---|---|---|
| Lizenzschlüssel | Der für diese Domain ausgestellte Lizenzschlüssel. | — | Nach dem Kauf einfügen, dann Cache leeren. |
| Spaltengalerie auf dem Desktop aktivieren | Zeigt alle Produktbilder gleichzeitig in einem 2-Spalten-Raster statt einzeln. | Ja | Nur Desktop ≥ 1024px; mobil bleibt die native Galerie. |
| Sticky Kaufbox auf dem Desktop aktivieren | Hält die Preis- / In-den-Warenkorb-Spalte beim Scrollen im Blick. | Ja | Voraussetzung für die beiden Optionen unten; verschiebt die Beschreibung unter die Bilder. |
| Wiederholten Bilderstreifen unter der Beschreibung aktivieren | Zeigt alle Bilder erneut, in fester Größe, in einem Streifen unter der Beschreibung. | Ja | Erfordert die Sticky-Kaufbox. |
| Vereinfachte Abschnittstitel aktivieren | Entfernt den wiederholten Produktnamen neben Titeln wie „Beschreibung“. | Ja | Nur Hyvä (keine Wirkung auf Luma). |
| Produkt-SEO-strukturierte Daten aktivieren | Fügt einen schema.org/Product JSON-LD-Block hinzu (Name, Bild, Marke, GTIN, Preis, Verfügbarkeit), damit Google Rich Results anzeigen kann, und ergänzt eine meta description für Produkte, die keine besitzen. | Ja | Nicht visuell; auf Hyvä und Luma, Desktop wie Mobil. Überschreibt nie eine vorhandene meta description. |
Deinstallation
composer remove codingrow/module-ppps dann
bin/magento setup:upgrade && bin/magento setup:di:compile && bin/magento cache:flush.
Benutzerhandbuch
Spaltengalerie
Auf dem Desktop (ab 1024px) werden alle Produktbilder gleichzeitig in einem 2-spaltigen Raster angezeigt statt der Einzelbild-plus-Miniaturleiste von Hyvä oder des Fotorama-Sliders von Luma. Mobil bleibt davon unberührt — es behält immer das native Galerieverhalten des Themes bei (Einzelbild, darunter wischbare Miniaturleiste).
Auf Hyvä ist dies als zusätzlicher Block innerhalb der eigenen Alpine.js-Galeriekomponente des Themes implementiert, wobei dieselben bereits für die Standardgalerie geladenen Bilddaten wiederverwendet werden — kein doppelter JavaScript-Zustand. Auf Luma wird das Raster neben dem nativen Fotorama-Widget hinzugefügt (dieses wird nie verändert oder neu initialisiert); beide werden am Desktop-Breakpoint mit reinem CSS umgeschaltet.
Fixierte Preisspalte
Auf Hyvä: Sowohl die Bilderspalte als auch die Preis-/Kaufspalte werden zu
position: sticky — die naturgemäß kürzere (meist die Preisspalte, da die
Bilder+Beschreibungs-Spalte normalerweise höher ist) bleibt sichtbar, während die andere
weiterscrollt. Die Beschreibung wandert von ihrer Standardposition (unter beiden Spalten)
direkt unter die Bilder, innerhalb derselben linken Spalte.
Auf Luma: Nur die Preis-/Kaufspalte bleibt beim Scrollen visuell fixiert,
zwischen der Kopfzeile und dem Ende des Produktinformationsbereichs — die Bilder- und
Beschreibungsspalte scrollt immer normal weiter. Dies ist in JavaScript implementiert
(transform: translateY(), bei jedem Scroll neu berechnet) statt mit CSS
position: sticky, da sich fixierte Positionierung in Kombination mit dem nativen,
auf Floats basierenden Zweispalten-Layout von Luma als unzuverlässig erwiesen hat. Die
Beschreibung wird ebenfalls direkt unter die Bilder verschoben (standardmäßig platziert Luma sie
in voller Breite unter beiden Spalten).
Wiederholte Bilderleiste
Erfordert die Einstellung "sticky buy-box". Unterhalb der Beschreibung werden alle Produktbilder erneut in fester Größe (274×274px) angezeigt, die sich beim schmaler werdenden Bildschirm natürlich neu anordnen — 3 pro Zeile bei typischer Desktop-Breite, immer weniger pro Zeile bei schmaler werdendem Bildschirm, bis zu 1 pro Zeile mobil. Die Bilder verkleinern sich erst unter ihre feste Größe, wenn nicht einmal ein einzelnes mehr in die verfügbare Breite passt.
Vereinfachte Abschnittstitel
Das Standard-Theme von Hyvä zeigt "Description / Produktname" als Überschrift über dem Beschreibungstab an — überflüssig, sobald der Produktname bereits an anderer Stelle auf einer neu angeordneten Seite hervorgehoben wird. Diese Einstellung ersetzt es durch eine einfache Überschrift "Description". Die eigenen Tabs von Luma hatten diese Wiederholung nie, daher hat die Einstellung dort keine sichtbare Wirkung.
Produkt-SEO-strukturierte Daten
Unabhängig von allem Vorstehenden und keine visuelle Änderung. Wenn aktiviert, erhält jede
Produktseite einen schema.org/Product JSON-LD-Block, der das Produkt beschreibt —
Name, Bild, Marke, GTIN/EAN und ein Offer mit Preis, Währung, Verfügbarkeit und
Artikelzustand — sodass Suchmaschinen Rich Results darstellen können (Preis und Verfügbarkeit
in der SERP, Berechtigung für Googles kostenlose Produkteinträge). Jedes Feld erfolgt nach
bestem Bemühen: Was dem Produkt fehlt, wird einfach weggelassen, nie ein Fehler, und der Block
wird auf Hyvä und Luma, Desktop wie Mobil, auf dieselbe Weise ausgegeben.
Dieselbe Einstellung ergänzt außerdem eine meta description für Produkte, die keine eigene besitzen — erstellt aus der Kurz-/Langbeschreibung des Produkts (oder als letzte Möglichkeit aus seinem Namen). Sie rührt nie ein Produkt an, das bereits eine meta description hat, und füllt somit stets nur eine Lücke.
Händlereinträge: Rücksendung und Versand
Google liest Rücksende- und Versandbedingungen von der Produktseite, um sie in den kostenlosen Händlereinträgen zu zeigen, und die Search Console meldet sie als fehlend, wenn sie nicht da sind. Aus dem Katalog lassen sie sich nicht ableiten — es sind kaufmännische Bedingungen — daher werden sie in der Konfiguration unter Merchant listings (returns and shipping) angegeben. Beide Blöcke sind standardmäßig aus und setzen die strukturierten Produktdaten voraus.
- Rücksendebedingungen →
hasMerchantReturnPolicy: Länder (aus Magentos eigener Liste), Rücksendefenster, Tage, wie die Ware zurückkommt, wer zahlt und gegebenenfalls die Gebühr. - Versandbedingungen →
shippingDetails: Zielländer, Kosten (0für kostenlosen Versand), Bearbeitungs- und Lieferzeit in Werktagen.
Zwei Regeln sind Absicht. Ein Block mit unvollständigen Pflichtfeldern wird ganz weggelassen statt halb wahr veröffentlicht: Google vergleicht Ihre Angaben mit dem, was der Kunde auf der Website vorfindet, daher ist eine falsche Angabe weniger wert als gar keine. Und bei "Rücksendungen nicht akzeptiert" werden weder Methode noch Kostenträger veröffentlicht — es gibt keine Rücksendung zu beschreiben.
Das Angebot trägt außerdem validFrom, das Datum, ab dem der veröffentlichte Preis gilt — der Beginn des Sonderpreises, sonst das Anlagedatum des Produkts. Dafür ist keine Konfiguration nötig.
Selten gelten diese Bedingungen für den gesamten Katalog: Bearbeitungs- und Lieferzeiten unterscheiden sich zwischen eigenem Lager und Dropshipping, der Versand hängt vom Volumen ab, das Rücksendefenster von der Ware. Und die Zahl steht meist schon am Produkt, in einem Attribut, das Ihr Importeur oder Ihr Team pflegt. Jedes dieser Felder kann daher auf ein Produktattribut zeigen — die Liste enthält auch Ihre eigenen — samt Feld für einen Code, den die Liste nicht anbietet. Wo das Produkt einen Wert trägt, gewinnt es; wo nicht, gilt der feste Wert; und ein Wert, der keine Zahl ist, fällt auf den festen zurück, statt Unsinn zu veröffentlichen.
Jede Zahl kann aus einem Produktattribut kommen, gewählt aus der Liste des Katalogs: hier stammen Bearbeitungs- und Lieferzeit aus den Attributen, die ein Importeur füllt.
Hyvä- und Luma-Unterstützung
Das aktive Theme wird automatisch erkannt (keine Konfiguration nötig), indem die Eltern-Theme-Kette des aktuellen Themes nach "Hyva" oder "Luma" im Theme-Code durchsucht wird. Bei jedem Theme, das kein Nachkomme von Hyvä oder Luma ist, ist jedes Plugin dieses Moduls garantiert wirkungslos — die Seite wird exakt so gerendert, als wäre das Modul nicht installiert, nie ein Fehler.
Lizenz
Ein Lizenzschlüssel pro Magento-Domain, eingegeben unter Stores → Configuration → Codingrow Extensions → Product Page Pro & SEO → License → License Key. Der Schlüssel wird vom Modul geprüft, und Ihr Shop ist für den Betrieb nicht auf unsere Server angewiesen: eine Störung bei uns stoppt ihn nicht. Ein Wechsel zu einer neuen Domain erfordert einen neuen Schlüssel — kontaktieren Sie den Support mit den Details Ihres ursprünglichen Kaufs. Ihre Lizenz deckt die aktuelle Version plus 1 Jahr Updates und Support ab: die in diesem Jahr veröffentlichten Versionen bleiben dauerhaft Ihre, und für spätere verlängern Sie den Support (−35%). Domainwechsel: der erste Wechsel ist kostenlos und sofort im Kundenbereich möglich, danach einer pro Jahr.