Please find the sample code to export the products to CSV in Magento.
<?php //export the products to CSV
require_once('app/Mage.php'); umask(0); if (!Mage::isInstalled()) { echo "Application is not installed yet, please complete install wizard first."; exit; } // Only for urls // Don't remove this $_SERVER['SCRIPT_NAME'] = str_replace(basename(__FILE__), 'index.php', $_SERVER['SCRIPT_NAME']); $_SERVER['SCRIPT_FILENAME'] = str_replace(basename(__FILE__), 'index.php', $_SERVER['SCRIPT_FILENAME']); Mage::app('admin')->setUseSessionInUrl(false); Mage::setIsDeveloperMode(true); ini_set('display_errors', 1); error_reporting(E_ALL); try { Mage::getConfig()->init(); Mage::app(); } catch (Exception $e) { Mage::printException($e); } ini_set('memory_limit', '1024M'); ini_set('max_execution_time', 0); $productCount = 0; try { $storeId = Mage::app()->getStore()->getStoreId(); //configure the collection filters. if (Mage::helper('catalog/product_flat')->isEnabled()) { //load a flat collection //$collection = Mage::getModel('catalog/product_flat')->getCollection(); } else { $collection = Mage::getModel('catalog/product')->getCollection(); $collection->joinField('qty', 'cataloginventory/stock_item', 'qty', 'product_id=entity_id', '{{table}}.stock_id=1', 'left'); $collection->joinField('is_in_stock', 'cataloginventory/stock_item', 'is_in_stock', 'product_id=entity_id', '{{table}}.stock_id=1', 'left'); $collection->joinField('websites', 'catalog/product_website', 'GROUP_CONCAT(DISTINCT at_websites.website_id) as websites', 'product_id=entity_id', null, 'left'); //joinField($alias, $table, $field, $bind, $cond=null, $joinType='inner');----syntax $collection->joinAttribute('status', 'catalog_product/status', 'entity_id', null, 'left', $storeId); $collection->joinAttribute('visibility', 'catalog_product/visibility', 'entity_id', null, 'left', $storeId); $collection->joinAttribute('price', 'catalog_product/price', 'entity_id', null, 'left', $storeId); $collection->joinAttribute('name', 'catalog_product/name', 'entity_id', null, 'left', $storeId); $collection->joinAttribute('description', 'catalog_product/description', 'entity_id', null, 'left', $storeId); $collection->joinAttribute('short_description', 'catalog_product/short_description', 'entity_id', null, 'left', $storeId); $collection->joinAttribute('tax_class_id', 'catalog_product/tax_class_id', 'entity_id', null, 'left', $storeId); $collection->joinAttribute('weight', 'catalog_product/weight', 'entity_id', null, 'left', $storeId); $collection->joinField('category_ids', 'catalog/category_product', 'GROUP_CONCAT(DISTINCT at_category_ids.category_id) as category_ids', 'product_id=entity_id', null, 'left'); $collection->joinField('child_ids', 'catalog/product_relation', 'GROUP_CONCAT(DISTINCT at_child_ids.child_id) as child_ids', 'parent_id=entity_id', null, 'left'); $collection->joinAttribute('color', 'catalog_product/color', 'entity_id', null, 'left', $storeId); $collection->joinAttribute('size', 'catalog_product/size', 'entity_id', null, 'left', $storeId); $collection->addAttributeToSort('type_id', 'DESC'); $collection->getSelect()->group('e.entity_id'); } echo $collection->getSelect();exit; //This is the file to append the output to. $baseFilePath = 'exported_products'; if (!file_exists($baseFilePath)) { mkdir($baseFilePath, 0777, true); } $csvToCreate = $baseFilePath . '/exported_products.csv'; $csvObj = new Varien_File_Csv(); $csvData = array(); $productHeader = array( 'entity_id', 'entity_type_id', 'attribute_set_id', 'type_id', 'sku', 'has_options', 'required_options', 'created_at', 'updated_at', 'qty', 'is_in_stock', 'websites', 'status', 'visibility', 'price', 'name', 'description', 'short_description', 'tax_class_id', 'weight', 'category_ids', 'child_ids', 'color', 'size', 'configurable_data' ); $csvData[] = $productHeader; foreach ($collection as $product) { echo '<pre>';print_r($product->getData());exit; $productArray = array(); $productArray[] = $product['entity_id']; $productArray[] = $product['entity_type_id']; $productArray[] = $product['attribute_set_id']; $productArray[] = $product['type_id']; $productArray[] = $product['sku']; $productArray[] = $product['has_options']; $productArray[] = $product['required_options']; $productArray[] = $product['created_at']; $productArray[] = $product['updated_at']; $productArray[] = $product['qty']; $productArray[] = $product['is_in_stock']; $productArray[] = $product['websites']; $productArray[] = $product['status']; $productArray[] = $product['visibility']; $productArray[] = $product['price']; $productArray[] = $product['name']; $productArray[] = $product['description']; $productArray[] = $product['short_description']; $productArray[] = $product['tax_class_id']; $productArray[] = $product['weight']; $productArray[] = $product['category_ids']; $productArray[] = $product['child_ids']; $productArray[] = $product['color']; $productArray[] = $product['size']; if ($product['type_id'] == 'configurable') { $pro = Mage::getModel('catalog/product')->load($product['entity_id']); $_attributes = $pro->getTypeInstance(true)->getConfigurableAttributesAsArray($pro); $productArray[] = json_encode($_attributes); } $csvData[] = $productArray; $productCount++; } //write the data to CSV. $csvObj->saveData($csvToCreate, $csvData); } catch (Exception $e) { //Mage::printException($e); echo $e->getMessage(); } echo "<br/><br/>Saved $productCount products to csv file n"; ?>