{** * 2019 ModuleFactory.co * * @author ModuleFactory.co * @copyright 2019 ModuleFactory.co * @license ModuleFactory.co Commercial License *}
{l s='Help' mod='fsadvancedurl'}
Thank you for using our module. For the best user experience we provide some examples and information. If you need more help, please feel free to contact us.

Getting Started

After installation you may delete all your shop's cache in Advanced Parameters -> Performance -> Clear Cache

When you have installed the module, all the URL types are enabled for advanced url.

Product URL Settings

Parent categories or default category is enabled

If you enabled one of this feature, you are required to place the "{literal}{categories:/}{/literal}" or the "{literal}{category:/}{/literal}" keywords in the product URL schema. In this case you can use a same rewrite, if the products assigned for different categories.

Example:
You have two products with same URL rewrite and the products have different default categories, the categories are 1. level categories so have no parents.

Product 1: Rewrite: "messenger-bag" - Default category: "Bicycle"
Product 2: Rewrite: "messenger-bag" - Default category: "Skateboard"

Product URL Schema: {literal}{categories:/}{rewrite}.html{/literal}

Product 1 URL: https://www.yourdomain.com/bicycle/messenger-bag.html
Product 2 URL: https://www.yourdomain.com/skateboard/messenger-bag.html

This module can identify the appropriate product based on the default category in the URL, so displays the proper Messenger Bag

Product not found redirect type

Here you can select how to behave your store when loads a product url which is not exist.

No redirect: Displays a 404 page while not changing the url

Try to redirect to category Redirects to the not found product's category url based on the parent categories or default category in the URL
Broken product url: https://www.yourdomain.com/bicycle/missing-product.html
Redirects to: https://www.yourdomain.com/bicycle/

Redirect to page not found page Redirects to: https://www.yourdomain.com/page-not-found

Category URL Settings

Parent categories are enabled

If you enabled this feature, you are required to place the "{literal}{categories:/}{/literal}" keyword in the category URL schema. In this case you can use a same rewrite, if the categories have different parent categories.

Example:
You have two categories with same URL rewrite but the categories have different parent category

Category 1: Rewrite: "shoes" - Parent category: "Running"
Category 2: Rewrite: "shoes" - Parent category: "Football"

Category URL Schema: {literal}{categories:/}{rewrite}/{/literal}

Category 1 URL: https://www.yourdomain.com/running/shoes/
Category 2 URL: https://www.yourdomain.com/football/shoes/

This module can identify the appropriate category based on the parent category in the URL, so listing the proper Shoes (Running or Football).

Category not found redirect type

Here you can select how to behave your store when loads a category url which is not exist.

No redirect: Displays a 404 page while not changing the url

Display best matched category: Finds the lowest sub level category based on the parent categories in the URL and try to redirect to the canonical URL
This option is required when you use the following category - layered rule combinations
Combination 1. - Category rule: {literal}{categories:/}{rewrite}/{/literal}
Combination 1. - Layered rule: {literal}{categories:/}{rewrite}{/:selected_filters}/{/literal}
Combination 2. - Category rule: {literal}{categories:/}{rewrite}{/literal}
Combination 2. - Layered rule: {literal}{categories:/}{rewrite}{/:selected_filters}{/literal}

Try to redirect to parent category Redirects to the not found category's parent category url based on the parent categories in the URL
Broken category url: https://www.yourdomain.com/bicycle/some-missing-category/
Redirects to: https://www.yourdomain.com/bicycle/

Redirect to page not found page Redirects to: https://www.yourdomain.com/page-not-found

CMS & CMS Category URL Settings

Parent categories are enabled in CMS Page URLs

If you enabled this feature, you are required to place the "{literal}{categories:/}{/literal}" keyword in the CMS Page URL schema. In this case you can use a same rewrite, if the CMS Pages are assigned to different category.

Example:
You have two CMS Pages with same URL rewrite and the CMS Pages are assigned to different category.

CMS Page 1: Rewrite: "messenger-bag" - Default category: "Bicycle"
CMS Page 2: Rewrite: "messenger-bag" - Default category: "Skateboard"

CMS Page URL Schema: {literal}content/{categories:/}{rewrite}.html{/literal}

CMS Page 1 URL: https://www.yourdomain.com/content/bicycle/messenger-bag.html
CMS Page 2 URL: https://www.yourdomain.com/content/skateboard/messenger-bag.html

This module can identify the appropriate CMS Page based on the parent categories in the URL, so displays the proper Messenger Bag

Parent categories are enabled in CMS Page Category URLs

If you enabled this feature, you are required to place the "{literal}{categories:/}{/literal}" keyword in the CMS Page Category URL schema. In this case you can use a same rewrite, if the CMS Page Categories have different parent CMS Page Categories

Example:
You have two CMS Page Categories with same URL rewrite but the CMS Page Categories have different parent CMS Page Categories

CMS Page Category 1: Rewrite: "shoes" - Parent category: "Running"
CMS Page Category 2: Rewrite: "shoes" - Parent category: "Football"

CMS Page Category URL Schema: {literal}content/{categories:/}{rewrite}/{/literal}

CMS Page Category 1 URL: https://www.yourdomain.com/content/running/shoes/
CMS Page Category 2 URL: https://www.yourdomain.com/content/football/shoes/

This module can identify the appropriate CMS Page Category based on the parent CMS Page Category in the URL, so listing the proper Shoes (Running or Football) category pages.

Schema of URLs

Remove default language sign from URLs

If you enable this feature the linguistic sign removed from the default language URLs.

Example:
You have a store with English and German languages, default language is English.

English URL: https://www.yourdomain.com/category/product.html
German URL: https://www.yourdomain.com/de/category/product.html

Multi Language Routes

If you enable this feature, you can setup different routes per language and you can edit routes right inside the module. The system routes are ignored!

Example:
You have a store with English and German languages, and the current manufacturer route schema is "{literal}manufacturer/{rewrite}.html{/literal}"

Now you can translate the manufacturer word and set the German route schema for "{literal}hersteller/{rewrite}.html{/literal}"

English URL: https://www.yourdomain.com/manufacturer/manufacturer-rewrite.html
German URL: https://www.yourdomain.com/de/hersteller/hersteller-rewrite.html

Schema of URLs

If you enabled "Multi Language Routes" feature, you can edit routes right inside the module. The system routes are ignored!

If an URL end with "/", the URL also works without it and redirects to the canonical URL. It works same when an URL not end with "/", also works with "/" at the end.


Example 1 (Only Rewrite):
Route Schema URL
Route to products {literal}{rewrite}{/literal} https://www.yourdomain.com/product-rewrite
Route to category {literal}{rewrite}{/literal} https://www.yourdomain.com/category-rewrite
Route to layered navigation {literal}{rewrite}{/:selected_filters}{/literal} https://www.yourdomain.com/category-rewrite/filter-param-1/filter-param-2
Route to supplier {literal}{rewrite}{/literal} https://www.yourdomain.com/supplier-rewrite
Route to manufacturer (brand) {literal}{rewrite}{/literal} https://www.yourdomain.com/manufacturer-rewrite
Route to page (CMS) {literal}{rewrite}{/literal} https://www.yourdomain.com/cms-rewrite
Route to page category (CMS Category) {literal}{rewrite}{/literal} https://www.yourdomain.com/cms-category-rewrite


Example 2 (Categories + Rewrite):
Route Schema URL
Route to products {literal}{categories:/}{rewrite}{/literal} https://www.yourdomain.com/parent-cat/child-cat/product-rewrite
Route to category {literal}{categories:/}{rewrite}{/literal} https://www.yourdomain.com/parent-cat/child-cat/category-rewrite
Route to layered navigation* {literal}{categories:/}{rewrite}/{/:selected_filters}{/literal} https://www.yourdomain.com/parent-cat/child-cat/category-rewrite//filter-param-1/filter-param-2
Route to supplier {literal}{rewrite}{/literal} https://www.yourdomain.com/supplier-rewrite
Route to manufacturer (brand) {literal}{rewrite}{/literal} https://www.yourdomain.com/manufacturer-rewrite
Route to page (CMS) {literal}{categories:/}{rewrite}{/literal} https://www.yourdomain.com/parent-cat/child-cat/cms-rewrite
Route to page category (CMS Category) {literal}{categories:/}{rewrite}{/literal} https://www.yourdomain.com/parent-cat/child-cat/cms-category-rewrite

* You can notice that the layered navigation url contains a double slash "//" in the URL. If you want to use the layered URL without it, you need to set "Category not found redirect type" for "Display best matched category" and set the layered schema for "{literal}{categories:/}{rewrite}{/:selected_filters}{/literal}"


Example 3 (Default):
Route Schema URL
Route to products {literal}{categories:/}{rewrite}.html{/literal} https://www.yourdomain.com/parent-cat/child-cat/product-rewrite.html
Route to category {literal}{categories:/}{rewrite}/{/literal} https://www.yourdomain.com/parent-cat/child-cat/category-rewrite/
Route to layered navigation* {literal}{categories:/}{rewrite}/{/:selected_filters}/{/literal} https://www.yourdomain.com/parent-cat/child-cat/category-rewrite//filter-param-1/filter-param-2/
Route to supplier {literal}supplier/{rewrite}.html{/literal} https://www.yourdomain.com/supplier/supplier-rewrite.html
Route to manufacturer (brand) {literal}manufacturer/{rewrite}.html{/literal} https://www.yourdomain.com/manufacturer/manufacturer-rewrite.html
Route to page (CMS) {literal}content/{categories:/}{rewrite}.html{/literal} https://www.yourdomain.com/content/parent-cat/child-cat/cms-rewrite.html
Route to page category (CMS Category) {literal}content/{categories:/}{rewrite}/{/literal} https://www.yourdomain.com/content/parent-cat/child-cat/cms-category-rewrite/

* You can notice that the layered navigation url contains a double slash "//" in the URL. If you want to use the layered URL without it, you need to set "Category not found redirect type" for "Display best matched category" and set the layered schema for "{literal}{categories:/}{rewrite}{/:selected_filters}/{/literal}"

{*

Product URL Settings

In the Advanced URLs To Products tab you can Enabled/Disable advanced URL feature, Enable/Disable parent categories in the URL and also select redirect type if no product found.

To change the schema of the URL navigate to Preferences -> SEO & URLs -> Schema Of URLs panel and set the Route to products.


Category URL Settings

In the Advanced URLs To Categories tab you can Enabled/Disable advanced URL feature, Enable/Disable parent categories in the URL and also select redirect type if no category found.

To change the schema of the URL navigate to Preferences -> SEO & URLs -> Schema Of URLs panel and set the Route to category.


Manufacturer URL Settings

In the Advanced URLs To Manufacturers tab you can Enabled/Disable advanced URL feature.

To change the schema of the URL navigate to Preferences -> SEO & URLs -> Schema Of URLs panel and set the Route to manufacturer.


Supplier URL Settings

In the Advanced URLs To Suppliers tab you can Enabled/Disable advanced URL feature.

To change the schema of the URL navigate to Preferences -> SEO & URLs -> Schema Of URLs panel and set the Route to supplier.


CMS & CMS Category URL Settings

In the Advanced URLs To Suppliers tab you can Enabled/Disable advanced URL feature.

To change the schema of the URL navigate to Preferences -> SEO & URLs -> Schema Of URLs panel and set the Route to CMS page and Route to CMS category.


*}

Duplicated URLs

Detect duplicated URLs when saving a Product, Category, Manufacturer, Supplier, CMS, CMS Category. Also offers a unified list with all of duplicated URLs if no records found in that list, your shop is ok.

Recommendation

When you assign a category to a product, we recommend to assign to the default category the lowest level of the product categories. This will generate the best product URLs when you use parent categories in product URLs. (Recommended to use!)