So erhalten Sie behinderte Produkte in Magento 2

8

Gibt es eine Möglichkeit , deaktivierte Produkte in Magento 2 programmgesteuert abzurufen ?

Gael COAT
quelle

Antworten:

6

Sie können versuchen mit:

/** @var \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $_productCollectionFactory **/

$this->_productCollectionFactory->create()
    ->addAttributeToSelect('*')
    ->addAttributeToFilter('status', \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_DISABLED);

Müssen \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $_productCollectionFactoryin Ihren Konstruktor injizieren .

Khoa TruongDinh
quelle
4

Es wird empfohlen, die Servicevertragsschicht zu verwenden (siehe hier: Magento 2: Welche Vorteile bietet die Verwendung von Serviceverträgen? )

protected $_productRepository;

protected $_searchCriteriaBuilder;

public function __construct(
    \Magento\Catalog\Api\ProductRepositoryInterface $productRepository,
    \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder
) {
    $this->_productRepository = $productRepository;
    $this->_searchCriteriaBuilder = $searchCriteriaBuilder;
}

Dann können Sie in Ihrem Code Folgendes tun:

$searchCriteria = $this->_searchCriteriaBuilder->addFilter('status', \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_DISABLED, 'eq')->create();
$searchResults = $this->_productRepository->getList($searchCriteria);
$disabledProducts = $searchResults->getItems();
Raphael beim digitalen Pianismus
quelle