> ## 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.

# Using free parameter tags

> Append your own values to the shop call, output them in the template and show areas depending on them, with three variants for validity period and search engines.

Free parameter tags carry your own values through the shop. You append the value to a shop call, and in the template it can be output or used as a condition for an area.

A typical case is switching between list and tile view on the category page. Two links each set a value, the template queries both and shows the appropriate display.

> [!NOTE]
>
> These tags have the prefix `WS-` and belong in URLs, links and forms. They are distinct from the DesignControl tags `DC-FP1` to `DC-FP3`, which only live within a template and are not carried over via the page call.

Reference: DC-FPX

## Comparing the three types

There are three families with three tags each. They differ in how long a value remains valid and whether it is included in the canonical link for search engines.

| Type | Tags | Validity | In the canonical link |
| - | - | - | - |
| OneTime parameter | `WS-OTP1` to `WS-OTP3` | only on the next page called with the tag | no |
| Design parameter | `WS-DP1` to `WS-DP3` | on all subsequent pages, until overwritten or reset | no |
| Free parameter | `WS-FP1` to `WS-FP3` | on all subsequent pages, until overwritten or reset | yes |

> [!NOTE]
>
> The only difference between design and free parameters is the canonical link. Use a free parameter if the variant deserves its own address in search engines, and a design parameter if it should not. Switching between list and tile view is a case for the design parameter, because both views show the same content.

Guide: Generating a canonical instruction in the head

Reference: WS-OTP1…3() · WS-DP1…3() · WS-FP1…3()

## Passing a value

Append the parameter to any shop call. Only the technical name in lowercase letters appears in the URL, not the tag notation with tildes.

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
https://www.ihr-shop.de/?fp1=abc
```

> [!WARNING]
>
> The technical name is `fp1`, `dp2`, `otp3` and so on. A call with `?WS-FP1=abc` or `?~WS-FP1~=abc` has no effect.

## Outputting a value

The passed value appears where the tag is placed in the template.

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

## Showing areas depending on the value

Without an argument, the bracketing applies as soon as the parameter has any value at all.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{WS-FP1}
   Dieser Bereich erscheint, sobald fp1 irgendeinen Wert trägt.
{/WS-FP1}
```

With an argument, it only applies for exactly this value.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{WS-FP1(abc)}
   Dieser Bereich erscheint nur, wenn fp1 den Wert abc hat.
{/WS-FP1(abc)}

{WS-FP3(12345)}
   Dieser Bereich erscheint nur, wenn fp3 den Wert 12345 hat.
{/WS-FP3(12345)}
```

> [!NOTE]
>
> This is how switching between two views works: you query two values of the same parameter and place one display in each bracketing. Remember to also cover the case where no value has been set yet, otherwise a visitor will not see any list at all on the first call.

## Resetting a value

Design and free parameters persist across subsequent pages. To reset them, append the technical name without a value or with the value `$unused` to the call.

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
https://www.ihr-shop.de/?fp1=
https://www.ihr-shop.de/?fp1=$unused
```

> [!NOTE]
>
> OneTime parameters do not need this. They only apply to the one call with which they were passed anyway.

## Related topics

* Guide: Counters and comparisons in the template
* Guide: Generating a canonical instruction in the head
* Materials: URL parameters


## Related topics

- [Counters and comparisons in the template](https://dokumentation.websale.de/en/v8s/fortgeschrittene-designtechniken/zaehler-und-vergleiche-im-template.md)
- [DC- (comparisons and other tags)](https://dokumentation.websale.de/en/v8s/referenz/tags/dc/vergleiche.md)
- [DC- (free parameters and session parameters)](https://dokumentation.websale.de/en/v8s/referenz/tags/dc/parameter.md)
- [Default texts](https://dokumentation.websale.de/en/v8s/einstellungen/standardtexte.md)
- [FMSG- (Free default texts)](https://dokumentation.websale.de/en/v8s/referenz/tags/fmsg-freie-vorgabetexte.md)


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