Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to import newsletter subscribers user csv in magento

I have csv in which have lot of email is exit,it want to assign those email to newsleter subscription list. Who i will do....

And check how skip for exiting customer because there are already list in newsleter

like image 874
Krupal Patel Avatar asked Sep 05 '14 05:09

Krupal Patel


People also ask

How do I import a CSV file into Magento?

Select your CSV file. Use the “Select File to Import” option and then click “Check Data” – if data is correct, start importing products to Magento 2!

How do I import Customers into Magento 2?

Import Customers in Magento 2: Firstly, go to System > Data Transfer > Import from the admin panel sidebar and below the entity type choose the Customer Main File. Navigate to Select File to Import and upload your file. And tap to Check Data. That's It.


1 Answers

As krupal patel did not have enough reputation for post answer so , instead of him i have put answer.

Follow this step

Step 1 Add import.php file in Magento root directory this code should be

     <?php
    $store_id = 1;
    $csv_filepath = "subscribers.csv";
    $csv_delimiter = ',';
    $csv_enclosure = '"';
    $magento_path = __DIR__;
    require "{$magento_path}/app/Mage.php";

    Mage::app()->setCurrentStore($store_id);
    echo "<pre>";
    $fp = fopen($csv_filepath, "r");

    if (!$fp) die("{$csv_filepath} not found\n");
    $count = 0;

    while (($row = fgetcsv($fp, 0, $csv_delimiter, $csv_enclosure)) !== false){
        if ($count != 0){

            $email = trim($row[1]);
            $type = trim($row[2]);
            $fname = trim($row[3]);
            $lname = trim($row[4]);
            $status = trim($row[5]);
            $website = trim($row[6]);
            $store = trim($row[7]);
            $store_view = trim($row[8]);

            if (strlen($email) == 0) continue;
            echo "$email";
            $subscriber = Mage::getModel('newsletter/subscriber')->loadByEmail($email);
            if ($subscriber->getId()){
                echo $email . " <b>already subscribed</b>\n";
                continue;
                }

            Mage::getModel('newsletter/subscriber')->setImportMode(true)->subscribe($email);
            $subscriber_status = Mage::getModel('newsletter/subscriber')->loadByEmail($email);

            if ($status == 1){
                  $subscriber_status->setStatus(Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED);
                  $subscriber_status->save();
                }else if($status == 2){
                  $subscriber_status->setStatus(Mage_Newsletter_Model_Subscriber::STATUS_NOT_ACTIVE);
                  $subscriber_status->save();
                }else if($status == 3){
                  $subscriber_status->setStatus(Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED);
                  $subscriber_status->save();
                }else if($status == 4){
                  $subscriber_status->setStatus(Mage_Newsletter_Model_Subscriber::STATUS_UNCONFIRMED);
                  $subscriber_status->save();
                }
                echo $email . " <b>ok</b>\n";
            }

        $count++;

        }

echo "Import finished\n";

Step 2 Add subscribers.csv file in Magento root directory

Step 3: Run import.php file in root directory like ( http://domainname.com/import.php )

Step 4: Go to admin menu Newsletter > Newsletter Subscribers and finally you subscriber user CSV file import

Visit link for code = http://krupalpatel92.blogspot.com/2014/09/magento-newsletter-subscriber-csv-file.html

Cheer up krupal patel

like image 170
Amit Bera Avatar answered Sep 22 '22 06:09

Amit Bera