How to Get Product Collection by Filtering Multiple Category IDs in Magento 2

category-filtermagento2product-collection

I need to get product collection by filter multiple category ids.

Here is my code:

$catId = [2, 3, 5];
$productcollection = $objectmanager->create('\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory');

$categoryProducts = $productcollection->addAttributeToSelect('*')
    ->addAttributeToSort('position', 'ASC')
    ->addCategoriesFilter(['in' => $catId])
    ->addAttributeToFilter('color', ['in', $colorValues]);

But this code is not working.

Best Answer

Actually you pass the category ids array in addCategoriesFilter(['in' => $cat_ids]) that's why the error occur. Just Replace my code with your's

$cat_ids = "2,3,5";
$productcollection = $objectmanager->create('Magento\Catalog\Model\ResourceModel\Product\Collection');
$categoryProducts = $productcollection->addAttributeToSelect('*')->addAttributeToSort('position', 'ASC')->addCategoriesFilter(['in' => $cat_ids])->addAttributeToFilter('color', array('in',$colorvalues));

I hope this will help