Magento 用代码批量 添加产品的评论review(通过SKU)

来源:互联网 发布:湖南省地质测绘院 知乎 编辑:程序博客网 时间:2024/05/18 18:02

说明:在网站前台添加评论 review_store 表 要添加2条数据。对比发现 自己的代码  添加的  store_id自动 为0(正常应该有2条,还有一条 store_id为1的)

这里的 1和0 ,分表Magento前台和后台。

所以我 指定了 $StoreId =1; 默认  storeid 是通过

Mage::app()->getStore()->getId() 获取的。

在 \app\code\core\Mage\Review\controllers\ProductController.php 

postAction() 方法是处理 前台用户的评论的。

在这个方法里Mage::app()->getStore()->getId() 获取的值为 1。

所以,我这里 指定了 $storeid = 1。

具体实现代码如下:

<?phpdefine('MAGENTO', realpath(dirname(__FILE__)));require_once MAGENTO . '/app/Mage.php';umask(0);Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); //数据$data = array("form_key" => "AGPcNKVldb5KkWBA","ratings" => array(3=>'15',2=>'10',1=>'5'),"nickname" => "jack","title" => "HB82429","detail" => "good");$rating = array(3=>'15',2=>'10',1=>'5');//产品模型对象$product = Mage::getModel('catalog/product')->loadByAttribute('sku',$data['title']);//StoreId手动设置$StoreId = '1';//review模型$review  = Mage::getModel('review/review')->setData($data);$review->setEntityId($review->getEntityIdByCode(Mage_Review_Model_Review::ENTITY_PRODUCT_CODE))                ->setEntityPkValue($product->getId())                ->setStatusId(Mage_Review_Model_Review::STATUS_PENDING)                ->setCustomerId(Mage::getSingleton('customer/session')->getCustomerId())                ->setStoreId($StoreId)                ->setStores(array($StoreId))                ->save();//循环写入rating表foreach ($rating as $ratingId => $optionId) {    Mage::getModel('rating/rating')    ->setRatingId($ratingId)    ->setReviewId($review->getId())    ->setCustomerId(Mage::getSingleton('customer/session')->getCustomerId())    ->addOptionVote($optionId, $product->getId());}$review->aggregate();//集合处理
这个是基础核心代码,批量添加评论功能或者去其他网站抓取同sku产品然后写入评论等功能。可在此基础上扩展。

0 0
原创粉丝点击