Issue/Error with filtering collections by tags including german umlaut

Solved
Highlighted
Tourist
8 2 3

Hi all,

i noticed an issue with filtering collections by tags.

 

Following scenario:

Tag = 'Land-Österreich'

 

{% assign tag_filter = tag | handleize %}

 

This will output the tag as land-oesterreich.

 

Using this string to filter collections (eg /collections/all/land-oesterreich) will result in a empty collection.

In the past, about two years ago, I found a workaround to this.

 

{% assign tag_filter = tag | handleize | replace: 'oe', 'O' %}

 

When filtering collections with the capital 'O' instead of 'oe' (eg /collections/all/land-Osterreich), the filter would actually work and show the tagged products within the collection. Unfortunately i only recently noticed that this doesn't work anymore. Therefore i can't link this change of behavior to a date or update.

 

I have tried the following alternatives without success.

 

/collections/all/land-Osterreich
/collections/all/land-OEsterreich
/collections/all/land-oesterreich
/collections/all/land-österreich
/collections/all/land-Österreich

 

It seems to me, that there is no way to filter collections by tags containing umlauts (ü, ö, ä) at the moment. I haven't tried any other 'unusual' characters.

 

Has anyone experienced the same issue or can anyone replicate this? Could this be a bug or is there a best practice to work around umlauts?

 

I have created an issue in the Shopify Liquid Github Repo but there seems to be no active community there.

0 Likes
Highlighted
Tourist
8 2 3

This is an accepted solution.

I talked to the Shopify Support team.

 

This is a known issue and the team has a beta feature that can be enabled sort of retroactively. To enable this feature it's best to reach out to the shopify support team. Feel free to reference this post.

 

All umlaut tag filters now work for our store in the following pattern:

 

/collections/all/land-Osterreich
/collections/all/land-osterreich

 

 

This means, that when using the 'handleize' filter you would still need to replace the 'oe' with either 'O' or 'o' as follows:

{% assign tag_filter = tag | handleize | replace: 'oe', 'O' %}
or
{% assign tag_filter = tag | handleize | replace: 'oe', 'o' %}
1 Like