Zum Hauptinhalt springen
Ein Produkt hat selten nur einen Preis. Neben dem aktuellen Verkaufspreis kommen je nach Geschäftsmodell ein Streichpreis, mengenabhängige Staffelpreise, ein Ab-Preis bei Varianten oder ein sich laufend ändernder Online-Preis hinzu. Wegweiser: Preise, Kosten, Mehrwertsteuer, Währung

Verkaufspreis

Der Verkaufspreis steht im technischen Produktdatenfeld Price. Als Dezimaltrennzeichen dient der Punkt, beispielsweise 50.00. Ausgeben lässt er sich auf jedem Template, auf dem Produktdaten geladen sind.
Auf der Warenkorbseite ws_basket.htm gibt BASKET-PR-Price den Einzelpreis je Position aus.

Originalpreis als Streichpreis

Der Originalpreis ist der vorherige Preis eines rabattierten Produkts, im Shop üblich als durchgestrichener Preis: “statt 50.00 € nur 29.99 €”. Gepflegt wird er im technischen Produktdatenfeld OrgPrice, ebenfalls mit Punkt als Dezimaltrennzeichen.

Ersparnis ausgeben

Aus Original- und Verkaufspreis berechnet der Shop die Ersparnis selbst, wahlweise als Prozentsatz oder als Betrag.
PR-Discount hängt das Prozentzeichen selbst an. Ein zusätzliches % im Template führt zu einer doppelten Ausgabe. Über ein Argument steuern Sie die Nachkommastellen, ~PR-Discount(0)~ ergibt beispielsweise “20 %”.

Staffelpreise

Staffelpreise pflegen Sie im WSPManager über das Produktattribut “Staffelpreise” oder im angeschlossenen Warenwirtschaftssystem.

Preis zur eingegebenen Menge anzeigen

Vier Tags berücksichtigen die eingegebene Menge samt Staffelpreis und einem etwaigen Kundenrabatt.
Zwei Einschränkungen:Die Tags arbeiten nur auf der Produktdetailansicht ws_product.htm und nur für ein Einzel- oder Set-Produkt, nicht in Produktlisten.Nach einer Mengeneingabe muss die Seite neu geladen werden, sonst steht dort noch der alte Preis. Üblich ist ein Nachladen per AJAX.
Wegweiser: Abhängige Varianten per AJAX nachladen

Staffelpreistabelle

Die hinterlegten Staffeln lassen sich als Tabelle ausgeben. Die Klammerung PR-BulkDiscount greift nur bei Produkten mit Staffelpreisen, die Schleife {@[BD-Data](/v8s/referenz/tags/bd-staffelpreise#die-tags)} durchläuft die Stufen.
Das ergibt eine Tabelle wie diese: Eine Staffelstufe kann auf zwei Arten greifen: ab der angegebenen Menge oder nur bei genau dieser Menge. Welche der beiden gilt, legen Sie je Stufe bei der Pflege fest. Im Template ist der Unterschied nicht sichtbar, er wirkt sich aber auf den berechneten Preis aus.

Automatische Staffelpreisberechnung bei freier Mengenangabe

Normalerweise wählt der Käufer die Menge aus festen Werten, die über abhängige Varianten gepflegt sind. Je Wert ein eigener Preis, je zusätzlichem Wert mehr Pflegeaufwand. Mit der automatischen Staffelpreisberechnung pflegen Sie nur noch einige wenige Menge-Preis-Paare. Der Käufer darf zusätzlich eine eigene Wunschmenge eingeben, und der Shop berechnet den Preis dafür. Preisinterpolation

Wie gerechnet wird

Der Shop sucht zur Wunschmenge das nächstkleinere und das nächstgrößere hinterlegte Menge-Preis-Paar. Nur ein Paar vorhanden: Aus diesem Paar wird der Stückpreis gebildet, mit der Wunschmenge multipliziert und auf zwei Stellen gerundet.
Beide Paare vorhanden: Aus der Preisdifferenz der beiden Paare wird ein Stückpreis für den Bereich dazwischen gebildet. Dieser gilt für die Menge oberhalb des kleineren Paars und wird zu dessen Preis addiert.
Diese Funktion lässt sich nicht kombinieren mit DirectPrice, alternativen beziehungsweise zeitabhängigen Preisen, kundenindividuellen Preisen und Flächenprodukten.
Die freie Mengeneingabe wird in den Deep-Link-Tags PR-DepVarLink, PR-DepVarLinkPart, PR-SetLink und PR-SetLinkEnc automatisch als URL-Parameter depvar_qty mitgegeben. Voraussetzung ist, dass das Neuladen per AJAX beim Verlassen des Mengenfelds korrekt eingebunden ist.

Voraussetzung

Die Menge der betreffenden Produkte muss über abhängige Varianten gepflegt und ausgewählt werden. Eine Freischaltung durch WEBSALE ist nicht nötig. Wegweiser: Abhängige Varianten anzeigen

Schritt 1: Produktdaten anpassen

Die Menge-Preis-Paare stehen in einem eigenen Produktdatenfeld.

Schritt 2: Auswahlliste beschriften (optional)

In der Mengen-Auswahlliste steht der Eintrag für die freie Eingabe standardmäßig als “Interpolation”. Mit PR-DepVariationOptionIsPriceInterpolation1 geben Sie ihm einen verständlichen Text.

Schritt 3: Eingabefeld ergänzen

Solange die Menge über eine abhängige Variante kommt, braucht es kein Mengenfeld. Bei freier Eingabe schon. Die Klammerung PR-DepVarQuantity unterscheidet beide Fälle.
Das onBlur löst das Nachladen aus, sobald der Käufer das Feld verlässt. Ohne diesen Aufruf bleibt der angezeigte Preis auf dem alten Stand.

Schritt 4: Hinterlegte Menge-Preis-Paare anzeigen (optional)

Die gepflegten Paare lassen sich als Orientierung ausgeben. Der Inhalt von PR-PriceInterpolation wird dafür mit den DesignControl-Tags zerlegt.
Die Paare liegen als <g><1>Menge</1><2>Preis</2></g> vor. DC-DynamicLoop1 zerlegt die Kette an den <g>-Marken, DC-FP1_extractTaggedData holt aus jedem Block Menge und Preis heraus, DC-CommercialCalc1 formatiert den Preis kaufmännisch.

Schritt 5: Warenkorbseite erweitern

Ab-Preis und bester Preis

Bei Produkten mit abhängigen Varianten unterscheiden sich die Preise je Kombination. Für die Produktliste brauchen Sie dann einen Ab-Preis.

Online-Preise

Für Produkte mit häufig wechselnden Preisen, klassisch Edelmetalle, liefert die Warenwirtschaft den Preis laufend nach. Die Produktdaten selbst bleiben unverändert, überschrieben wird nur der Preis. Ruft ein Käufer ein solches Produkt auf, lädt der Shop den aktuellen Preis nach. Legt er es in den Warenkorb, gilt dieser Preis eine festgelegte Zeit. Danach werden alle Online-Preise im Warenkorb aktualisiert.
Online-Preise lassen sich nicht kombinieren mit Staffelpreisen, Rabatten, Gutscheinen auf Positionsebene, Varianten, Öko-Steuer, Set-Produkten, OrgPrice sowie alternativen beziehungsweise zeitabhängigen Preisen. Eine Sortierung nach Online-Preisen ist ebenfalls nicht möglich.
Online Preis

Verhalten beim Bestellabschluss

Befindet sich der Käufer im Online-Clearing, also bei der Eingabe und Prüfung von Zahlungsdaten, werden die Preise eingefroren und auch nach Ablauf der Gültigkeit nicht mehr aktualisiert. Ist ein Preis beim Klick auf “Bestellung absenden” abgelaufen, entscheidet die Konfiguration über den weiteren Ablauf. Lässt sich für ein Online-Preis-Produkt kein Preis ermitteln, kann es nicht in den Warenkorb gelegt werden. Liegt es bereits im Warenkorb und schlägt nur die Aktualisierung fehl, bleibt es bestellbar.

Schritt 1: Preise bereitstellen

Die Warenwirtschaft liefert die Online-Preise automatisiert.

Schritt 2: Produkte kennzeichnen

Schritt 3: Shopkonfiguration ergänzen

Beide Parameter stehen im Abschnitt <Basic> der shop.config.
OnlinePriceTimeoutInSec ist die Gültigkeitsdauer in Sekunden. OnlinePriceNotifyPriceUpdateAtPlaceOrder-Allow steuert das Verhalten aus der Tabelle oben. Referenz: Abschnitt Basic

Schritt 4: Produktdetailansicht anpassen

PR-OnlinePrice trennt Online-Preis-Produkte von normalen. PR-ValidOnlinePriceFound sagt, ob ein Preis ermittelt werden konnte. Ohne gültigen Preis sollten Sie auch den Warenkorb-Button wegklammern.
Derselbe Block funktioniert auch auf der Suchergebnisseite ws_search.htm, der Produktübersicht ws_category.htm und in CAT-AdvData()-Produktlisten.

Schritt 5: Warenkorb und Bestellübersicht anpassen

Zeigen Sie die Restzeit und einen Button zum Aktualisieren an. ST-BasketPage allein genügt hier nicht, weil der Block auf zwei Seiten stehen soll. Stattdessen blendet {![ST-PlacedOrder](/v8s/referenz/tags/st/seitenzustand-und-navigation#die-tags-im-uberblick)} ihn auf der Bestätigungsseite aus.
BASKET-PR-OnlinePriceTimeLeft liefert Sekunden. Die DC-Int-Tags rechnen daraus Minuten und Sekunden, _div(60) für die Minuten und _mod(60) für den Rest.
Verwenden Sie denselben Block auf der Bestellübersicht ws_place_order.htm, aber mit der passenden Action: ~FORM-Basket~ auf der Warenkorbseite, ~FORM-PlaceOrder~ auf der Bestellübersicht.
Materialien: Countdown für die Restzeit der Online-Preise

Schritt 6: Hinweismeldung ausgeben

Die Meldung informiert den Käufer, dass Online-Preise aktualisiert wurden. Der Zusatz in Klammern benennt den Auslöser.