Use any bulk product import module.
Read CSV file and create multidimensional array to update in one go.
Sample Array structure ...
$data = array(
array(
'sku' => 'simple1',
'_type' => 'simple',
'_attribute_set' => 'Default',
'_product_websites' => 'base',
'name' => 'Simple Product 1',
'description' => 'Default',
'short_description' => 'Default',
'price' => 10,
'weight' => 0,
'status' => 1,
'visibility' => 4,
'tax_class_id' => 2,
'qty' => 99,
'is_in_stock' => 1,
),
array(
'sku' => 'simple2',
'_type' => 'simple',
'_attribute_set' => 'Default',
'_product_websites' => 'base',
'name' => 'Simple Product 2',
'description' => 'Default',
'short_description' => 'Default',
'price' => 10,
'weight' => 0,
'status' => 1,
'visibility' => 4,
'tax_class_id' => 2,
'qty' => 99,
'is_in_stock' => 1,
),
array(
'sku' => 'grouped',
'_type' => 'grouped',
'_attribute_set' => 'Default',
'_product_websites' => 'base',
'name' => 'Grouped Product',
'description' => 'Default',
'short_description' => 'Default',
'status' => 1,
'visibility' => 4,
'tax_class_id' => 2,
'is_in_stock' => 1,
'_associated_sku' => array('simple1', 'simple2'),
'_associated_position' => array('1', '2'),
),
);
// now update that array collection in one go
try {
/** @var $import AvS_FastSimpleImport_Model_Import */
$import = Mage::getModel('fastsimpleimport/import');
$import
->setUseNestedArrays(true)
->processProductImport($data);
} catch (Exception $e) {
print_r($import->getErrorMessages());
}
Git Link for AvS_FastSimpleImport
Link for AvS_FastSimpleImport