cancel
Showing results for 
Search instead for 
Did you mean: 

Importing reviews using csv file

   Did you know you can see the translated content as per your choice?

Translation is in progress. Please check again after few minutes.

Importing reviews using csv file

Hi,

I want to import customer reviews using CSV file.

i can successfully upload all reviews but problem is created_at date is current date instead of actual review date (from CSV file).

 

the code i am using below. could you please help so i can import reviews with actual dates.

 

<?php

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

$fileLocation = "../var/import/reviews_sample.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];
$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[6]){
$arr_data = explode("@",$data[6]);
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!";

?>

 

Thanks

2 REPLIES 2

Re: Importing reviews using csv file

Hi, this post https://magento.stackexchange.com/a/21157/26 suggests that you will need to reload the review once created and set the created_at date and then save. The problem is that Magento automatically sets the created_at date on first creation regardless of what you set. 

----
If you've found one of my answers useful, please give "Kudos" or "Accept as Solution" as appropriate. Thanks!

Re: Importing reviews using csv file

Did you find the solutions, if yes could you pls share with your csv format? Thanks.