¿Cómo obtener solo productos deshabilitados en Magento 2 Controller?
Aug 21 2020
Cómo obtener solo productos deshabilitados En el controlador Tengo todos los productos
<?php
namespace Mageplaza\HelloWorld\Controller\Index;
use Magento\Catalog\Model\Product\Attribute\Source\Status;
use Magento\Catalog\Model\ResourceModel\Product\Action;
class Index extends \Magento\Framework\App\Action\Action
{
protected $_pageFactory; private $scopeConfig;
protected $_productCollectionFactory; private $productAction;
public function __construct(
Action $productAction, \Magento\Framework\App\Action\Context $context,
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Framework\View\Result\PageFactory $pageFactory,
\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory ){ $this->productAction = $productAction; $this->_pageFactory = $pageFactory; $this->scopeConfig = $scopeConfig; $this->_productCollectionFactory = $productCollectionFactory; return parent::__construct($context);
}
public function execute()
{
$product_ids = []; $onlydisproduct = $this->_productCollectionFactory->create(); $onlydisproduct->addAttributeToSelect('*');
$onlydisproduct->setFlag('has_stock_status_filter', false); foreach ($onlydisproduct as $key => $value) {
$product_ids[] = $value->getId();
}
//print_r($product_ids); die('aaaa'); //return $this->_pageFactory->create();
}
}
Captura de pantalla del producto

Respuestas
RohanHapani Aug 21 2020 at 09:54
Reemplace este código a continuación en su controlador y limpie la caché:
$product_ids = []; $onlydisproduct = $this->_productCollectionFactory->create() ->addAttributeToSelect('*') ->addAttributeToFilter('status', \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_DISABLED); foreach ($onlydisproduct as $key => $value) {
$product_ids[] = $value->getId();
}
echo "<pre/>";
print_r($product_ids);
exit;
DhirenVasoya Aug 21 2020 at 10:05
Reemplace su código como este:
$onlydisproduct = $this->_productCollectionFactory->create();
$onlydisproduct->addAttributeToSelect('*'); $onlydisproduct->addAttributeToFilter('status', \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_DISABLED);