Grundpreisberechnung für Rabattstaffel
Rabattstaffel
In Shoptodate sind bis zu 6 parallele Staffelungen pro Variante möglich. Hat man drei Flaschengrößen und von einer anderen Ausprägung weitere 2 Typen, dann hat man zwar erst 6 Varianten, aber mit 5 Rabattstaffeln kann das zu insgesamt 36 Grundpreisenberechnungen führen. Denn jede Variante kann eigene Rabattstaffeln haben. Das Problem ist wieder, dass die Grundfunktion der Berechnung nicht dynamisch realisiert war und nun obendrein für die darauf aufsetzenden Rabattstaffeln wiederum keine Lösung existiert.
Durch eine Parser-Lösung wird der erzeugte Code nachträglich manipuliert und damit eine
Liste der Grundpreise [779 KB] [58 Clicks]
analoge der vorhandenen Rabattstaffel generiert. Mit Styles versehen, kann man mit CSS Techniken die Ausgabe gestalten.
Wählt der Kunde 2 Stück und erreicht damit die Rabattstaffel, dann wird die entsprechende, also für den Kunden gültige Rabattstaffel farblich hinterlegt. Alternativ wäre es möglich die inaktiven Wert mit eine grauen Farbe in den optische Hintergrund zu schieben und mit fett und oder Farbe den aktuell gültigen Wert hevorzuheben.
Zusätzlich wird neben der Rabattstaffel, der jeweilig gültige Wert durch eine Gestaltungskomponente unterlegt. Im aktuellen Beispiel wurde eine Farbhinterlegung gewählt. Wählt der Kunde eine Menge, dann wird der zur Menge entsprechende Listeneintrag mit der für den Kunden gültigen Grundpreisberechnung markiert. Die Art der Gestaltung ist beliebig anpassbar.
Dies funktioniert sowohl für Produkte mit Varianten. Lediglich für Produkte ohne Varianten kann eine Rabattstaffel nicht dynamisch markiert werden. Bei statischen Produkten fehlen leider die grundsätzlichen Funktionen für eine dynamische Reaktion auf die Kundeneingaben
Installation
In der Navigation.ccml fügen Sie nach der Zeile
</head>
diese Zeile ein:
</head>
<?php ob_start(); ?>
Und vor der Zeile
</body>
diese Zeile einfügen:
<?php require(ASSETS."parser.php"); ?>
</body>
Den von mir bereitgestellten PHP-Code legen Sie unverändert ins Design-Verzeichnis (entpackt) ab. Der PHP Code ist kommentiert, Anpassungen erfolgen aber auf eigene Gefahr. PHP-Code-Ablage als parser.php.
Hängen Sie an das Ende der global.ccml folgende Zeile an
<cc:asset src="parser.php" dst="parser.php" obj="parsercode">
Als CSS Style für die Rabattstaffeln gibt es folgende Styles, die Sie in eine beliebige CSS-Datei z.B: style_content.css anhängen können. Die Styles können Sie Ihren Design entsprechend anpassen:
# baseprice{}
# basepricerabatt1, # basepricerabatt2, # basepricerabatt3, # basepricerabatt4,
# basepricerabatt5{margin-top:5px;border-top:1px solid #aaaaaa;}
Seiten komplett generieren und hochladen.Im Fehlerfall kann der Parser schnell deaktiviert werden: Dazu den Inhalt der parser.php ändern. Diese liegt am FTP-Server unter /assets/parser.php und kann mit Filezilla schnell bearbeitet werden. Änderung des Parsers auf:
<?php ?>
Hinweise für Grundpreisfunktionen
Wesentlich ist, dass innerhalb der vordefinierten Mengenarten "kg", "g", "l" und "ml" keine Wechsel stattfindet und exakt diese Namen verwendet werden. Alle Varianten einer Dimension (also einer Combobox) müssen gleiche Mengen haben. Es können auch keine zwei Mengen kombiniert werden, also z.B. oben: Größe des Spritzbehälters 50 ml, 100 ml, 500 ml und unten: Größe des Zusatztank 10 l, 20 l, 50 l. Es kann nur mit einer Dimension gerechnet werden. Im Zweifelsfall sollte die erste Variable die Mengenberechnung steuern.
Für die Rabattstaffel gilt:
1. Sie wird immer komplett angezeigt.
2. Sie reagiert nicht dynamisch auf die eingegebene Menge, lediglich ein hervorheben ist möglich. Mit dieser Technik wäre auch ein Ausblenden der ungültigen Einträge möglich.