URL segment and SEO URI
This topic describes how to build a hierarchical URL in Optimizely Customized Commerce.
The SEO URL (also known as SEO URI) must be globally unique across all products, categories and languages.
Name in URL
The Name in URL field (also known as URL/URI Segment and Route Segment) is used when building hierarchical URLs, for example, example.com/en/catalog/category/subcategory/product. Name in URL can be duplicated for different language branches (because the language branch is part of the path or host). In addition, Name in URL has the following constraints:
- For products and variants, the Name in URL must be globally unique (within a language).
- For categories, the Name in URL must be unique within the same parent category.
Configuring less strict validation of Name in URL
To loosen Name in URL constraints for products and variants (so that it behaves like the one for categories), set the episerver:commerce.UseLessStrictEntryUriSegmentValidation AppSetting to true. See also the blog post Increased Flexibility in Commerce Catalog URLs.
Uniqueness is validated when a product or variant is published. As a result, if you move or link products or variants between categories, a product or variant can later conflict with others under the same parent category. A conflict means that two products or variants share the same hierarchical URL so, when accessing that URL, the behavior is undefined.
Detecting conflicts in hierarchical URLs
The Find Catalog Uri Conflicts scheduled job analyzes the database and finds products, variants, and categories that are in conflict for the same Name in URL under the same parent category. If conflicts are found, they are logged as warnings, output to the scheduled job log, and sent to email addresses specified in the episerver:commerce.UriSegmentConflictsEmailRecipients AppSetting. In this setting, separate multiple email addresses with a semicolon (;).
Allowed characters in URL
You can use Unicode characters when creating a URL segment or an SEO URI for a catalog content.
The front-end also supports a Unicode URL.
Configuring Unicode support
By default, Optimizely only allows characters listed in RFC 1738, that is:
- these special characters
- dash (-)
- underscore (_)
- tilde (~)
- period (.)
- dollar sign ($)
To configure Unicode support, see Internationalized Resource Identifiers.
Updated 2 months ago