ambimax / magento-module-ambimax-productnotfoundhandler
Handles product redirect if sku is found in url
Installs: 17
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 4
Forks: 0
Open Issues: 0
Type:magento-module
Requires
This package is not auto-updated.
Last update: 2025-01-05 06:04:09 UTC
README
When importing products the url-key is extended by a continuing number that makes it unique.
Additionally a permanent redirect is created from the old url to the new one. Therefore the
core_url_rewrite
table grows rapidly and slows many Magento sites down.
To solve this problem we add the sku to the urls and make old urls forever (as long as the product with same sku exists) redirectable without overhead. This module reads the sku from url and redirects to the new url.
Usage
Url must use this pattern
http://domain.tld/any-string-{sku}-{skuLength}/
Sku must not contain any characters except for #[^0-9a-z]+#i
Composer
composer require ambimax/magento-module-ambimax-productnotfoundhandler
Installation
-
Install like any other (modman/composer) module
-
To enable it please set Configuration > Web > Default Pages > CMS No Route Page (web/default/no_route) to
productnotfoundhandler/index/noRoute
(default: cms/index/noRoute) -
Add sku and skuLength to all url-key attribute of all products
Example import usage:
/**
* Prepare product data on import
*
* @param array $productData
* @return array
*/
public function row(array $productData)
{
// ...
$url = array($productData['amazon_titel'], $productData['sku'], strlen($productData['sku']));
$product['url_key'] = $this->formatUrlKey(implode(' ', $url));
// ...
return $productData;
}
/**
* Format Key for URL
*
* @param string $str
* @return string
*/
public function formatUrlKey($str)
{
$urlKey = preg_replace('#[^0-9a-z]+#i', '-', strtolower(Mage::helper('catalog/product_url')->format($str)));
$urlKey = trim($urlKey, '-');
return $urlKey;
}
Disclaimer
This module comes with no warranty at all.
License
Author Information
- Julian Bour, ambimax® GmbH
- Tobias Schifftner, ambimax® GmbH