Magento 用程式碼批量 新增產品的評論review(通過SKU)
阿新 • • 發佈:2019-02-19
說明:在網站前臺新增評論 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() 方法是處理 前臺使用者的評論的。
在這個方法裡
所以,我這裡 指定了 $storeid = 1。
具體實現程式碼如下:
這個是基礎核心程式碼,批量新增評論功能或者去其他網站抓取同sku產品然後寫入評論等功能。可在此基礎上擴充套件。<?php define('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();//集合處理