Varianten-Preisaufschlag: Storefront und Warenkorb
Wo der Varianten-Preisaufschlag in der Sylius-Storefront wirkt: Produktseite, Produktkarten, Warenkorb, Streichpreis, Preisbereichs-Filter, und was bewusst unverändert bleibt.
Varianten-Preisaufschlag: Storefront und Warenkorb
Das Plugin ändert keine Storefront-Templates und bringt weder Storefront-Routen noch eigenes JavaScript mit. Es ersetzt die Preisrechner von Sylius durch Decorator. Jede Stelle der Storefront, die Preise über diese Rechner bezieht, zeigt deshalb automatisch den Preis mit Aufschlag. Ein Theme musst du nicht anpassen.
| Sylius-Version | Dekorierte Rechner |
|---|---|
| 2.2 | sylius.calculator.product_variant_price |
| 2.3 und neuer | sylius.calculator.product_variant_price und zusätzlich sylius.calculator.product_variant_catalog_price, der in 2.3 hinzukam und die Preise für Produktseite, Listen, Variantenauswahl und API liefert |
Das Plugin erkennt selbst, ob der Katalog-Rechner existiert. Du musst nichts einstellen.
Wo der Aufschlag wirkt
| Stelle | Verhalten |
|---|---|
| Produktseite | Preis und Streichpreis der gewählten Variante, ebenso die Preisübersicht der Varianten |
| Produktkarten | Preis der Variante, die die Karte anzeigt |
| Warenkorb und Checkout | Der Stückpreis jeder Position wird bei jeder Neuberechnung des Warenkorbs aus dem Rechner gesetzt, also auch mit dem Aufschlag |
| Promotion-Filter nach Preisbereich | Die Prüfung nutzt denselben Rechner |
Der Aufschlag richtet sich nach dem Channel der Anfrage. Hat der Channel eine eigene Einstellung, gilt sie, sonst die globale (siehe Konfiguration).
Streichpreis und Katalog-Promotionen
- Der ursprüngliche Preis (Streichpreis) wird nach derselben Formel aus dem ursprünglichen Preis der Basisvariante berechnet. Hat die Basisvariante eine Katalog-Promotion, sind Preis und Streichpreis der Aufschlagsvariante beide davon abgeleitet.
- Eine Katalog-Promotion, die direkt auf die Aufschlagsvariante wirkt, hat keinen Einfluss auf deren Preis, weil dieser aus der Basisvariante kommt.
- Der Hinweis auf den niedrigsten Preis vor der Aktion (Omnibus-Preis) wird nicht verändert: Er stammt unverändert aus den Daten der Variante selbst und passt deshalb unter Umständen nicht zum berechneten Preis.
Was unverändert bleibt
- Sortierung nach Preis in Produktlisten: Sylius sortiert in der Datenbank nach den gespeicherten Channel-Preisen der Varianten, nicht nach dem berechneten Preis.
- Gespeicherte Channel-Preise: Sie bleiben in der Datenbank und im Variantenformular stehen, werden bei einer Variante mit Aufschlag aber nicht für den Verkaufspreis genutzt.
- Bestehende Bestellungen: Positionen, die Sylius nicht mehr neu berechnet, behalten ihren Preis.
Voraussetzungen pro Channel
- Auch die Variante mit Aufschlag braucht in jedem Channel einen eigenen gespeicherten Preis, weil Sylius ihn zuerst abfragt. Er wird anschließend verworfen.
- Die Basisvariante braucht in jedem Channel einen Preis. Fehlt er, löst die Preisberechnung der Aufschlagsvariante in diesem Channel den Sylius-Fehler für fehlende Channel-Preise aus. Das Plugin fängt ihn bewusst nicht ab, damit kein falscher Preis angezeigt wird.
Das Verhalten der Shop API steht unter Shop API und Headless.