यह आपके लिए काम करना चाहिए:
$collection = $this->collectionFactory->create();
$collection->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()]);
$collection->setVisibility($this->productVisibility->getVisibleInSiteIds());
प्रयुक्त कक्षाएं हैं:
/**
* @var \Magento\Catalog\Model\Resource\Product\CollectionFactory
*/
protected $collectionFactory;
/**
* @var \Magento\Catalog\Model\Product\Attribute\Source\Status
*/
protected $productStatus;
/**
* @var \Magento\Catalog\Model\Product\Visibility
*/
protected $productVisibility;
संभावित स्थिति या दृश्यता मान प्राप्त करने के लिए अन्य तरीकों की जाँच करने के लिए इन कक्षाओं की समीक्षा करें।
हालांकि, रिपॉजिटरी की समीक्षा अवधारणा, जहां तक मैंने देखा कि मैगेंटो 2 संग्रह का उपयोग करने के बजाय उत्पाद डेटा तक पहुंचने के लिए रिपॉजिटरी का उपयोग करने की सिफारिश करता है। उदाहरण के लिए:
$searchCriteria = $this->searchCriteriaBuilder->create();
$products = $this->productRepository->getList($searchCriteria)->getItems();