2011-10-31 5 views
1

제품 평가 점수 (예 : 5 점중 4 점)와 제품 리뷰 수를 얻고 싶습니다. 점수가 아니라 리뷰 수를 얻을 수 있습니다.Magento의 제품 리뷰 요약보기

내 이벤트 옵저버 클래스에서이 일을 해요 : 어떤 도움

$storeId = Mage::app()->getStore()->getId(); // returns 1 

$productId = $product->getId(); // returns 135 

$summaryData = Mage::getModel('review/review_summary')->setStoreId($storeId)->load($productId); // returns 

$reviewsCount = $summaryData->getReviewsCount(); // this works 

$ratingSummary = $summaryData->getRatingSummary(); // this does not return the rating score I had hoped it would. It just returns a blank string. 

감사합니다.

답변

0

리뷰 코드를 반복하여 호출하고 있습니까? 그렇다면 클래스의 _initReviewsHelperBlock 메소드를 살펴보십시오. 이 버그 확인하기 위해 두 번째 여전히

초기화하지만

+0

답장을 보내 주셔서 감사합니다. 나는 카트를 통과하고 카트의 각 제품에 대해 위 코드를 호출합니다. getRatingSummary는 모든 제품에 대해 아무것도 반환하지 않습니다. Magento 버전 1.4.2.0을 사용하고 있습니다. 내가 작성한 코드에 문제가 있는지 또는 실제로 버그인지 여부를 확인할 수 있습니까? 이 같은 문제가 발생하는 사람은 누구입니까? – user265330

+0

나는 도우미가 루프에서 사용되도록 의도되지 않았다고 믿는다. 버그인지 디자인 결함인지 확실치 않습니다. 아마 그것을 다른 방법으로 초기화하는 방법이있을 것입니다. – Zifius

3

귀하의 코드가 젠토 1.4.2, 1.5.1 및 1.6 테스트에서 local 수영장에서 클래스를 다시 작성했다 때 false를 반환합니다. 1 예상대로 작동합니다. 코드와 유일한 차이점은 저장소 ID와 제품 ID를 하드 코딩한다는 것입니다. 리뷰 모든 제품을 통해 루프도뿐만 아니라 작동합니다

<?php 
$products = Mage::getResourceModel('catalog/product_collection'); 
foreach ($products as $product) 
{ 
    $summary = Mage::getModel('review/review_summary') 
      ->setStoreId(Mage::app()->getStore('default')->getId()) 
      ->load($product->getId()); 
    if ($summary->getId()) 
    { 
     echo $summary->getRatingSummary() . "\n"; 
    } 
} 

당신이 엔티티 (135)의 review_entity_summary 테이블의 예상 결과를 확인 했습니까?

관련 문제