2010-12-02 4 views
2

Ich erstelle manuell Besprechungen in Magento und versuche herauszufinden, wie ich die Bewertungsinformationen hinzufüge? Ich kann die Bewertungen kein Problem hinzufügen, aber ich kämpfe mit den Bewertungswerten (Sternwerte). Ich habe ein Array, das wie folgt aussieht: Array ("Preis" => 80, "Wert" => 60, "Qualität" => 60);Magento - Wie kann ich Bewertungsinformationen zu einer Bewertung hinzufügen?

Wie kann ich das zum Sternsystem und der Zusammenfassung hinzufügen?

Danke.

Ok, so ist es das, was ich bisher: Dies fügt eine Rezension:

$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(); 

Dies fügt eine Bewertung für eine Bewertung < -Ich bin hier fest!

// 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); 
} 

Vielen Dank!

+1

Es ist nicht klar, was Sie mit "Handbuch" meinen. Schreiben Sie Code, um die Bewertungen zu erstellen? Und suchen Sie, was Sie tun müssen, um einen Rating-Wert hinzuzufügen? Sende den Code, den du bisher gemacht hast und du wirst mir eher eine Antwort geben. –

+0

Hallo Alan. Danke für Ihre Antwort. Ja, ich schreibe Code, um die Bewertung zu erstellen und den Bewertungswert (Preis, Qualität, Wert usw.) hinzuzufügen. Ich habe Code geschrieben, der den Test erstellt, er fügt einfach nicht die Bewertung hinzu. Ich bin jetzt von meinem Schreibtisch weg, also komme ich nicht zu dem Code, den ich geschrieben habe, aber ich werde ihn morgen veröffentlichen, wenn ich kann. Danke – sulman

+0

Ok Ich habe meinen Code jetzt zur Frage hinzugefügt. Vielen Dank! – sulman

Antwort

1

Das ist für mich gearbeitet:

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"; 
} 

Ich rufe diese wie => $ options = array (1 => Array (1,2,3,4), 2 => Array (6, 7,8), 3 => Array (11,12)); $ reviewarray = array ('kunden_id' => '21', 'product_id' => '176', 'store_id' => '4', 'titel' => 'Review', 'nickname' => 'XYZ' , 'detail' => 'Schönes Produkt mit lebenslanger Garantie', 'Optionen' => $ Optionen);