i am trying to filter inStock product in Magento 2 Using I am trying to filter inStock product in Magento 2 Using
\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $collectionFactory,
by
$collection = $this->_collectionFactory->create();
$collection->addAttributeToSelect('*');
//$collection->addAttributeToFilter('rand()');
//$collection->addAttributeToFilter('flavor',$flavorId);
$collection->addCategoriesFilter(['in' => $searchCategory]);
$collection->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()]);
$collection->setVisibility($this->productVisibility->getVisibleInSiteIds());
$collection->getSelect()->orderRand();
$collection->setPageSize(3);
$collection->getSelect()->orderRand();
$collection->joinField(
'qty', 'csvp_cataloginventory_stock_item', 'qty', 'product_id=entity_id', '{{table}}.stock_id=2', 'left'
);
//$collection->joinField('stock_item', 'cataloginventory_stock_item', 'qty', 'product_id=entity_id', 'qty=0');
return $collection;
but the result is also shown out of stock products. can any one suggest me how to get only in stock products collection.