“Regenerate Url Rewrites” extension
Magento 2 "Regenerate Url Rewrites" extension add a CLI feature which allow regenerating a Url rewrites of products/categories in all stores or specific store.
Extension homepage: https://github.com/olegkoval/magento2-regenerate_url_rewrites, (*1)
- Email: olegkoval.ca@gmail.com
- LinkedIn: https://www.linkedin.com/in/oleg-koval-85bb2314/
DONATIONS / SUPPORT ME ON
INSTALLATION
COMPOSER INSTALLATION
- run composer command:
>
$> composer require olegkoval/magento2-regenerate-url-rewrites
MANUAL INSTALLATION
-
extract files from an archive, (*2)
-
deploy files into Magento2 folder app/code/OlegKoval/RegenerateUrlRewrites, (*3)
ENABLE EXTENSION
-
enable extension (use Magento 2 command line interface *):, (*4)
$> php bin/magento module:enable OlegKoval_RegenerateUrlRewrites, (*5)
-
to make sure that the enabled module is properly registered, run 'setup:upgrade':, (*6)
$> php bin/magento setup:upgrade, (*7)
-
[if needed] re-compile code and re-deploy static view files:, (*8)
$> php bin/magento setup:di:compile
$> php bin/magento setup:static-content:deploy, (*9)
HOW TO USE IT:
- to regenerate Url Rewrites of all products in all stores (only products) set entity type to "product":
>
$> php bin/magento ok:urlrewrites:regenerate --entity-type=product
because product entity type is default — you can skip it:, (*10)
$> php bin/magento ok:urlrewrites:regenerate, (*11)
-
to regenerate, Url Rewrites in the specific store view (e.g.: store view id is "2") use option --store-id:, (*12)
$> php bin/magento ok:urlrewrites:regenerate --store-id=2, (*13)
-
to regenerate Url Rewrites of some specific product, then use option product-id (e.g.: product ID is "122"):, (*14)
$> php bin/magento ok:urlrewrites:regenerate --entity-type=product --product-id=122, (*15)
or, (*16)
$> php bin/magento ok:urlrewrites:regenerate --product-id=122, (*17)
- to regenerate Url Rewrites of specific products range then use option
products-range (e.g.: regenerate for all products with ID between "101" and "152"):
>$> php bin/magento ok:urlrewrites:regenerate --entity-type=product --products-range=101-152
* if in the range you have a gap of ID's (in range 101-152 products with ID's 110, 124, 150 not exists) — do not worry, a script handles this., (*18)
or, (*19)
$> php bin/magento ok:urlrewrites:regenerate --products-range=101-152, (*20)
-
to save a current Url Rewrites (you want to get a new URL rewites and save current) use option --save-old-urls:, (*21)
$> php bin/magento ok:urlrewrites:regenerate --save-old-urls, (*22)
-
to prevent regeneration of "url_key" values (use current "url_key" values) use option --no-regen-url-key:, (*23)
$> php bin/magento ok:urlrewrites:regenerate --no-regen-url-key, (*24)
-
if you do not want to run a full reindex at the end of Url Rewrites generation then use option --no-reindex:, (*25)
$> php bin/magento ok:urlrewrites:regenerate --no-reindex, (*26)
-
if you do not want to run cache:clean at the end of Url Rewrites generation then use option --no-cache-clean:, (*27)
$> php bin/magento ok:urlrewrites:regenerate --no-cache-clean, (*28)
-
if you do not want to run cache:flush at the end of Url Rewrites generation then use option --no-cache-flush:, (*29)
$> php bin/magento ok:urlrewrites:regenerate --no-cache-flush, (*30)
-
if you do not want to display a progress bar in the console then use option --no-progress:, (*31)
$> php bin/magento ok:urlrewrites:regenerate --no-progress, (*32)
REGENERATE URL REWRITES OF CATEGORY
-
to regenerate Url Rewrites of all categories in all stores, set an entity type to "category":, (*33)
$> php bin/magento ok:urlrewrites:regenerate --entity-type=category, (*34)
-
to regenerate Url Rewrites of some specific category, then use option category-id (e.g.: category ID is "15"):, (*35)
$> php bin/magento ok:urlrewrites:regenerate --entity-type=category --category-id=15, (*36)
-
to regenerate Url Rewrites of specific categories range then use option categories-range (e.g.: regenerate for all categories with ID between "4" and "12"):, (*37)
$> php bin/magento ok:urlrewrites:regenerate --entity-type=category --categories-range=4-12, (*38)
* if in the range you have a gap of ID's (in range 4-12 category with ID "6" not exists) — do not worry, a script handles this., (*39)
** If you use options --category-id or --categories-range then you can skip option --entity-type=category - extension will understand that you want to use a category entity., (*40)
YOU CAN COMBINE OPTIONS
$> php bin/magento ok:urlrewrites:regenerate --store-id=2 --save-old-urls --no-regen-url-key --no-reindex, (*41)
YOU CANNOT COMBINE THESE OPTIONS
-
--entity-type=product and --category-id/--categories-range
-
--entity-type=category and --product-id/--products-range
-
--category-id and/or --categories-range and/or --product-id and/or --products-range
DEPRECATED OPTIONS
-
--check-use-category-in-product-url — extension uses a built-in Magento Url Rewrites generator which check this option in any way.
EXAMPLES OF USAGE
- Regenerate Url Rewrites for product with ID "38" in store with ID "3":
>
$> php bin/magento ok:urlrewrites:regenerate --entity-type=product --store-id=3 --product-id=38
or, (*42)
$> php bin/magento ok:urlrewrites:regenerate --store-id=3 --product-id=38, (*43)
-
Regenerate Url Rewrites for products with ID's 5,6,7,8,9,10,11,12 in store with ID "2" and do not run full reindex at the end of process:, (*44)
$> php bin/magento ok:urlrewrites:regenerate --entity-type=product --store-id=2 --products-range=5-12 --no-reindex, (*45)
-
Regenerate Url Rewrites for category with ID "22" in all stores and save current Url Rewrites:, (*46)
$> php bin/magento ok:urlrewrites:regenerate --entity-type=category --category-id=22 --save-old-urls, (*47)
-
Regenerate Url Rewrites for categories with ID's 21,22,23,24,25 in store with ID "2":, (*48)
$> php bin/magento ok:urlrewrites:regenerate --entity-type=category --categories-range=21-25 --store-id=2, (*49)
Enjoy!, (*50)
Best regards,
Oleg Koval, (*51)