Magento - Как я могу добавить информацию о рейтинге к обзору - PullRequest
2 голосов
/ 02 декабря 2010

Я вручную создаю обзоры в Magento и пытаюсь выяснить, как добавить информацию о рейтинге в? Я могу добавить отзывы без проблем, но я борюсь со значениями рейтинга (звездные значения). У меня есть массив, который выглядит так: массив ("Цена" => 80, "Значение" => 60, "Качество" => 60);

Как я могу добавить это к звездной системе и итоговому рейтингу?

Спасибо.

Хорошо, это то, что я имею до сих пор: Это добавляет обзор:

$review->setEntityPkValue(23);//product id
$review->setStatusId(1);
$review->setTitle("title");
$review->setDetail("detail");
$review->setEntityId($review->getEntityIdByCode(Mage_Review_Model_Review::ENTITY_PRODUCT_CODE));
$review->setStoreId(Mage::app()->getStore()->getId());                    
$review->setStatusId(1); //approved
$review->setNickname("Me");
$review->setReviewId($review->getId());
$review->setStores(array(Mage::app()->getStore()->getId()));                    
$review->save();
$review->aggregate();

Это добавляет рейтинг к обзору <-Я застрял здесь! </p>

// this is some test code to add the rating review
$rating[0]['Price']     = 80;
$rating[0]['Value']     = 100;
$rating[0]['Quality']   = 80;
$product_id = 23;
$review_id = 631;
foreach ($rating as $ratingId => $optionId) {
// This is the bit where it all seems to go wrong!:
        Mage::getModel('rating/rating')
        ->setRatingId(1)
        ->setReviewId($review_id)
        ->addOptionVote($val, $product_id);
}

Спасибо!

1 Ответ

1 голос
/ 14 января 2014

Это сработало для меня:

public function addReview($ratingarray)
{
    $product_id = $ratingarray['product_id'];
    $storeid = $ratingarray['store_id'];
    $title = $ratingarray['title'];
    $customerid = $ratingarray['customer_id'];
    $nickname = $ratingarray['nickname'];
    $detail = $ratingarray['detail'];

    $review = Mage::getModel('review/review');
    $review->setEntityPkValue($product_id);
    $review->setStatusId(1);
    $review->setTitle($title);
    $review->setDetail($detail );
    $review->setEntityId($review->getEntityIdByCode(Mage_Review_Model_Review::ENTITY_PRODUCT_CODE));
    $review->setStoreId($storeid);
    $review->setStatusId(1); //approved
    $review->setCustomerId($customerid);
    $review->setNickname($nickname);
    $review->setReviewId($review->getId());
    $review->setStores(array($storeid));
    $review->save();
    $review->aggregate();
    //return "success";
    $rating_options = $ratingarray['options'];
    /*array(
     array(1,2,3,4),
            array(6,7,8),
            array(11,12)
    );*/

    $row = count($rating_options);
    $rating_id = 1;
    foreach($rating_options as $key1=>$val1)
    {
        foreach($val1 as $key2=>$val2)
        {
            $_rating = Mage::getModel('rating/rating')
            ->setRatingId($key1)
            ->setReviewId($review->getId())
            ->addOptionVote($val2,$product_id );
        }

    }
    return "Success";
}

Я называю это как => $ options = array (1 => array (1,2,3,4), 2 => array (6,7,8), 3 => array (11,12)); $ reviewarray = array ('customer_id' => '21', 'product_id' => '176', 'store_id' => '4', 'title' => 'Review', 'nickname' => 'XYZ', 'detail' => 'Хороший продукт с гарантией срока службы', 'options' => $ options);

...