URL Generation and Conflict Resolution
Salesforce B2C Commerce maintains a directory of pipeline, category, folder, and search refinement URLs in B2C Commerce database. Product and content URLs are not contained in this directory, because they are built dynamically. The URL directory contains a URL endpoint for any pipeline alias, category in the storefront catalog, and folder in the site library for each site locale.
- If B2C Commerce finds duplicate category URLs during the URL generation process, it
appends an index number to the URL. For example, if the category URL rule is
configured to use the category display name, and two categories have the same display
name shoes, the first category has the URL shoes-1, and the second category will have
the URL shoes-2. If a category URL conflicts with a pipeline URL, a global conflict
shows.Note: When you schedule a category, B2C Commerce checks for duplicates at the time it was scheduled. If a scheduled category shares a name with an online category, a conflict shows, even if the two categories arenβt schedule to run concurrently.
- A pipeline alias can only be stored if it doesn't conflict with any other pipeline URL or any category or folder URL currently stored in the URL directory. For example, if there is a /shipping URL for a folder called shipping, then you can't create a pipeline alias with the URL /shipping.
- Search-Show pipeline: URLs created for the Search-Show pipeline
without a category ID and search refinements are supported for search
refinement URLs, for example
search/abrand/blue
. This functionality is also available for theSearch-ShowContent
pipeline, for examplesearchcontent/history
.
The following example shows Pipeline URLs.
URL Endpoint | Locale | Type | Object ID |
---|---|---|---|
account | default | Pipeline | Account-Show |
search | default | Pipeline | Search-Show |
The following example shows category URLs.
URL Endpoint | Locale | Type | Object ID |
---|---|---|---|
mens | en_US | Category | cat123 |
herren | de_DE | Category | cat123 |
mens-clothing-shorts | en_US | Category | cat456 |
herren-kleidung-kurzehosen | de_DE | Category | cat456 |
The following example shows folder URLs.
URL Endpoint | Locale | Type | Object ID |
---|---|---|---|
about | en_US | Folder | folder_about |
about | de_DE | Folder | folder_about |
Pipeline, category, and folder URLs are generated using a system job on B2C Commerce. The job regenerates the URLs when any of the following changes are made:
- Removing a category/folder
- Adding a category/folder
- Changing site assignment
- Changing the category/folder name or ID
- Changing the category/folder Page URL, Page Description, or Page Keywords
- Changing the category hierarchy (that is, any name shown for the category-path or category-parent variable)
- Changing any attribute value
- Changing locale
- Changing any URL setting, controlling URL mappings
Any of these changes cause a complete regeneration of all pipeline, category, and folder URLs. The URL generation job runs on Staging and Sandboxes only. The job doesn't run on Production. Instead, URLs are replicated to Production along with catalogs and libraries. The job takes about 3 minutes for 50,000 categories/folders.
Product URLs are not generated using this job. Only the product/content ID appended to each URL is used to identify the product, and only if the URL has the ending '.html'.
Search Refinement URLs
When you add search refinement information to the URL path, conflicts can occur with refinement values after URL cleansing (for example, character replacement). B2C Commerce resolves these conflicts by making them unique (similar to Category and Folder mappings: adding an index delimited with the configured delimiter).
The conflicts area for search refinement URLs shows global conflicts within the current search refinement URL values for the following cases:
- Multiple occurring values in different search refinements, for
example
red
as both color and brand. - Search refinement values containing the delimiters dash "-" and underscore "_".