Zum Hauptinhalt springen
WEBSALE kann die Liste der Versandarten fertig ausgeben. Wer sie stattdessen selbst aufbauen will, weil Logo, Preis, Zusatzfelder und Auswahlknopf anders angeordnet werden sollen, nimmt die Tags mit dem Präfix DELIV-. Alle diese Tags heißen DELIV-Data mit einem Zusatz und arbeiten innerhalb einer Schleife: Der Shop läuft einmal durch alle konfigurierten Versandarten, und in jedem Durchlauf beziehen sich die Tags auf genau eine davon. Gepflegt werden die Versandarten in der Shopkonfiguration shop.config, jede in einem eigenen Abschnitt <+Deliverer>. Was Sie dort eintragen, geben diese Tags im Template aus. Wegweiser: Versandarten anlegen, Abschnitt Einzelpositionierung der Versandarten

Das Grundgerüst

Alle übrigen DELIV-Data-Tags gehören in die Schleife. Außerhalb davon steht keine Versandart fest, auf die sie sich beziehen könnten.
Die Tags lassen sich auf allen Templates verwenden, ihr angestammter Platz ist die Zahlungs- und Versandartenseite ws_pay_deliv.htm. Eine Ausnahme gilt bei MultiDelivery und Split-Order: dort sind sie nur innerhalb der Schleife {@BASKET-PR-Data} zulässig.

Das vollständige Beispiel

Die Angaben zur Versandart

DELIV-Data_NameSuffix erspart in den meisten Fällen die Einzelteile. Es gibt den Namen bereits mit den beiden Zusätzen aus, die zum Land und zur Versandkostenfreiheit konfiguriert sind. DELIV-Data_type ist ein freies Feld. Damit lassen sich Versandarten im Template gruppieren, beispielsweise alle Expressvarianten zusammen darstellen, ohne ihre IDs im Template zu nennen.

Ein eigenes onClick am Symbol

DELIV-Data_Image_html_js_onclick gibt aus, was im <+Deliverer>-Abschnitt als Klickaktion für das Symbol hinterlegt ist.
In der konfigurierten Aktion dürfen die beiden Platzhalter ~ID~ und ~Link~ stehen. Der Shop ersetzt sie beim Ausgeben durch die Kennung der Versandart und die hinterlegte Adresse. So genügt ein Eintrag in der Konfiguration für alle Versandarten.

Die Kosten

Die Klammerung greift nur, wenn der Betrag größer als null ist. Bei einer versandkostenfreien Versandart greift deshalb der negative Bereich, und genau das ist die saubere Stelle für den Hinweis “versandkostenfrei”. Dasselbe gilt für alle anderen Kosten- und Rabatt-Tags dieser Seite.
Alle Kostenangaben werden mit der Preisformatierung ausgegeben, die in der Shopkonfiguration eingestellt ist. Sie enthalten kein Währungszeichen, das setzen Sie selbst, beispielsweise mit WS-CurrencySymbol.

Kundenindividuelle Rabatte

Ist für den angemeldeten Käufer ein Rabatt auf die Versandkosten hinterlegt, geben ihn vier Tags aus.
Der Rabattsatz wird als reine Zahl mit zwei Nachkommastellen ausgegeben, ohne Preisformatierung und ohne Prozentzeichen. Die Beträge dagegen folgen der Preisformatierung des Shops.

Verfügbarkeit und Auswahl

Eine Versandart kann für diese Bestellung gesperrt sein, beispielsweise weil das Lieferland nicht passt oder das Gewicht überschritten ist. Sie verschwindet dann nicht aus der Liste, sondern wird als nicht verfügbar markiert.
DELIV-Data_disabledmessage ist der Text für den Käufer, DELIV-Data_disabledcode die technische Kennung desselben Grundes. Den Code brauchen Sie, wenn Sie je nach Grund etwas anderes anzeigen wollen, beispielsweise bei einer Gewichtsüberschreitung einen Link zur Teillieferung. DELIV-Data_IsDefault greift, wenn der angemeldete Käufer in seinem Kundenkonto eine Standardversandart hinterlegt hat und diese es ist. Referenz: Liste der Ablehnungsgründe

Der Auswahlknopf

Acht Tags liefern alles, was der Radiobutton braucht. Sie müssen keinen Namen und keine Kennung selbst erfinden.
Daraus wird im Shop, wenn XX die Kennung der Versandart ist:
Der Feldname aus DELIV-Data_Selection_radioname muss übernommen werden. Ein selbst gewählter Name kommt im Shop nicht an, die Auswahl bleibt dann wirkungslos.
In der konfigurierten Klickaktion dürfen die Platzhalter ~ID~ und ~RadioButtonID~ stehen. Der Shop ersetzt sie durch die Kennung der Versandart und die ID des Radiobuttons.

CSS-Klassen und IDs

Fünf Tags erzeugen IDs und Klassen für die einzelnen Bausteine einer Versandart. Sie alle erwarten in den Klammern den Namen des Bausteins. Gültige Bausteinnamen sind main, logo, radio, text, name, suffix, clear, disabled, additionalinput, additionalinput_checkbox, additionalinput_name, additionalinput_input, additionalinput_list, additionalinput_infotext und additionalinput_error.
DELIV-Data_html_class_counter() nummeriert die Versandarten durch. Damit lässt sich jede zweite Zeile anders einfärben, ohne im Template zu rechnen.
Ohne Bausteinnamen in den Klammern ist das Tag ungültig und bleibt wirkungslos.
Für den Container der Zusatzfelder gibt es zusätzlich DELIV-Data_html_class_additionalinput_global(). Es nimmt nur die Bausteinnamen, die mit additionalinput beginnen.

Zusätzliche Eingabefelder

Manche Versandarten brauchen eine Angabe vom Käufer: ein Wunschdatum, eine Ablagestelle, das Einverständnis mit einer Zustellung ohne Unterschrift. Solche Felder werden in der Shopkonfiguration im Abschnitt <DelivererAdditionalInput-Definitions> definiert und den Versandarten zugeordnet. DELIV-Data_AdditionalInput ist die Schleife darüber.

Die drei Feldarten unterscheiden

Ein Zusatzfeld ist entweder eine Auswahlliste, ein Texteingabefeld oder eine Checkbox. Für jede Art gibt es ein Bereichs-Tag. DELIV-Data_AdditionalInput_Type_code gibt dieselbe Information als Zahl aus. Für die Fallunterscheidung im Template sind die drei Bereichs-Tags der bessere Weg, weil sie lesbar bleiben.
Der Code 2 steht für einen Radiobutton. Dafür gibt es weder ein eigenes Bereichs-Tag noch eine Auswertung in DELIV-Data_AdditionalInput_value. Verwenden Sie für Zusatzfelder deshalb nur die drei oben genannten Arten.

Das vollständige Beispiel

Bei einer Checkbox gibt DELIV-Data_AdditionalInput_value das Wort checked aus, wenn der Käufer sie gesetzt hatte. Es gehört deshalb ohne Attributnamen in das Element. Bei einem Texteingabefeld ist es der eingegebene Text und gehört in value. Bei einer Auswahlliste ist es die technische Kennung des gewählten Eintrags, den lesbaren Text liefert DELIV-Data_AdditionalInput_value_txt.
Übernehmen Sie den Feldnamen aus DELIV-Data_AdditionalInput_input unverändert. Er enthält neben der Feldkennung auch die Position der Versandart, und bei der Auswahl je Warenkorbposition zusätzlich eine Kennung der Position. Ein selbst gewählter Name kommt im Shop nicht an.

Die Einträge einer Auswahlliste

DELIV-Data_AdditionalInput_listbox ist die Schleife über die Einträge aus den <+listentry>-Abschnitten. Bei einem Feld, das keine Auswahlliste ist, läuft die Schleife einfach nicht. Eine zusätzliche Abfrage auf Type_isListbox ist deshalb nicht zwingend, macht das Template aber lesbarer.

Freie Zusatzinformationen

Für Angaben, die keines der festen Felder abdeckt, gibt es DELIV-Data_AdditionalInfo-<id>. Die Werte tragen Sie im jeweiligen <+Deliverer>-Abschnitt mit dem Parameter +AdditionalInfo-<id> ein.
Die Kennung darf nur aus Buchstaben, Ziffern, Bindestrichen und Unterstrichen bestehen. Leerzeichen und Umlaute sind nicht möglich.
Groß- und Kleinschreibung der Kennung spielt keine Rolle. Bleiben Sie trotzdem bei einer Schreibweise, damit Konfiguration und Template zusammenpassend lesbar bleiben. Daneben gibt es DELIV-Data_DestDepInfo. Es gibt eine vom Zielort abhängige Zusatzangabe zur Versandart aus, die der Shop selbst ermittelt.
Woher die Angabe im Einzelnen stammt, ist noch zu klären. Prüfen Sie das Ergebnis in Ihrem Shop, bevor Sie sich darauf verlassen.

Versandart je Warenkorbposition

Bietet der Shop die Versandart je Warenkorbposition oder je Lieferadresse zur Auswahl an, steht die Schleife innerhalb von {@BASKET-PR-Data}. Der Shop hängt dann an die Feldnamen und IDs eine zusätzliche Kennung an, damit sich die Auswahlgruppen nicht in die Quere kommen. Solange Sie Namen und IDs aus den DELIV-Data_Selection-Tags übernehmen, brauchen Sie das Tag nicht: Die Kennung steckt dort bereits darin. Gebraucht wird es, wenn Sie im JavaScript auf eine bestimmte Auswahlgruppe zugreifen wollen. Wegweiser: Versandart pro Warenkorbposition und Lieferadresse einzeln auswählbar

Die Tags im Überblick

Zulässig sind alle Tags auf allen Templates, jeweils innerhalb der DELIV-Data-Schleife. Bei MultiDelivery und Split-Order zusätzlich nur innerhalb von {@BASKET-PR-Data}.

Verwandte Themen