How to Get Categories From a Product in Magento 2

Magento 2 store owners have to deal a lot with products and categories.

In constant efforts to improve the store’s shopping experience, the admin may want to improve which categories a product is assigned to in Magento 2 store, update the categories, etc.

In order to do so, initially, one may need to get categories from a product in Magento 2. This report will further assist to update categories and products based on the business requirements.

Also read: How to Get All Categories in Magento 2 Using API?

Method to Get Categories From a Product in Magento 2:

<?php

use Magento\Catalog\Model\Product;
use Magento\Catalog\Model\ResourceModel\Category\CollectionFactory;

protected $product;
protected $categoryCollection;
public function __construct(Product $product, CollectionFactory $categoryCollection)
{
    $this->product = $product;
    $this->categoryCollection = $categoryCollection;
}

public function getCategoriesName($productId)
{
    $product = $this->product->load($productId);
    $categoryIds = $product->getCategoryIds();
    $categories = $this->categoryCollection->create()->addAttributeToSelect('*')->addAttributeToFilter('entity_id', $categoryIds);
    $categoryNames = [];
    foreach ($categories as $category) {
        $categoryNames[] = $category->getName();
    }
    $categoryName = implode(',', $categoryNames);
    return $categoryName;
}

That’s it.

Also, please share the post with Magento community via social media.

Thank you.

Table of Contents