> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# DC- (Vergleiche und weitere Tags)

> Zahlen und Zeichenketten im Template vergleichen, Links zusammenbauen, Tag-Ergebnisse als Parameter aufbereiten und weitere Einzelaufgaben.

Auf dieser Seite stehen die Design-Control-Tags, die keiner der größeren Gruppen angehören: die Vergleichs-Tags, mit denen ein Template Bedingungen formuliert, und eine Handvoll Tags für einzelne, klar umrissene Aufgaben.

## Zahlen vergleichen

Sechs Bereichs-Tags vergleichen Zahlenwerte. Alle Argumente sind Tag-in-Tag-fähig, verglichen werden also meist zwei Tag-Ergebnisse oder ein Tag-Ergebnis und ein fester Wert.

| Tag | Zeigt den Bereich, wenn |
| - | - |
| `DC-CompareDigitLT(a,b)` | a kleiner als b ist |
| `DC-CompareDigitLTE(a,b)` | a kleiner als b oder gleich b ist |
| `DC-CompareDigitGT(a,b)` | a größer als b ist |
| `DC-CompareDigitGTE(a,b)` | a größer als b oder gleich b ist |
| `DC-CompareDigitIB(a,b,c)` | b größer als a und kleiner als c ist |
| `DC-CompareDigitIBE(a,b,c)` | b größer oder gleich a und kleiner oder gleich c ist |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{DC-CompareDigitLT($PR-Price$,100.00)}
   <p>Versandkostenfrei ab 100,00 €. Es fehlen nur noch wenige Euro.</p>
{/DC-CompareDigitLT($PR-Price$,100.00)}

{DC-CompareDigitIBE(10.00,$PR-Price$,100.00)}
   <p>Dieses Produkt liegt in unserer beliebtesten Preisklasse.</p>
{/DC-CompareDigitIBE(10.00,$PR-Price$,100.00)}
```

> [!WARNING]
>
> Beachten Sie die Stellung des zu prüfenden Werts. Bei `LT`, `LTE`, `GT` und `GTE` steht er an erster Stelle, bei `IB` und `IBE` in der Mitte zwischen Unter- und Obergrenze.
>
> Feste Zahlen schreiben Sie ohne Tausendertrennzeichen und mit einem Punkt als Dezimaltrenner, also `100.00` und nicht `100,00`. Das Komma trennt die Argumente.

Die negative Klammerung ist immer die genaue Umkehrung. `{!DC-CompareDigitLT($PR-Price$,100.00)}` greift also bei einem Preis von genau 100,00 ebenso wie bei einem höheren. Wer "größer als" meint, nimmt `DC-CompareDigitGT()`.

Wegweiser: [Bereiche abhängig von logischen Vergleichen anzeigen](https://dokumentation.websale.de/v8s/referenz/tags/dc/vergleiche.md)

## Zeichenketten vergleichen

`DC-CompareStringInList()` prüft, ob der erste Wert mit dem zweiten übereinstimmt oder in einer Liste vorkommt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{DC-CompareStringInList($A-Country$,Deutschland)}
   <p>Lieferung innerhalb von zwei Werktagen.</p>
{/DC-CompareStringInList($A-Country$,Deutschland)}
```

Mehrere Werte kommen als kommagetrennte Liste in Anführungszeichen.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{DC-CompareStringInList($A-Country$,"Deutschland,Schweiz,Belgien")}
   <p>Für dieses Land gelten unsere Standardversandkosten.</p>
{/DC-CompareStringInList($A-Country$,"Deutschland,Schweiz,Belgien")}
```

> [!WARNING]
>
> Ohne die Anführungszeichen liest der Shop drei Argumente statt zweier, und das Tag bleibt wirkungslos. Sie sind nur bei mehreren Werten nötig, schaden aber auch bei einem einzelnen nicht.

Verglichen wird auf vollständige Übereinstimmung. Soll der Wert nur einen Teil enthalten, nehmen Sie stattdessen `DC-FPX_contains()`.

> [!WARNING]
>
> Wird die Liste lang, überschreitet das Tag schnell die Grenze von 128 Zeichen und wird im Shop als Klartext ausgegeben. Bauen Sie die Liste dann mit `DC-FPX_append()` zusammen und übergeben Sie sie als Tag-in-Tag.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~DC-FPliste_reset~
~DC-FPliste_append(Deutschland,Schweiz,)~
~DC-FPliste_append(Belgien,Niederlande,Luxemburg)~

{DC-CompareStringInList($A-Country$,"$DC-FPliste$")}
   <p>Für dieses Land gelten unsere Standardversandkosten.</p>
{/DC-CompareStringInList($A-Country$,"$DC-FPliste$")}
```

Referenz: [DC- (Freie Parameter und Session-Parameter)](https://dokumentation.websale.de/v8s/referenz/tags/dc/parameter.md)

## Ein Tag-Ergebnis als Parameter verwenden

Tag-in-Tag funktioniert nur mit Einzel-Tags ohne eigenes Argument. Ein Tag wie `DC-FPX_IndexOf()`, das selbst Klammern braucht, lässt sich deshalb nicht als `$…$` in ein anderes Tag schreiben.

Für diesen Fall gibt es ein Paar: `DC-WSTagParameter-prepare` klammert das Tag ein und hält sein Ergebnis fest, `DC-WSTagParameter-use` setzt es anschließend als Parameter ein.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~DC-FPurl_set($WS-RequestURI$)~

{DC-WSTagParameter-prepare}
   ~DC-FPurl_IndexOf(?)~
{/DC-WSTagParameter-prepare}

~DC-FPurl_slice(0,$DC-WSTagParameter-use$)~
~DC-FPurl~   <!-- die Adresse ohne ihre Parameter -->
```

Der Inhalt des `prepare`-Bereichs wird niemals ausgegeben. Er dient allein dazu, das Ergebnis zu erzeugen.

> [!WARNING]
>
> `DC-WSTagParameter-prepare` lässt sich nicht verschachteln. Ein zweites `prepare` innerhalb des ersten funktioniert nicht. Brauchen Sie zwei vorbereitete Werte, sichern Sie den ersten mit `DC-FPX_set()` und bereiten dann den zweiten vor.

Dasselbe Muster dient dazu, eine berechnete Adresse an `ContentControl-SetHeader_Location()` zu übergeben.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{DC-WSTagParameter-prepare}
   ~PR-Link(12345)~
{/DC-WSTagParameter-prepare}

~ContentControl-SetHeader_Location($DC-WSTagParameter-use$)~
```

Referenz: [ContentControl-SetHeader\_Location()](https://dokumentation.websale.de/v8s/referenz/tags/contentcontrol.md#contentcontrol-setheaderlocation)

## Links zusammenbauen

Drei Tags setzen eine Adresse aus einer Basis und beliebig vielen Parametern zusammen.

| Tag | Wirkung |
| - | - |
| `DC-CustomLink_SetLink()` | legt die Basisadresse fest und verwirft eine zuvor gesetzte |
| `DC-CustomLink_AppendParameter()` | hängt ein Paar aus Name und Wert an |
| `DC-CustomLink` | gibt die fertige Adresse aus |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~DC-CustomLink_SetLink($PR-Link$)~
~DC-CustomLink_AppendParameter($TAF-Name$,$TAF-Value$)~

<a href="~DC-CustomLink~">Dieses Produkt weiterempfehlen</a>
```

Das Fragezeichen beziehungsweise das kaufmännische Und setzt der Shop selbst, je nachdem ob die Basisadresse schon Parameter trägt. Sie müssen die Reihenfolge nicht mehr von Hand behandeln, und `WS-EnsureNextLinkContainsURLParams` wird dafür nicht gebraucht.

Der Wert wird automatisch URL-codiert. Übergeben Sie ihn deshalb im Klartext und nicht bereits codiert, sonst wird er ein zweites Mal codiert.

Für jeden weiteren Parameter setzen Sie `_AppendParameter()` noch einmal.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~DC-CustomLink_SetLink($CAT-Link$)~
~DC-CustomLink_AppendParameter(quelle,newsletter)~
~DC-CustomLink_AppendParameter(kampagne,fruehjahr)~
```

> [!WARNING]
>
> Die Dokumentation führt das erste Tag bisher als `DC-CustomerLink_SetLink()`. Richtig ist `DC-CustomLink_SetLink()`, so wie die beiden anderen Tags der Gruppe.

Referenz: [TAF- (Tell-A-Friend)](https://dokumentation.websale.de/v8s/referenz/tags/taf-tell-a-friend.md)

## Weitere Tags

### DC-3ISOCodeToCountry()

Übersetzt einen dreistelligen Länder-ISO-Code in die Länderbezeichnung aus der Länderkonfiguration. Ist der Code unbekannt, gibt das Tag nichts aus.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~DC-DynamicLoop1_set($PR-PrimeShoppingBillCountries$)~

{DC-DynamicLoop1}
   {@DC-DynamicLoop1}
      ~DC-3ISOCodeToCountry($DC-DynamicLoop1_data$)~
   {/@DC-DynamicLoop1}
{/DC-DynamicLoop1}
```

### DC-RedeemVoucher

Löst einen eingegebenen oder übergebenen Gutschein ein, sofern er noch nicht eingelöst wurde. Damit lässt sich ein Gutschein über einen Deeplink einlösen.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~CheckURLParam-TouchData(voucher_number)~

{CheckURLParam-DataOK}
   ~DC-RedeemVoucher~
{/CheckURLParam-DataOK}
```

> [!WARNING]
>
> Das Tag löst eine Aktion aus, sobald es geparst wird. Klammern Sie es deshalb immer so ein, dass es nur dort steht, wo eine Einlösung auch gewollt ist.

Referenz: [CHECK- (URL- und Cookie-Daten)](https://dokumentation.websale.de/v8s/referenz/tags/check.md)

### DC-ResetActiveCatIndex

Setzt die intern gemerkte aktive Kategorie zurück. Damit erscheint im Kategoriemenü kein Eintrag mehr als ausgewählt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~DC-ResetActiveCatIndex~
```

Nützlich auf Seiten, die zu keiner Kategorie gehören, beispielsweise Warenkorb oder Anmeldung. Ohne das Tag bleibt dort die zuletzt besuchte Kategorie hervorgehoben.

### DC-RecalculatePayDeliv

Lässt Zahlungsarten und Versandarten neu prüfen und berechnen.

> [!WARNING]
>
> Das Tag greift in die Berechnung der laufenden Bestellung ein. Setzen Sie es nur nach Rücksprache mit der WEBSALE AG ein.

### DC-ResetAddressErrorFlags

Setzt die Fehlermarkierungen der Rechnungsadresseingabe zurück.

### DC-QuantityInputPrintDepVarIndex

Steuert die Ausgabe des Variantenindex bei Mengeneingabefeldern.

### Tags des Testmodus

Zwei weitere Tags wirken nur, wenn der Shop im Testmodus läuft, und geben sonst nichts aus.

| Tag | Zweck |
| - | - |
| `DC-ParserStatistics` | gibt die Statistik des Template-Parsers aus |
| `DC-PrintShopConfig` | gibt die geladene Shopkonfiguration aus |

> [!WARNING]
>
> Beide Tags geben interne Informationen preis. Sie gehören in ein Testsystem und niemals in ein Template, das im Livebetrieb ausgeliefert wird.

## Die Tags im Überblick

| Tag | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag | Schleifen-Tag |
| - | - | - | - | - |
| `DC-CompareDigitLT()` | – | ja | ja | – |
| `DC-CompareDigitLTE()` | – | ja | ja | – |
| `DC-CompareDigitGT()` | – | ja | ja | – |
| `DC-CompareDigitGTE()` | – | ja | ja | – |
| `DC-CompareDigitIB()` | – | ja | ja | – |
| `DC-CompareDigitIBE()` | – | ja | ja | – |
| `DC-CompareStringInList()` | – | ja | ja | – |
| `DC-WSTagParameter-prepare` | – | ja | – | – |
| `DC-WSTagParameter-use` | ja | – | – | – |
| `DC-CustomLink_SetLink()` | ja | – | – | – |
| `DC-CustomLink_AppendParameter()` | ja | – | – | – |
| `DC-CustomLink` | ja | – | – | – |
| `DC-3ISOCodeToCountry()` | ja | ja | ja | – |
| `DC-RedeemVoucher` | ja | – | – | – |
| `DC-ResetActiveCatIndex` | ja | – | – | – |
| `DC-RecalculatePayDeliv` | ja | – | – | – |
| `DC-ResetAddressErrorFlags` | ja | – | – | – |
| `DC-QuantityInputPrintDepVarIndex` | ja | – | – | – |
| `DC-ParserStatistics` | ja | – | – | – |
| `DC-PrintShopConfig` | ja | – | – | – |

Zulässig sind alle Tags auf allen Templates.

## Verwandte Themen

* Wegweiser: Bereiche abhängig von logischen Vergleichen anzeigen
* Referenz: [TAF- (Tell-A-Friend)](https://dokumentation.websale.de/v8s/referenz/tags/taf-tell-a-friend.md)
* Referenz: [DC- (Freie Parameter und Session-Parameter)](https://dokumentation.websale.de/v8s/referenz/tags/dc/parameter.md)
* Referenz: [ContentControl- (Weiterleitungskonzept für Inhalte aus Drittsystemen)](https://dokumentation.websale.de/v8s/referenz/tags/contentcontrol.md)
* Referenz: [CHECK- (URL- und Cookie-Daten)](https://dokumentation.websale.de/v8s/referenz/tags/check.md)


## Related topics

- [DC- (Datum und Zeit)](https://dokumentation.websale.de/v8s/referenz/tags/dc/datum-und-zeit.md)
- [DC- (Freie Parameter und Session-Parameter)](https://dokumentation.websale.de/v8s/referenz/tags/dc/parameter.md)
- [WS-DataFlowManager: Tag-Referenz](https://dokumentation.websale.de/v8s/schnittstellen/marketing-seo-und-portale/ws-dataflowmanager/tag-referenz.md)
- [Zähler und Vergleiche im Template](https://dokumentation.websale.de/v8s/fortgeschrittene-designtechniken/zaehler-und-vergleiche-im-template.md)
- [Rechnen und Vergleichen im Template](https://dokumentation.websale.de/v8s/anwendungsbeispiele/appex-rechnen-und-vergleichen.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.