Produkt-Bundles & Sets: Dokumentation
Pakete und Bundles auf PrestaShop 8 und 9 erstellen: Zusammenstellung, vier Preismodi, Anzeige auf Produktseiten, Warenkorbverhalten und Theme-Anpassung.
Installation
Das Modul wird wie jedes PrestaShop-Modul installiert, über das Back Office oder per FTP.
- Klicken Sie unter Module und Modul-Manager auf Modul hochladen und legen Sie die Datei
dfpackpro.zipab. - Per FTP entpacken Sie das Archiv in den Ordner
/modules/Ihres Shops und installieren DataFirefly – Packs & Bundles aus dem Modul-Manager. - Leeren Sie den Cache unter Erweiterte Einstellungen und Leistung.
Die Installation legt sechs Tabellen mit dem Präfix ps_dfpackpro an, registriert die nötigen Hooks und fügt den Tab Packs & Bundles (DF) im Katalog-Menü hinzu.
Das Modul installiert keine Klassen- oder Controller-Overrides. Die Deinstallation entfernt die Tabellen, die Konfigurationsschlüssel und den Tab.
Allgemeine Einstellungen
Der Button Konfigurieren auf der Modulseite öffnet die Einstellungen, die für alle Pakete gelten.
- Position des Blocks auf der Produktseite: unter dem Kaufblock, am Seitenende oder beides. Der Block listet die Pakete, die das angesehene Produkt enthalten.
- Paketblock aktiv: schaltet die Cross-Sell-Anzeige ab, ohne zu deinstallieren. Die Paketseiten bleiben erreichbar.
- Maximale Anzahl angezeigter Pakete: standardmäßig 3.
- Sortierung der Pakete: Position, Erstellungsdatum oder zufällig.
- Einzelpreise anzeigen: weist den Preis jeder Komponente auf der Paketseite aus.
- Ersparnis anzeigen: Badge und gesparter Betrag, im Produktseitenblock und auf der Paketseite.
- Verfügbarkeit anzeigen: Bestandsstatus des Pakets, aus den Beständen der Komponenten berechnet.
- Strikter Warenkorbmodus: entfernt der Kunde eine Komponente, werden das ganze Paket und sein Rabatt entfernt. Deaktiviert wird das Entfernen akzeptiert und der Rabatt auf dem Rest behalten.
- Nach dem Hinzufügen zum Warenkorb: Weiterleitung zum Warenkorb oder Bestätigung an Ort und Stelle.
- Akzentfarbe: Farbe der Badges, Buttons und Rahmen der Modulblöcke.
- Schaufensterprodukt im Katalog: aktiviert das für jedes Paket erzeugte Schaufensterprodukt (Listen, Suche, Sitemap).
- Preisbasis des Schaufensters: brutto für einen B2C-Shop, netto für einen Shop mit Nettopreisanzeige.
- Paketübersicht auf der Rechnungs-PDF: Block am Ende der Rechnung, die einzige Stelle, die PrestaShop bereitstellt.
- Paketübersicht auf Bestellbestätigung und Bestellhistorie.
- Variantenauswahl auf der Paketseite: wie auf der Produktseite (eine Auswahl pro Attribut: Dropdown, Farbfelder oder Buttons, je nach Typ der Attributgruppe), ein Dropdown mit allen Varianten oder klickbare Bild-Miniaturen. In jedem Modus wechselt die Auswahl einer Variante das Produktfoto auf das zugehörige Bild, und ist die Standardvariante einer frei wählbaren Komponente ausverkauft, öffnet die Seite auf einer Variante mit Bestand.
- Anzeige der Paketseite: eigene Paketseite oder Produktseite des Shops. Siehe Abschnitt „Das Paket als Produktseite anzeigen“.
- Paket im Warenkorb: eine Zeile pro Produkt oder eine Zeile für das Paket. Siehe Abschnitt „Eine einzige Zeile für das Paket im Warenkorb“.
Ein Paket anlegen
Öffnen Sie Katalog und Packs & Bundles (DF) und klicken Sie auf Neues Paket.
Paketinformationen
- Name: übersetztes Feld, angezeigt im Produktseitenblock, auf der Paketseite und im Warenkorb-Badge.
- URL-Alias: wird automatisch aus dem Namen erzeugt, wenn Sie das Feld leer lassen. Er bildet die Adresse der Paketseite.
- Beschreibung: übersetzter Rich-Text, angezeigt auf der Paketseite.
- Badge: kurzer übersetzter Text auf den Cross-Sell-Karten. Leer lassen, um den Ersparnisprozentsatz anzuzeigen.
- Preismodus: die vier unten beschriebenen Modi. Das Formular blendet je nach Modus die unnötigen Felder aus.
- Bestehende Aktionen vererben: aktiviert dienen laufende Katalograbatte als Ausgangspreis der Paketberechnung.
- Gültigkeitsdaten: leer lassen für ein dauerhaftes Paket. Außerhalb des Zeitraums verschwindet das Paket aus dem Front Office.
- Aktiv: entspricht dem Aktivierungsschalter in der Liste.
Komponenten
Das Komponenten-Panel verwaltet den Paketinhalt.
- Produktsuche: mindestens zwei Zeichen eingeben. Die Suche umfasst Name, Referenz und ID. Ein Klick auf ein Ergebnis fügt es hinzu.
- Variante: bei einem Produkt mit Varianten listet der Selektor die Varianten mit ihrem Preis. Die gewählte Variante wird zur Standardvariante.
- Variantenwahl durch den Kunden: aktiviert wählt der Kunde seine Variante auf der Paketseite und im Produktseitenblock. Deaktiviert ist die Variante vorgegeben.
- Menge: Anzahl Einheiten der Komponente im Paket. Ein Paket kann ein einziges Produkt in Menge enthalten, für einen Mehrfachverkauf.
- Editierbare Menge: der Kunde kann die Menge dieser Komponente auf der Paketseite anpassen.
- Optional: der Kunde kann diese Komponente abwählen, der Preis wird neu berechnet.
- Rabatt pro Produkt: Prozentsatz oder Betrag, nur im Modus Rabatt pro Produkt sichtbar. Ein Rabatt von 100 % macht die Komponente gratis.
- Reihenfolge: Pfeile nach oben und unten zum Ordnen der Anzeige.
Der Preissimulator unter der Tabelle berechnet Gesamtpreis, Paketpreis und Ersparnis bei jeder Änderung live neu.
Der Duplizieren-Button in der Liste kopiert ein komplettes Paket mit seinen Komponenten, praktisch um dieselbe Mechanik auf mehrere Sortimente zu übertragen.
Der Paket-Editor
Das Formular ist in sechs Schritte gegliedert: Informationen (Name, Artikelnummer, Badge, Sichtbarkeit, sprechende URL, Gültigkeitszeitraum), Produkte, Preis, Bilder, Beschreibung und Katalog. Die Sprachauswahl oben in den Schritten 1 und 5 schaltet alle übersetzten Felder um. Rechts aktualisiert sich die Übersicht bei jeder Änderung: Preis der einzeln gekauften Produkte, Rabatt, Paketpreis brutto und netto sowie die MwSt.-Aufschlüsselung nach Satz, wie sie auf der Rechnung erscheint.
Bilder werden per Drag and Drop oder per Klick hinzugefügt. Ziehen Sie die Miniaturen, um die Reihenfolge zu ändern: das erste Bild wird zum Titelbild. Der Kategoriebaum in Schritt 6 bestimmt, wo das Paket im Katalog erscheint, die erste angehakte Kategorie wird seine Standardkategorie.
Die vier Preismodi
Ohne Rabatt
Das Paket verkauft die Komponenten zum aktuellen Preis. Nützlich für ein reines Komfortpaket oder um nur die Zusammenstellung hervorzuheben.
Globaler Prozentrabatt
Der Prozentsatz gilt für den Preis jeder Komponente. Ein Paket mit -15 % rabattiert jede Zeile um 15 %.
Rabatt pro Produkt
Jede Komponente trägt ihren eigenen Rabatt, als Prozentsatz oder Betrag. Das ist der Modus für Angebote wie Maschine plus Gratiszubehör: die Maschine bei 0 %, das Zubehör bei 100 %.
Festpreis
Sie kommunizieren den Paketpreis, brutto in der Standardwährung. Die Differenz zwischen der Summe der aktuellen Preise und dem angekündigten Preis wird proportional auf jede Zeile verteilt, netto. Jedes Produkt behält seinen Steuersatz.
Beispiel: ein Paket zu 49 € aus Produkt A zu 40 € und Produkt B zu 30 €. Die aktuelle Summe beträgt 70 €, der Rabatt 21 €. A trägt 12 € Rabatt, B 9 €, im Verhältnis zu ihrem Gewicht am Gesamtbetrag. Die Rechnung bleibt exakt, auch wenn A 19 % und B 7 % Steuer trägt.
Der Block auf den Produktseiten
Jedes Produkt, das zu einem Paket gehört, zeigt einen Block „dieses Produkt ist auch im Paket erhältlich“. Jede Karte zeigt die Miniaturen der Komponenten, den Paketnamen, die durchgestrichene Summe, den Paketpreis, das Ersparnis-Badge und den Bestandsstatus.
- Paket ansehen öffnet die Paketseite.
- Hinzufügen legt das Paket in seiner Standardkonfiguration direkt in den Warenkorb. Der Button wird zu Konfigurieren, wenn das Paket Auswahlmöglichkeiten enthält: freie Variante, optionale Komponente oder editierbare Menge.
Position des Blocks, Kartenanzahl und Sortierung werden in der Modulkonfiguration eingestellt.
Die Paketseite
Jedes Paket hat seine Seite unter /pack/12-mein-alias, mit der Paket-ID und dem Alias der aktuellen Sprache. Die Seite listet die Komponenten mit ihren Variantenselektoren, den Checkboxen der optionalen Produkte und den Mengenfeldern, sofern freigegeben.
Jede Änderung berechnet Gesamtpreis, Paketpreis, Ersparnis und Verfügbarkeit per Ajax neu, ohne Neuladen der Seite. Der Hinzufügen-Button sendet die aktuelle Auswahl an den Warenkorb.
Die Verfügbarkeit wird aus realen Beständen berechnet: das Paket ist verkäuflich, wenn jede erforderliche Komponente in der angefragten Menge verfügbar ist, unter Berücksichtigung der Nachbestellerlaubnis jedes Produkts.
Der Warenkorb
Beim Hinzufügen eines Pakets wird jede Komponente zu einer echten Warenkorbzeile, fakturiert zum Paketpreis über einen auf diesen Warenkorb begrenzten Spezialpreis. Es entsteht kein Phantomprodukt.
Paket-Badge
Jede zu einem Paket gehörende Zeile zeigt ein Badge mit dem Paketnamen, einem Link zur Paketseite und einem Button Ganzes Paket entfernen. Das Entfernen löscht alle Paketzeilen und ihre Rabatte in einer Aktion.
Zusätzliche Mengen
Der Paketpreis deckt nur die Paketmengen ab. Erhöht der Kunde die Menge einer Zeile, wendet das Modul einen gewichteten Durchschnittspreis an: Paketmenge zum Paketpreis, Mehrmenge zum Normalpreis.
Beispiel: Paket mit 2 Einheiten zu 8 € bei einem Normalpreis von 10 €. Der Kunde erhöht die Zeile auf 5 Einheiten. Der Einheitspreis wird (2 x 8 + 3 x 10) / 5 = 9,20 €, ein Gesamtbetrag von 46 €. Der Rabatt bleibt auf die 2 Paketeinheiten begrenzt.
Strikter Modus
Aktiviert entfernt das Löschen einer Komponente das ganze Paket samt Rabatt. Das verhindert, den Rabatt zu behalten und einen Teil des Sets zurückzugeben. Deaktiviert wird das Entfernen akzeptiert und der Rabatt auf den verbleibenden Zeilen behalten.
Dasselbe Produkt kann im selben Warenkorb zu mehreren Paketen gehören. Jedes Paket wird separat verfolgt und der Durchschnittspreis berücksichtigt alle.
Bestellungen und Buchhaltung
Jedes Paketprodukt landet auf seiner eigenen Bestellzeile, zum Paketpreis. Rechnungen, Lieferscheine, Gutschriften und Teilretouren funktionieren nativ, Artikel für Artikel. Ihre Buchhaltungs- und ERP-Exporte sehen nur echte Referenzen aus Ihrem Katalog.
Die Rechnung zeigt den Preis ohne Paket (Katalogaktionen eingeschlossen) und den Paket-Einheitspreis pro Zeile, plus einen Block Pack details am Ende der Rechnung: Summe ohne Paket, Rabatt als Betrag und Prozentsatz, Paketsumme. Dieselbe Übersicht erscheint auf der Bestätigungsseite und in der Bestellhistorie des Kunden. Das Bestelldetail im Back Office zeigt eine Übersicht der bestellten Pakete. Die Paketliste zeigt einen Verkaufszähler pro Paket.
Das Schaufensterprodukt im Katalog
Jedes Paket erzeugt ein automatisch synchronisiertes Schaufensterprodukt: ein echtes Katalogprodukt ohne Steuerregel, mit der Referenz DFPACK gefolgt von der Paket-ID. Es erscheint in Kategorielisten, nativer Suche, Facettenfiltern und Sitemap, mit der Galerie des Pakets, der nativen durchgestrichenen Summe und dem Aktions-Badge. Sein angezeigter Bestand folgt der berechneten Paketverfügbarkeit.
Je nach Einstellung „Anzeige der Paketseite“ leitet die Schaufensterseite per 301 zur Paketseite weiter oder zeigt das Paket selbst als Produktseite an. Je nach Einstellung „Paket im Warenkorb“ wird eine Warenkorbzeile, die es referenziert, in Produktzeilen mit jeweils eigenem Steuersatz umgewandelt oder wird zu einer einzigen Paketzeile mit ihrem Inhalt. Es wird bei jedem Speichern des Pakets, bei jeder Änderung oder Bestandsbewegung eines Komponentenprodukts und nach jeder Bestellung neu synchronisiert.
Bearbeiten Sie das Schaufensterprodukt nicht direkt im Katalog: die nächste Synchronisation würde Ihre Änderungen überschreiben. Alles wird über das Paketformular gesteuert.
Native PrestaShop-Pakete importieren
Der Button Import PrestaShop packs in der Paketliste konvertiert Ihre nativen Pakete: Komponenten mit Varianten und Mengen, Kategorien, Bilder und Preis werden übernommen (Festpreismodus). Das native Paketprodukt wird nach dem Import deaktiviert, damit es nicht mit dem Schaufenster konkurriert; bei Bedarf im Katalog reaktivieren. Die Referenz PSPACK hält die Herkunft fest: ein erneuter Import importiert dasselbe Paket nie zweimal. In andere Pakete verschachtelte Pakete werden ignoriert.
Das Paket als Produktseite anzeigen
Mit der Einstellung „Anzeige der Paketseite“ auf „Produktseite des Shops“ erscheint das Paket auf der Seite seines Schaufensterprodukts, die Ihr Theme wie jedes andere Produkt aufbaut: Galerie, Brotkrümelnavigation, Preis, Menge, Warenkorb-Button, Tabs, Bewertungen. Der Block „Dieses Paket enthält“ steht über der Menge, mit den Produkten, ihren Variantenauswahlen, den optionalen Produkten und der Ersparnis.
Ändert der Kunde eine Variante, aktualisieren sich Preis, durchgestrichener Preis und Rabattprozentsatz des Themes. Der Warenkorb-Button des Themes legt das Paket mit der Auswahl des Kunden in den Warenkorb, und das Mengenfeld bestimmt die Anzahl der Pakete. Links zum Paket (Cross-Sell-Block, Seite /packs, Warenkorb-Badge) führen zu dieser Seite, und die früheren /pack/-Adressen leiten per 301 dorthin weiter.
Die Schnellansicht der Produktlisten bleibt ein einfaches Produktfenster: ein Hinzufügen von dort legt das Paket in seiner Standardkonfiguration in den Warenkorb.
Eine einzige Zeile für das Paket im Warenkorb
Mit der Einstellung „Paket im Warenkorb“ auf „Eine Zeile für das Paket“ kommt das Paket als einzige Zeile in den Warenkorb, unter dem Paketnamen, mit seinem Inhalt darunter: „1 x T-Shirt (Größe: S, Farbe: Weiß)“. Zwei unterschiedliche Auswahlen ergeben zwei Zeilen, dasselbe Paket mit derselben Auswahl erhöht die Menge der Zeile.
Der Zeilenpreis ist die Summe der Produktpreise, jeweils mit dem Steuersatz des Produkts berechnet: Netto-, Brutto- und MwSt.-Summen von Warenkorb und Bestellung sind exakt. Auf der Rechnung zeigt die Paketzeile ihren Grundpreis und Rabatt, und die MwSt. wird nach Satz aufgeschlüsselt. Der Paketinhalt erscheint auch im Checkout, im Bestelldetail, in den E-Mails und auf der Rechnung, und die Karte „Pakete in dieser Bestellung“ im Back Office zeigt die zu kommissionierenden Produkte und Varianten.
Der Bestand jedes Produkts wird bei der Bestellung abgebucht, zurückgebucht, wenn die Bestellung auf „Storniert“ oder „Zahlungsfehler“ wechselt, und erneut abgebucht, wenn sie reaktiviert wird.
Teilretouren mit Wiedereinlagerung buchen nur das Schaufensterprodukt zurück. Ihre Buchhaltungsexporte sehen eine DFPACK-Artikelnummer mit mehreren Steuersätzen in derselben Zeile: verlangt Ihre Buchhaltung eine Zeile pro Satz, behalten Sie den Modus „Eine Zeile pro Produkt“.
Multistore und mehrsprachig
Jedes Paket wird den Shops seines Erstellungskontexts zugeordnet und kann Shop für Shop verwaltet werden. Die Felder Name, URL-Alias, Beschreibung und Badge werden in den installierten Sprachen übersetzt. Das Front Office folgt der Kundensprache, auch im Alias der Paketseite.
Anzeige an Ihr Theme anpassen
Drei Templates sind überschreibbar. Kopieren Sie sie von /modules/dfpackpro/views/templates/ nach /themes/ihr-theme/modules/dfpackpro/views/templates/ unter Beibehaltung der Unterordner.
hook/product_packs.tpl: der Cross-Sell-Block der Produktseitenfront/pack.tpl: die Paketseitehook/cart_line_badge.tpl: das Paket-Badge im Warenkorb
Das CSS ist unter dem Präfix dfpackpro isoliert und die Akzentfarbe liegt in der CSS-Variablen --dfpackpro-accent. Für punktuelle Anpassungen zielen Sie auf die Klassen aus dem Stylesheet Ihres Themes, statt views/css/front.css zu bearbeiten, das beim Update überschrieben würde.
Fehlerbehebung
Der Block erscheint nicht auf der Produktseite
- Prüfen Sie, ob das Paket aktiv ist und das heutige Datum im Gültigkeitszeitraum liegt.
- Prüfen Sie, ob das angesehene Produkt tatsächlich zu den Paketkomponenten gehört.
- Kontrollieren Sie die Einstellung Paketblock aktiv und die gewählte Position in der Konfiguration.
- Leeren Sie den Smarty-Cache und den Cache Ihres Servers.
Das Paket wird als nicht verfügbar angezeigt
Die Verfügbarkeit ist das Minimum der Bestände der erforderlichen Komponenten geteilt durch ihre Menge im Paket. Eine einzige ausverkaufte Komponente ohne Nachbestellerlaubnis reicht, um das Paket nicht verfügbar zu machen. Abgewählte optionale Komponenten zählen nicht.
Das Warenkorb-Badge erscheint an der falschen Stelle
Das Theme rendert das Badge in der Aktionsspalte, danach verschiebt es JavaScript in den Produktinformationsblock. Bei einem stark angepassten Theme ohne die Standardcontainer bleibt das Badge an seiner Ursprungsposition. Überschreiben Sie cart_line_badge.tpl, um es in Ihre Struktur einzupassen.
Der Paketpreis gilt für zu viele Einheiten
Dieser Fall wird durch den gewichteten Durchschnittspreis abgedeckt: prüfen Sie den auf der Zeile angezeigten Einheitspreis, er muss zwischen Paketpreis und Normalpreis liegen, sobald die Menge die Paketmenge übersteigt. Falls nicht, leeren Sie den Cache und ändern Sie die Menge, um eine Neuberechnung auszulösen.
Die Paketseite liefert einen 404
Prüfen Sie, ob das Paket aktiv und im Gültigkeitszeitraum ist. Nach einer Alias-Änderung leitet die alte Adresse per 301 auf die neue weiter, solange die Paket-ID korrekt ist.
Deinstallation
Die Deinstallation entfernt die sechs Tabellen des Moduls, seine Konfigurationsschlüssel und den Tab im Katalog-Menü. Vergangene Bestellungen behalten ihre Zeilen und Preise, Ihre Buchhaltungshistorie wird nicht verändert.