Zum Hauptinhalt springen
Zu einer Versandart gehört oft ein erklärender Zusatztext, beispielsweise ein zugesagter Lieferzeitraum. Diese Zusage hängt aber nicht nur am Versanddienstleister, sondern auch daran, wie schnell das Geld da ist. Bei einer Zahlungsart mit sofortiger Gutschrift stimmt der Lieferzeitraum, bei einer anderen nicht. Der Zusatztext soll deshalb je nach gewählter Zahlungsart erscheinen oder verschwinden. Mit Zahlungsart und sofortiger Gutschrift: 20181130 Versandart Info Ausblenden 03 Mit einer Zahlungsart, bei der die Zusage nicht gilt: 20181130 Versandart Info Ausblenden 04

Warum die Konfiguration das nicht abdeckt

Der Zusatztext steht im Parameter Suffix-Txt der Versandart. Die Versandart kennt aber keine Abhängigkeit von der Zahlungsart, und die Zahlungsart hat keinen Zugriff auf den Text der Versandart. Welche Kombinationen überhaupt erlaubt sind, steuern Sie über DelivererID-List, das blendet aber die ganze Versandart aus, nicht einen Teil ihrer Beschreibung. Die Lösung läuft deshalb über das Template und besteht immer aus zwei Teilen:
  1. Einen freien Parameter setzen, sobald die aktuelle Zahlungsart zu den betroffenen gehört.
  2. Weiter unten im Template abfragen, ob dieser Parameter gesetzt ist, und den Zusatztext entsprechend ausgeben oder weglassen.
Voraussetzung ist, dass im Shop Zahlungsarten-Versandarten-Kombinationen eingerichtet sind. Wegweiser: Zahlungsarten-Versandarten-Kombinationen · Referenz: DC-FPX

Schritt 1: Den freien Parameter setzen

Je betroffener Zahlungsart eine Zeile. Die Zahl in der Klammer ist der Code der Zahlungsart.
Mehrere Zahlungsarten haben zwei Codes, je nachdem über welchen Weg sie angebunden sind. PayPal ist 12 bei der Direktanbindung und 37 über PayPal Checkout. Wer nur den einen Code abfragt, bei dem greift die Regel in einem Shop mit dem jeweils anderen Anbindungsweg nicht, und zwar ohne jede Fehlermeldung.Schlagen Sie die Codes Ihrer Zahlungsarten deshalb nach, statt sie aus einem Beispiel zu übernehmen.
Das reset am Anfang ist keine Förmlichkeit. Steht der Parameter aus einem früheren Durchlauf noch auf yes, bliebe der Zusatztext dauerhaft verschwunden. Ein DC-FP gilt zwar nur innerhalb eines Templates, aber innerhalb davon kann er mehrfach gelesen und gesetzt werden. Alles Weitere muss im Template nach diesen Zeilen stehen. Ein freier Parameter wird in der Reihenfolge ausgewertet, in der die Tags im Template stehen, nicht nach Bedeutung. Referenz: ST-Payment() · Materialien: Zahlungsarten-Codes

Schritt 2a: Den Zusatztext weglassen

Gibt Ihr Template die Versandarten einzeln mit den DELIV-Data-Tags aus, geben Sie den Zusatztext einfach nicht aus. Der Text landet dann gar nicht erst im HTML.
Soll die Regel nur für eine bestimmte Versandart gelten und nicht für alle, prüfen Sie zusätzlich deren ID:
~DC-FPshowSuffix_set(yes)~ steht innerhalb der Schleife und setzt den Parameter bei jedem Durchlauf neu. Ohne dieses Zurücksetzen bliebe der Wert no ab der ersten betroffenen Versandart für alle folgenden stehen. Referenz: DELIV- (Einzelpositionierung der Versandarten) · DC-CompareStringInList()

Schritt 2b: Den Zusatztext per CSS ausblenden

Gibt Ihr Template die Versandarten mit ~WS-DeliveryFields~ als fertigen Block aus, können Sie einzelne Teile nicht weglassen. Dann bleibt nur, den erzeugten Container per CSS auszublenden.

Wie die ID zustande kommt

WEBSALE V8s baut für jede Versandart eine Reihe von Containern. Deren IDs folgen durchgehend demselben Muster:
Dazu kommt ein äußerer Container um den gesamten Block einer Versandart. Welchen Bereichsnamen er trägt, lesen Sie im Quelltext der Seite ab. Die <ID der Versandart> ist der Parameter ID aus dem Abschnitt <+Deliverer>. Im Beispiel oben lautet sie DHL_DEU. Setzen Sie Ihre eigene ein.
Hat eine Versandart keinen Parameter ID, erzeugt WEBSALE V8s für ihre Container gar kein id-Attribut. Der CSS-Selektor findet dann nichts, und zwar lautlos. Prüfen Sie im Zweifel im Quelltext der Seite, ob die ID tatsächlich so heißt wie erwartet.
Neben der ID vergibt WEBSALE V8s Klassennamen nach demselben Muster ohne den ID-Teil, hier also ws_deliverydiv_suffix. Dazu kommt eine durchnummerierte Klasse ws_deliverydiv_suffix_1, ws_deliverydiv_suffix_2 und so weiter sowie ws_deliverydiv_suffix_active bei der gerade gewählten Versandart. Über die Klasse blenden Sie den Zusatztext bei allen Versandarten aus, über die ID bei einer einzelnen.
display: none entfernt den Text nicht, es versteckt ihn nur. Er steht weiterhin im Quelltext der Seite, Screenreader können ihn je nach Umsetzung vorlesen, und Suchmaschinen sehen ihn ebenfalls. Bei einer Aussage zur Lieferzeit, die für die gewählte Zahlungsart nicht gilt, ist das nicht unkritisch.Wo das Template es zulässt, ist der Weg über die DELIV-Data-Schleife aus Schritt 2a deshalb vorzuziehen.

Verwandte Themen