Showing results for 
Search instead for 
Did you mean: 

Importing reviews using csv file

Importing reviews using csv file


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.



require_once '../app/Mage.php';

$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

//set review ratings
$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) {
->addOptionVote($arr_rating[1], $_productId);
// if($count == 5){
// die("total $count reviews are imported!");
// }

echo "total $count reviews are imported!";





Re: Importing reviews using csv file

Hi, this post 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!