Skip to main content
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.
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.
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.
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.

Showing areas depending on the value

Without an argument, the bracketing applies as soon as the parameter has any value at all.
With an argument, it only applies for exactly this value.
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.
OneTime parameters do not need this. They only apply to the one call with which they were passed anyway.
  • Guide: Counters and comparisons in the template
  • Guide: Generating a canonical instruction in the head
  • Materials: URL parameters