shopify's documentation shows of characters allowed in product handles (the product identifier used in urls).
since handles used storefront navigation products, collections, blogs , pages, must use alpha-numeric characters (a-z, 0 9) without accents (such umlauts, , other diacriticals), nor characters such @ or # etc., , no spaces. spaces converted hyphens, other characters may stripped entirely or converted equivalent standard ascii character.
but if create product in web interface title 'a b-c_d.e' handle generated shopify 'a-b-c_d-e'. seems underscores allowed, spaces , dots converted hyphens.
what full set of characters allowed in product handles?
i wrote script test if shopify api accepts each of ascii codes 0 127 in product handle. tries modify handle of existing product xcxc c ascii character test , x literally letter x. did way find out how each character handled when surrounded text , when trailing @ end of handle.
here results:
allowed:
- 0-9
- a-z
- a-z (will converted lowercase)
- _ (underscore)
allowed when surrounded removed when @ end of string:
- - (hyphen)
converted - (hyphen) when surrounded removed when @ end of string
- space
- ! # $ % & * + , . / : ; < = > ? @ \ ^ ` { | } ~
- ascii control codes 0 32
removed
- " ' ( ) [ ]
see wikipedia details on each ascii code: https://en.wikipedia.org/wiki/ascii