Keith Greer Batch importer for Magento Product SKUs

Place the following script in your Magento root folder

First create your CSV with the old and new SKU numbers in a simple CSV file as follows and upload onto FTP into the magento/var/import directory.

1232,new-24B8
442,2w39489
0909d,11299033

One product on each line the current SKU followed by a comma, then the new SKU you wanto to use followed by a new line. Next, place the following script in the root folder of your Magento install. Make sure $updates_file matches the location of the CSV file on the server.

<?php

ini_set('error_reporting', E_ALL);

// Location of Mage.php relative to current script
include_once 'app/Mage.php';
Mage::app();

// Location of CSV relative to file system root
$updates_file="/magento/var/import/sku2sku.csv";
$sku_entry=array();
echo realpath(dirname(__FILE__));
$updates_handle=fopen($updates_file, 'r');
echo "1 "; 
if($updates_handle) { 
echo "2 "; 
    while($sku_entry=fgetcsv($updates_handle, 1000, ",")) { 
        $old_sku=$sku_entry[];
        $new_sku=$sku_entry[1];
        echo "Updating ".$old_sku." to ".$new_sku." - ";
        try {
            $get_item = Mage::getModel('catalog/product')-&gt;loadByAttribute('sku', $old_sku);
            if ($get_item) {
                $get_item-&gt;setSku($new_sku)-&gt;save();
                echo "successful";
            } else {
                echo "item not found";
            }
        } catch (Exception $e) { 
            echo "Cannot retrieve products from Magento: ".$e-&gt;getMessage()."
";
            return;
        }
    }
}
fclose($updates_handle);

An alternative method uses the SOAP API built into Magento but is slightly slower.