I am creating products programmatically in my magento store by a PHP script. Everything is going correct but url-key not showing correct.

For example : I have a product Test already in store which has url-key test and frontend url is test.html. Now when I create a new product with name Test then it is showing url-key test in admin panel but in frontend url is test-123.html showing.

I want to set url-key as test-123 in admin panel also.

How to do that at the time of product creation?

  • I think in your url_rewrite table some other url has test so that's why it create another entry with test-123 in that case if you dont need old url then just delete or truncate url_rewrite table and do reindexing this way new url key would be generated Commented Jan 11, 2017 at 14:01

2 Answers 2


For Update Url Key :

$old_url_key = $product->getUrlKey();
$product->setUrlKey($manufacturer . ’-’ . $old_url_key);
  • I know very well how to get and save product attribute or filed but my question is at the time of product creation is it possible to set url_key so that no rewrite generated in magento store? Commented Jan 11, 2017 at 13:40
error_reporting(E_ALL | E_STRICT);
define('MAGENTO_ROOT', getcwd());
$mageFilename = MAGENTO_ROOT . '/app/Mage.php';
require_once $mageFilename;
ini_set('display_errors', 1);
$products = Mage::getModel("catalog/product")->getCollection();
$fp = fopen('getUrl.csv', 'w');
$csvHeader = array("sku","url_key");
fputcsv( $fp, $csvHeader,",");
foreach ($products as $product){
    $sku = $product->getSku();
    $url = $product->getUrlKey();
    fputcsv($fp, array($sku,$url), ",");

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.