Change SKU direct query #magento
<?php
require_once getcwd().'/app/Mage.php';
umask(0);
Mage::app();
ini_set('display_errors', 1);
ini_set('max_execution_time', 3600);
ini_set('max_input_time', 3600);
ini_set("memory_limit",'2048M');
$pathFile = Mage::getBaseDir('var') . '/import/source/skus_new.csv';
$io = new Varien_Io_File();
$csv = new Varien_File_Csv();
$data = $io->read($pathFile);
$resource = Mage::getSingleton('core/resource');
$readConnection = $resource->getConnection('core_read');
$writeConnection = $resource->getConnection('core_write');
// catalog_product_entity
$tableName = $resource->getTableName('catalog_product_entity');
if ($io->fileExists($pathFile)) {
$data = $csv->getData($pathFile);
Mage::log($data, null, 'product_change_sku.log');
$x = 0;
foreach ($data as $value) {
// excluimos la primera row, ya que son las cabeceras del csv
if ($x != 0){
Mage::log($value, null, 'value_change_sku.log');
$skuCurrent = $value[1];
$skuNew = $value[2];
Mage::log($skuCurrent, null, 'product_change_sku.log');
echo "entra en sku: ".$skuCurrent."\n";
$skuOld = $skuCurrent;
$query = 'SELECT * FROM ' . $tableName . ' WHERE sku = "' . $skuOld . '" LIMIT 1;';
/**
* Execute the query and store the results in $results
*/
$results = $readConnection->fetchAll($query);
if(count($results) > 0){
Mage::log("procesando sku: ".$skuOld,null,'change_sku_process.log');
echo "procesando sku: ".$skuOld."\n";
$queryUpdate = "UPDATE {$tableName} SET sku = '{$skuNew}' WHERE sku = '{$skuOld}'";
$writeConnection->query($queryUpdate);
Mage::log('producto modificado: '.$skuCurrent.' to '.$skuNew, null, 'result_change_sku.log');
echo 'producto actualizado: '.$skuCurrent.' to '.$skuNew."\n";
}
}
$x++;
}
} else {
echo "no se puede cargar el fichero o no se encuentra";
}
?>