Magento获取商品的评价列表(get product review)

获取商品的评论列表在商城中也是十分常见也是必须的功能,这里我介绍自己写的获取商品评价的方法,代码如下:

$review = Mage::helper('fun_review');
$productReviewList = $review->getReviewListByProductId($productId, 1, $page_index, $page_size);

这里根据商品是否是可配置(configurable)商品进而使用不同的方法获取review列表

/**
 * 获取商品的评论列表
 *
 * @param $productId
 * @param int $status
 * @param int $page
 * @param int $pageSize
 * @return mixed
 */
public function getReviewListByProductId($productId, $status = 1, $page = 1, $pageSize = self::REVIEW_PAGE_SIZE)
{
      $_product = Mage::getModel('catalog/product')->load($productId);
      $type_id = $_product->getTypeId();

      $review = Mage::getResourceModel('review/review_collection');
          //->addStoreFilter(Mage::app()->getStore()->getId());       //store_id Filter
      $reviewDetailTable = $review->getTable('review/review_detail');
      $review->getSelect()->joinInner([
          'd' => $reviewDetailTable
      ], "d.review_id = main_table.review_id", ['detail_id', 'customer_id']);
      if($type_id == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) {
          $childProductIds = Mage::getModel('catalog/product_type_configurable')
              ->getChildrenIds($productId);

          $reviewList = $review->addFieldToFilter('entity_pk_value', array('in' => $childProductIds))
              ->addFieldToFilter('status_id', $status)
              ->setOrder('review_id', 'DESC')
              ->setPageSize($pageSize)
              ->setCurPage($page)
              ->getItems();
      } else {
          $reviewList = $review->addFieldToFilter('entity_pk_value', array('eq' => $productId))
              ->addFieldToFilter('status_id', $status)
              ->setOrder('review_id', 'DESC')
              ->setPageSize($pageSize)
              ->setCurPage($page)
              ->getItems();
      }

    return $reviewList;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值