Markus Michalski FAQ

Varianten-Preisaufschlag

Varianten-Preisaufschlag für Sylius 2: Varianten als Prozentsatz und fester Aufschlag auf den Preis einer Basisvariante, pro Channel überschreibbar, wirksam in Storefront, Warenkorb und Shop API.

English Version

Zurück zu Sylius Plugins

Varianten-Preisaufschlag

Sylius
PHP
License

Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.

Überblick

Sylius speichert den Preis jeder Variante als festen Betrag pro Channel. Eine Variante, die "50 Prozent teurer als die Standardvariante" kostet, lässt sich damit nicht ausdrücken, und Sylius kennt auch keine Eltern-Variante, die einen Referenzpreis trägt. Das Plugin ergänzt das: Du markierst pro Produkt eine Variante als Basisvariante und gibst allen anderen Varianten einen Prozentsatz und/oder einen festen Aufschlag. Wenn ein Channel andere Werte braucht, überschreibst du sie für diesen Channel.

Der Preis wird bei jeder Preisberechnung neu aus dem Preis der Basisvariante ermittelt. Ändert sich deren Preis, ziehen alle Varianten mit Aufschlag automatisch nach.

Formel: Preis = (Basispreis + fester Aufschlag) x (Prozentsatz / 100). Ein Prozentsatz von 100 lässt den Preis unverändert, 150 bedeutet 50 Prozent mehr.

graph LR
    A["Storefront (Twig)"] --> C["Preisrechner (Decorator)"]
    B["Shop API"] --> C
    D["Warenkorb-Neuberechnung"] --> C
    C --> E{"Aufschlag für die Variante?"}
    E -->|Nein| F["Eigener Preis der Variante"]
    E -->|Ja| G["Preis der Basisvariante mit Formel, Werte pro Channel"]

Dokumentation

Seite Inhalt
Installation und Betrieb Composer (Packeton), Bundle, Routen, Setup-Befehl, Update, Deinstallation
Konfiguration Variantenformular, Überschreibungen pro Channel, Formel mit Beispielen, globaler Schalter, Übersicht
Storefront und Warenkorb Wo der Aufschlag wirkt, Streichpreis, was unverändert bleibt
Shop API und Headless Betroffene Felder, Verhalten bei fehlenden Preisen
Erweiterbarkeit Dekorierte Preisrechner, Repository, Twig-Hook, Routen
Fehlerbehebung und FAQ Typische Probleme, bekannte Einschränkungen, häufige Fragen
Technische Details Ablauf, Datenmodell, Plugin-Struktur

Features

Feature Beschreibung
Aufschlag relativ zu einer Basisvariante Eine Variante pro Produkt liefert den Referenzpreis, jede andere Variante bekommt Prozentsatz und/oder festen Aufschlag
Überschreibung pro Channel Aufschlag aktiv, Prozentsatz und fester Aufschlag lassen sich je Channel überschreiben, nicht überschriebene Felder übernehmen den globalen Wert
Folgt dem Channel-Preis Der Basispreis kommt pro Channel aus der Basisvariante, inklusive ihrer Katalog-Promotionen
Dual-Mode Storefront, Warenkorb und Shop API liefern denselben Preis, weil das Plugin die zentralen Preisrechner von Sylius dekoriert (ab Sylius 2.3 auch den Katalog-Preisrechner)
Pflege im Variantenformular Eigener Bereich "Preisaufschlag" beim Bearbeiten einer Variante, kein eigener CRUD-Bereich
Übersicht Liste aller konfigurierten Aufschläge mit Link zur Variante
Globaler Schalter Schaltet alle Aufschläge sofort ab und lässt die Konfiguration bestehen
Setup-Befehl mmd:variant-price-surcharge:setup führt nur die Migrationen dieses Plugins aus und prüft den Routen-Import
Keine Änderung an ProductVariant Eigene Tabellen mit Fremdschlüssel, kein Klassen-Override im Projekt nötig

Anforderungen

Anforderung Version Hinweise
Sylius ^2.2 Paket sylius/sylius, getestet mit 2.2 und 2.3
PHP ^8.3
Datenbank MySQL oder MariaDB Die mitgelieferten Migrationen sind in MySQL-Syntax geschrieben

Composer-Paket: mmd/sylius-variant-price-surcharge-plugin, bereitgestellt über die Packeton-Registry (https://packeton.markus-michalski.net). Die Schritte stehen unter Installation und Betrieb.

Lizenz

License

Kommerzielle Lizenz: eine Sylius-Installation (alle Channels sowie Entwicklungs- und Staging-Umgebung) pro Lizenz, keine Weitergabe, Updates für 12 Monate ab Kauf.

Support

Bei Fragen oder Fehlern erreichst du mich unter support@markus-michalski.net.