Import Customers by csv file in Magento
here i developed script to import customers in magento by csv file.
csv file have following columns
########customerid (unique key) accesskey (customer type) emailaddress password firstname lastname companyname billingaddress1 city state postalcode country phonenumber faxnumber
###########
here i didn't use any magento's core file.
code is given below,i hope it will help you :)
set_time_limit(36000);
error_reporting(0);
/**
* @Use Script to import customer's data in Magento Database
* @createDate Mar 2010
* @author Manoj Ninave (manojninave@gmail.com)
**/
define("DB_HOST","localhost",TRUE); // database server name
define("DB_USER","root",TRUE); // database user
define("DB_PASS","",TRUE); // database user's password
define("DB_NAME","dbname",TRUE); // database name
require_once('db.class.php');
if( !isset($db_obj) ) {
$db_obj = new db;
}
$db_conect = $db_obj->connect();
//function to take country code from magento
//if the countr code are already in your csv file then //don't use this function.
function getCountryCode($countryName)
{
$xml = simplexml_load_file("territories.xml");
foreach($xml as $a => $b)
{
if($b == $countryName)
{
foreach($b->attributes() as $c)
{
return $c ;
}
}
}
}
echo "*******************Customer Import Module********************";
$file_handle = fopen("customers.csv", "r");
$i=0;
while (!feof($file_handle) ) {
$line_of_text = fgetcsv($file_handle, 1024);
if($i > 0)
{
$customerid =addslashes($line_of_text[0]);
$accesskey =addslashes($line_of_text[1]);
$emailaddress =addslashes($line_of_text[2]);
$password =md5($line_of_text[3]);
$firstname =addslashes($line_of_text[4]);
$lastname =addslashes($line_of_text[5]);
$companyname =addslashes($line_of_text[6]);
$billingaddress1 =addslashes($line_of_text[7]);
$billingaddress2 =addslashes($line_of_text[8]);
$city =addslashes($line_of_text[9]);
$state =addslashes($line_of_text[10]);
$postalcode =addslashes($line_of_text[11]);
$country =addslashes($line_of_text[12]);
$phonenumber =addslashes($line_of_text[13]);
$faxnumber =addslashes($line_of_text[14]);
$paysstatetax =addslashes($line_of_text[15]);
$taxid =addslashes($line_of_text[16]);
$emailsubscriber =addslashes($line_of_text[17]);
$percentdiscount =addslashes($line_of_text[18]);
$websiteaddress =addslashes($line_of_text[19]);
$discountlevel =addslashes($line_of_text[20]);
$customer_isanonymous =addslashes($line_of_text[21]);
$issuperadmin =addslashes($line_of_text[22]);
$allow_access_to_private_sections =addslashes($line_of_text[23]);
$customer_notes =addslashes($line_of_text[24]);
$Today = date("Y-m-d H:i:s");
$country_code = getCountryCode($country);
$sql_email = $db_obj->query("SELECT email from customer_entity where email='".$emailaddress."'",$db_conect);
$num_email = $db_obj->num_rows($sql_email);
if(!$emailaddress=="" && $num_email<=0)
{
$db_obj->query("INSERT INTO customer_entity(entity_type_id,attribute_set_id,website_id,email,group_id,increment_id,store_id,created_at,updated_at,is_active) VALUES (1,0,1,'".$emailaddress."',1,'',1,'".$Today."','".$Today."',1)",$db_conect);
//$increament_id++;
$sql_parent_id = $db_obj->query("SELECT max(entity_id) as id from customer_entity",$db_conect);
$rs_parent_id = $db_obj->fetch_array($sql_parent_id);
$parentId = $rs_parent_id['id'];
$db_obj->query("UPDATE customer_entity SET increment_id='".$parentId."' WHERE entity_id='".$parentId."'",$db_conect);
$db_obj->query("INSERT INTO customer_address_entity(entity_type_id,attribute_set_id,parent_id,created_at,updated_at,is_active) VALUES (2,0,'".$parentId."','".$Today."','".$Today."',1)",$db_conect);
$sql_max_entity_id = $db_obj->query("SELECT max(entity_id) as id from customer_address_entity",$db_conect);
$rs_max_entity_id = $db_obj->fetch_array($sql_max_entity_id);
$maxentityId = $rs_max_entity_id['id'];
$db_obj->query("INSERT INTO customer_address_entity_text(entity_type_id,attribute_id,entity_id,value) VALUES (2,23,'".$maxentityId."','".$billingaddress1."')",$db_conect);
$db_obj->query("INSERT INTO customer_address_entity_varchar(entity_type_id,attribute_id,entity_id,value) VALUES
(2,18,'".$maxentityId."','".$firstname."'),
(2,20,'".$maxentityId."','".$lastname."'),
(2,22,'".$maxentityId."','".$companyname."'),
(2,29,'".$maxentityId."','".$phonenumber."'),
(2,30,'".$maxentityId."','".$faxnumber."'),
(2,24,'".$maxentityId."','".$city."'),
(2,26,'".$maxentityId."','".$state."'),
(2,28,'".$maxentityId."','".$postalcode."'),
(2,25,'".$maxentityId."','".$country_code."')",$db_conect);
$db_obj->query("INSERT INTO customer_entity_int(entity_type_id,attribute_id,entity_id,value) VALUES
(1,13,'".$parentId."','".$maxentityId."'),
(1,14,'".$parentId."','".$maxentityId."')",$db_conect);
$db_obj->query("INSERT INTO customer_entity_varchar(entity_type_id,attribute_id,entity_id,value) VALUES
(1,5,'".$parentId."','".$firstname."'),
(1,7,'".$parentId."','".$lastname."'),
(1,3,'".$parentId."','Default Store View'),
(1,12,'".$parentId."','".$password."')",$db_conect);
}
}
$i++;
}
fclose($file_handle);
echo "Customer Imported Successfully.";
Tuesday, April 6, 2010
Tuesday, March 23, 2010
Import images into Magento database without using Magento core files.
here code is to import images into magento databse without using any core files.
this is for product's images. you can modify it for gallery images also.
here all the images took from media/import and copied to that perticular directory.
you can find here,how images created there directory structure.
if images name is example.gif,then will create directory structure like e/x/example.gif.
that is means this images will copy to media/catalog/product/e/x/example.gif
and the value /e/x/example.gif will insert into table catalog_product_entity_varchar.you can see this image at fronend to that perticular product.Actaully i did script to imaport product with catagory,attribute,images,description.... etc
it is nothing but a cron job.i took only import images part from my script.
$LargeProductImageURL=$LargeImageURL!=""?basename($allData[$key]->LargeImageURL):"";
$first_2_letter = substr("$LargeProductImageURL", 0,2);
$first_letter = substr("$first_2_letter", 0,1);
$second_letter = substr("$first_2_letter", -1);
$product_image ="/".$first_letter."/".$second_letter."/".$LargeProductImageURL;
$product_path=$media_path."".$slash."catalog\product";
$import_images=$media_path."".$slash."import".$slash."".$LargeProductImageURL;
$mypath1=$product_path."".$slash."".$first_letter;
if(!is_dir($mypath1))
{
mkdir($mypath1,0777,TRUE);
}
$mypath2=$product_path."".$slash."".$first_letter."".$slash."".$second_letter;
if(!is_dir($mypath2))
{
mkdir($mypath2,0777,TRUE);
}
//copy ( string $source , string $dest [, resource $context ] )
$Image_dest=$mypath2."".$slash."".$LargeProductImageURL;
@copy($import_images,$Image_dest);
#####check Is images are ready for copy or not
if (file_exists($import_images)) {
$product_image = $product_image;
}
else {
$product_image="no_selection";
}
#######
$UrlKey = strtolower(str_replace(" ","-",$PName));
$URL_path= $PName.".html";
/*if(empty($LargeProductImageURL))
{$product_image="no_selection";}*/
$db_obj->query("INSERT INTO catalog_product_entity_varchar(entity_type_id, attribute_id,store_id,entity_id,value) VALUES
('".$catalog_product."','56','0','".$entity_id."','".$PName."'),
('".$catalog_product."','82','0','".$entity_id."','".$UrlKey."'),
('".$catalog_product."','469','0','".$entity_id."','2'),
('".$catalog_product."','67','0','".$entity_id."','".$PName."'),
('".$catalog_product."','69','0','".$entity_id."','".$PName."'),
('".$catalog_product."','70','0','".$entity_id."','".$product_image."'),
('".$catalog_product."','71','0','".$entity_id."','".$product_image."'),
('".$catalog_product."','72','0','".$entity_id."','".$product_image."'),
('".$catalog_product."','86','0','".$entity_id."',''),
('".$catalog_product."','90','0','".$entity_id."',''),
('".$catalog_product."','92','0','".$entity_id."','container2'),
('".$catalog_product."','95','0','".$entity_id."',''),
('".$catalog_product."','96','0','".$entity_id."',''),
('".$catalog_product."','97','0','".$entity_id."',''),
('".$catalog_product."','83','0','".$entity_id."','".$URL_path."')", $db_conect);
regard
Manoj Ninave begin_of_the_skype_highlighting
this is for product's images. you can modify it for gallery images also.
here all the images took from media/import and copied to that perticular directory.
you can find here,how images created there directory structure.
if images name is example.gif,then will create directory structure like e/x/example.gif.
that is means this images will copy to media/catalog/product/e/x/example.gif
and the value /e/x/example.gif will insert into table catalog_product_entity_varchar.you can see this image at fronend to that perticular product.Actaully i did script to imaport product with catagory,attribute,images,description.... etc
it is nothing but a cron job.i took only import images part from my script.
$LargeProductImageURL=$LargeImageURL!=""?basename($allData[$key]->LargeImageURL):"";
$first_2_letter = substr("$LargeProductImageURL", 0,2);
$first_letter = substr("$first_2_letter", 0,1);
$second_letter = substr("$first_2_letter", -1);
$product_image ="/".$first_letter."/".$second_letter."/".$LargeProductImageURL;
$product_path=$media_path."".$slash."catalog\product";
$import_images=$media_path."".$slash."import".$slash."".$LargeProductImageURL;
$mypath1=$product_path."".$slash."".$first_letter;
if(!is_dir($mypath1))
{
mkdir($mypath1,0777,TRUE);
}
$mypath2=$product_path."".$slash."".$first_letter."".$slash."".$second_letter;
if(!is_dir($mypath2))
{
mkdir($mypath2,0777,TRUE);
}
//copy ( string $source , string $dest [, resource $context ] )
$Image_dest=$mypath2."".$slash."".$LargeProductImageURL;
@copy($import_images,$Image_dest);
#####check Is images are ready for copy or not
if (file_exists($import_images)) {
$product_image = $product_image;
}
else {
$product_image="no_selection";
}
#######
$UrlKey = strtolower(str_replace(" ","-",$PName));
$URL_path= $PName.".html";
/*if(empty($LargeProductImageURL))
{$product_image="no_selection";}*/
$db_obj->query("INSERT INTO catalog_product_entity_varchar(entity_type_id, attribute_id,store_id,entity_id,value) VALUES
('".$catalog_product."','56','0','".$entity_id."','".$PName."'),
('".$catalog_product."','82','0','".$entity_id."','".$UrlKey."'),
('".$catalog_product."','469','0','".$entity_id."','2'),
('".$catalog_product."','67','0','".$entity_id."','".$PName."'),
('".$catalog_product."','69','0','".$entity_id."','".$PName."'),
('".$catalog_product."','70','0','".$entity_id."','".$product_image."'),
('".$catalog_product."','71','0','".$entity_id."','".$product_image."'),
('".$catalog_product."','72','0','".$entity_id."','".$product_image."'),
('".$catalog_product."','86','0','".$entity_id."',''),
('".$catalog_product."','90','0','".$entity_id."',''),
('".$catalog_product."','92','0','".$entity_id."','container2'),
('".$catalog_product."','95','0','".$entity_id."',''),
('".$catalog_product."','96','0','".$entity_id."',''),
('".$catalog_product."','97','0','".$entity_id."',''),
('".$catalog_product."','83','0','".$entity_id."','".$URL_path."')", $db_conect);
regard
Manoj Ninave begin_of_the_skype_highlighting
Subscribe to:
Comments (Atom)
