Magento2 get all product review details by product sku?

The question:

In Magento 2 how to get all the product reviews by product SKU.

Please find the screenshot below.

Magento2 get all product review details by product sku?
please provide/suggest me how to get.

I have written some test code:

<?php
use MagentoFrameworkAppBootstrap;
require __DIR__ . '/app/bootstrap.php';
$bootstrap = Bootstrap::create(BP, $_SERVER);
$obj = $bootstrap->getObjectManager();
$state = $obj->get('MagentoFrameworkAppState');
$state->setAreaCode('frontend');

ini_set('display_errors', 1);
echo "All reviews of the product </br>";


$sku ='24-MB04';
$objectManager = MagentoFrameworkAppObjectManager::getInstance();
/** @var MagentoCatalogModelProduct $product */
$productObject = $objectManager->get('MagentoCatalogModelProduct');
$storeManager = $objectManager->get('MagentoStoreModelStoreManagerInterface');
$currentStoreId = $storeManager->getStore()->getId();
$product = $productObject->loadByAttribute('sku', $sku);

The Solutions:

Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.

Method 1

This is example to get product review by product SKU or Product ID

$sku = '24-MB02';
$objectManager = MagentoFrameworkAppObjectManager::getInstance();
$product = $objectManager->create("MagentoCatalogModelProduct")->loadByAttribute('sku', $sku); //use load($producID) if you have product id
$storeManager = $objectManager->get('MagentoStoreModelStoreManagerInterface');
$currentStoreId = $storeManager->getStore()->getId();
$rating = $objectManager->get("MagentoReviewModelResourceModelReviewCollectionFactory");

$collection = $rating->create()->addStoreFilter(
            $currentStoreId
        )->addStatusFilter(
            MagentoReviewModelReview::STATUS_APPROVED
        )->addEntityFilter(
            'product',
            $product->getId()
        )->setDateOrder();

print_r($collection->getData()); //Get all review data of product

Method 2

Load RatingSummary by $product , Try below code :

    $objectManager = MagentoFrameworkAppObjectManager::getInstance();
    $reviewFactory = $objectManager->create('MagentoReviewModelReview');

    $storeId = $this->_storeManager->getStore()->getId();
    $reviewFactory->getEntitySummary($product, $storeId);

    $ratingSummary = $product->getRatingSummary()->getRatingSummary();

Method 3

ini_set('display_errors', 1);

error_reporting(E_ALL);

ini_set('max_execution_time', 0);

ini_set('memory_limit', '-1');

set_time_limit(0);


use MagentoFrameworkAppBootstrap;

include("app/bootstrap.php");

$bootstrap = Bootstrap::create(BP, $_SERVER);

$objectManager = $bootstrap->getObjectManager();

$state = $objectManager->get('MagentoFrameworkAppState');

$state->setAreaCode('frontend');

$_categoryFactory = $objectManager->get('MagentoCatalogModelCategoryFactory');

$storeManager = $objectManager->get('MagentoStoreModelStoreManagerInterface');

$scopeConfig = $objectManager->get('MagentoFrameworkAppConfigScopeConfigInterface');

    $sku = 'WT09'; // YOU PRODUCT SKU

    $objectManager = MagentoFrameworkAppObjectManager::getInstance();

    $product = $objectManager->create("MagentoCatalogModelProduct")->loadByAttribute('sku', $sku);

    $rating = $objectManager->get("MagentoReviewModelResourceModelReviewCollectionFactory");
    $collection = $rating->create()
            ->addStatusFilter(
                MagentoReviewModelReview::STATUS_APPROVED
            )->addEntityFilter(
                'product',
                $product->getId()
            )->setDateOrder();
    echo "<pre>";
    print_r($collection->getData());
    echo "<pre>";


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Comment