Импортировать обзор продукции CSV в magento

1

Я работаю над импортом csv обзоров продуктов на мой magento.

Изображение 174551

Csv находится в моей папке с пурпурным шрифтом. Я создал сценарий product_review.php внутри моего каталога оболочки

<?php 
require '../app/Mage.php';
umask(0);
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
ini_set('max_execution_time', 84000);
ini_set('memory_limit', '5120M');
$fp = fopen('final_available_dup.csv', 'r');
//Mage::app()->setCurrentStore(4); //desired store id 
while($line = fgetcsv($fp)) {
 $review = Mage::getModel('review/review'); 
 $review->setEntityPkValue($line[0]);//previews1.csv
 $review->setCreatedAt($line[1]);//previews1.csv
 $review->setStatusId($line[2]); //approved
 $review->setTitle($line[3]);
 $review->setNickname($line[4]);  
 $review->setDetail($line[5]); 
 $review->setEntityId($line[6]);                                       
 $review->setStoreId(Mage::app()->getStore()->getId());                      
 //$review->setStatusId($line[5]);  
 $review->setCustomerId($line[7]);//null is for administrator 
 $review->setReviewsCount($line[8]);//null is for administrator
 $review->setReviewId($review->getId()); 
 $review->setStores(array(Mage::app()->getStore()->getId()));                     
 $review->save(); 
 $review->aggregate(); 
}

?>

и когда я запустил папку оболочки и запустил product_review.php, появилась пустая страница, которая, я думаю, верна.

Но когда я вхожу в свою заднюю часть и проверяю, что я не вижу никаких обзоров. Я не могу, какой продукт обновляется.

Изображение 174551

Я не знаю, что мне больше нужно делать?

Теги:
csv
magento

1 ответ

0

Вы можете использовать следующий код для импорта обзоров продуктов.

Мой CSV выглядит следующим образом:

"created_at","Sku","status_id","title","detail","nickname","customer_id","option_id","entity_id"
"2016-04-01 19:42:09","1991474","2","Top","Blij van!!","claes wassenaar","","1:4@3:15@2:9","24582"


Поэтому убедитесь, что вы редактируете свой CSV-путь в следующем коде и присваиваете правильные значения переменным.

    require_once 'app/Mage.php';
    Mage::app();

    $fileLocation = "var/import/import_review.csv"; // Set your CSV path here
    $fp = fopen($fileLocation, 'r');
    $count = 1;

    while($data = fgetcsv($fp)){
        if($count > 1){
            //initiate required variables
            $_createdAt     = $data[0];
            $_sku           = $data[1];
            $_catalog       = Mage::getModel('catalog/product');
            $_productId     = $_catalog->getIdBySku($_sku);
            $_statusId      = $data[2];
            $_title         = $data[3];
            $_detail        = $data[4];
            $_customerId    = NULL;
            $_nickname      = $data[5];

            //load magento review model and assign values
            $review = Mage::getModel('review/review');
            $review->setCreatedAt($_createdAt); //created date and time
            $review->setEntityPkValue($_productId);//product id
            $review->setStatusId($_statusId); // status id
            $review->setTitle($_title); // review title
            $review->setDetail($_detail); // review detail
            $review->setEntityId(1); // leave it 1
            $review->setStoreId(Mage::app()->getStore()->getId()); // store id
            $review->setCustomerId($_customerId); //null is for administrator
            $review->setNickname($_nickname); //customer nickname
            $review->setReviewId($review->getId());//set current review id
            $review->setStores(array(Mage::app()->getStore()->getId()));//store id's
            $review->save();
            $review->aggregate();

            //set review ratings
            if($data[7]){
                $arr_data = explode("@",$data[7]);
                if(!empty($arr_data)) {
                    foreach($arr_data as $each_data) {
                        $arr_rating = explode(":",$each_data);
                        if($arr_rating[1] != 0) {
                            Mage::getModel('rating/rating')
                            ->setRatingId($arr_rating[0])
                            ->setReviewId($review->getId())
                            ->setCustomerId($_customerId)
                            ->addOptionVote($arr_rating[1], $_productId);
                        }
                    }
                }
                $review->aggregate();
            }
        }
       // if($count == 5){
       //       die("total $count reviews are imported!");
       //  }
        $count++;
    }

    echo "total $count reviews are imported!";
?>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню