Zum Hauptinhalt springen
Die Bestellhistorie zeigt dem angemeldeten Käufer seine früheren Bestellungen. Anders als im Warenkorb stehen die Daten dafür nicht als einzelne Tags bereit, sondern als abgelegter Bestelldatensatz. Dieser Datensatz hat keine feste Tag-Liste, sondern einen Aufbau aus Sektionen und Parametern, der sich mit den Funktionen des Shops erweitert. Deshalb gibt es für die Bestellhistorie keine Tags mit festen Namen, sondern zwei Bauformen. OH-S- navigiert durch die Sektionen, OH-P- holt einen Parameter aus der gerade erreichten Sektion. In beide setzen Sie die technische ID aus dem Bestelldatensatz ein. Wegweiser: Bestellhistorie integrieren · Materialien: Übersicht Bestelldaten

Wie der Bestelldatensatz aufgebaut ist

Ein Bestelldatensatz ist eine verschachtelte Struktur. Sektionen enthalten Parameter und weitere Sektionen, Parameter enthalten Werte. Die Positionen einer Bestellung liegen beispielsweise als mehrere gleichnamige Sektionen Item innerhalb der Sektion OrderList.
Im Template arbeiten Sie sich von der obersten Ebene aus nach unten. Jede Klammerung {OH-S-…} steigt eine Ebene tiefer, das zugehörige Endetag steigt wieder herauf. Welche Sektionen und Parameter es gibt, steht in der Übersicht der Bestelldaten. An den drei Country-Zeilen des Beispiels sehen Sie das Grundmuster der Parameter. Zum technischen Parameter Country mit dem Wert DEU kann es einen Parameter Country_DName mit der Feldbezeichnung und einen Parameter Country_DValue mit dem lesbaren Wert geben. Die drei Tag-Formen weiter unten greifen genau auf diese drei Zeilen zu.

Durch die Sektionen navigieren

OH-S- gibt es in drei Formen, und sie tun drei verschiedene Dinge.
Die doppelte Klammerung um die Schleife sieht umständlich aus, ist aber notwendig. Die Schleife zählt die Untersektionen der Elternsektion ab. Erst die positive Klammerung darüber stellt die Position auf die Item-Ebene, von der aus die Schleife arbeiten kann.
Als Einzel-Tag gilt OH-S- nicht. ~OH-S-Item~ ist ein ungültiges Tag. Die beiden Ausnahmen sind OH-S-LoopCounter und OH-S-RawData, die weiter unten beschrieben sind.
Die Sektion CreditCard ist im Template gesperrt. {OH-S-CreditCard} gilt in jeder Form als ungültiges Tag, damit Kreditkartendaten nicht versehentlich auf einer Seite landen. An die Zahlungsart kommen Sie über die Parameter der Sektion Order.

Werte ausgeben

Innerhalb einer Sektion holt OH-P- einen Parameter. Welche der drei Zeilen aus dem Grundmuster Sie bekommen, entscheidet das Suffix.
Im Beispieldatensatz von oben gibt das Land: Deutschland aus, während ~OH-P-Country_rawdata~ den Wert DEU liefert. Es gibt denselben Wert aus wie OH-P-Country, lässt die HTML-Kodierung aber weg. Das brauchen Sie, wenn im Bestelldatensatz bereits fertiges Markup steht. Alle anderen Formen kodieren, und dabei sollten Sie es auch belassen, weil der Datensatz Eingaben des Käufers enthalten kann. Alle OH-P-Formen arbeiten auch als Klammerung und greifen, wenn der Parameter vorhanden ist und einen Wert hat. Damit blenden Sie ganze Zeilen aus, die für diese Bestellung nicht gefüllt sind, ohne den Inhalt zu kennen.

Auf einen bestimmten Wert prüfen

Der Klammerung können Sie einen Vergleichswert als Argument mitgeben. Sie greift dann nur, wenn der Parameter genau diesen Wert hat.
Die äußere Klammerung prüft, ob der Parameter überhaupt vorhanden ist. Die innere, negative Klammerung blendet die Zeile aus, wenn der Rabatt null beträgt. Vergleichen Sie dabei immer gegen _rawdata, denn dort steht der unformatierte Wert, der sich zuverlässig vergleichen lässt.
Das Argument wirkt nur bei OH-P-… und OH-P-…_rawdata. Bei OH-P-…_text wertet das Shopsystem es nicht aus. {OH-P-Country_text(Land)} greift deshalb immer dann, wenn eine Feldbezeichnung vorhanden ist, unabhängig vom Argument.
Der Vergleich unterscheidet nicht zwischen Groß- und Kleinschreibung. Das gilt auch für die technischen IDs in den Tag-Namen selbst. Beim Einzel-Tag hat ein Argument keine Wirkung. ~OH-P-Country(DEU)~ gibt denselben Wert aus wie ~OH-P-Country~.

Die Position in einer Schleife

OH-S-LoopCounter gibt aus, beim wievielten Durchlauf die Schleife gerade ist. Es ist ausschließlich ein Einzel-Tag.
Das erste Argument ist ein Modulo-Wert und eignet sich für abwechselnde Zeilenfarben. Die Rechnung ist dabei so abgewandelt, dass nie null herauskommt, sondern immer eine Zahl zwischen eins und dem Argument. Materialien: Modulo-Rechnung Das zweite Argument ist die Zahl der Ebenen, die vom aktuellen Punkt aus nach oben gegangen wird. Damit greifen Sie in einer verschachtelten Schleife auf die Position der äußeren zu.
Wollen Sie nur das zweite Argument nutzen, setzen Sie an die erste Stelle eine Null. Der Modulo-Wert null schaltet die Modulo-Rechnung ab. Steht das Tag an einer Stelle, an der gerade keine Schleife läuft, gibt es nichts aus. Ein Fehler ist das nicht, Sie sehen an dieser Stelle einfach eine Lücke.

Sektionen, die nur Text enthalten

Manche Sektionen des Bestelldatensatzes führen keine Parameter, sondern einen zusammenhängenden Text. Der Kommentar des Käufers ist der häufigste Fall. OH-S-RawData holt diesen Text.
OH-S-RawData bezieht sich immer auf die gerade erreichte Sektion und wird deshalb nicht mit einer technischen ID ergänzt. Die Klammerung greift nur, wenn die Sektion tatsächlich eine Textsektion ist und Text enthält. In einer Sektion mit Parametern gilt das Tag als ungültig.

Wo die Tags gelten

Die OH-Tags arbeiten auf dem Template der Bestellhistorie, hinterlegt in der Shopkonfiguration shop.config im Abschnitt <Templates> unter OrderHistory, üblicherweise ws_order_history.htm. Sie arbeiten zusätzlich innerhalb der Schleife über die eigene Bestellliste. Dort beziehen sie sich jeweils auf die Bestellung des aktuellen Durchlaufs, sodass Sie mehrere Bestellungen untereinander ausgeben können, ohne die Seite zu wechseln. Die Tags, die die Bestellliste und den Einstieg in eine einzelne Bestellung liefern, stehen bei WS- (Allgemeine Tags).

Die Tags im Überblick

Verwandte Themen