jruzafa
1/11/2016 - 3:18 PM

Change SKU direct query #magento

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";

}
?>