{# # Einmalkauf oder Abo – eine Entscheidung, ein Kaufknopf. # # Vorher standen beide Wege als getrennte Kästen untereinander: oben das # Kaufformular, 300 px weiter unten ein zweiter Kasten mit eigener # Schaltfläche. Der Preisvergleich („4,95 €" oben gegen „−5 %" unten) fand # im Kopf des Kunden statt, und zwei gleichwertige Schaltflächen haben sich # gegenseitig die Aufmerksamkeit genommen. # # Jetzt: zwei Karten nebeneinander mit beiden Preisen, darunter genau ein # Formular. Umgeschaltet wird mit zwei Optionsfeldern und CSS – ohne # JavaScript, damit der Kauf auch dann funktioniert, wenn ein Skript klemmt. # # Bewusst NICHT vorausgewählt ist das Abo: jemanden ungefragt in einen # wiederkehrenden Vertrag laufen zu lassen, ist in Deutschland angreifbar # und kostet an Widerrufen mehr, als es an Abschlüssen bringt. Das Abo darf # auffallen, die Entscheidung trifft der Kunde. #} {% set rzAboPercent = config('RiccardoAbo.config.discountPercent')|default(5) %} {% set rzAboDefault = config('RiccardoAbo.config.defaultInterval')|default(4) %} {% set rzAboExcluded = (config('RiccardoAbo.config.excludedProductNumbers')|default(''))|split(',')|map(n => n|trim) %} {% set rzAboMoeglich = config('RiccardoAbo.config.active') and product.available and product.productNumber not in rzAboExcluded %} {% if not rzAboMoeglich %} {# Ohne Abo bleibt schlicht das gewohnte Kaufformular stehen. #} {% sw_include '@Storefront/storefront/component/buy-widget/buy-widget-form.html.twig' %} {% else %} {# Der Preis, den der Warenkorb berechnet – nicht der Grundpreis. # Gibt es Regelpreise (der JTL-Abgleich legt zu jedem Artikel einen an), # gewinnen sie. Vorher stand hier der Grundpreis und das Abo rechnete # 5 % auf eine Zahl, die der Kunde nie zahlt. #} {% set rzEinmalPreis = rz_preis(product).unitPrice %} {% set rzAboPreis = rzEinmalPreis * (100 - rzAboPercent) / 100 %}