Php magento:显示禁用的产品

Php magento:显示禁用的产品,php,magento,Php,Magento,我使用了以下代码:- $category_id = 5; $products = Mage::getModel('catalog/category') ->load($category_id) ->getProductCollection() ->addAttributeToSelect('*') ->addAttributeToFilter('status',array( 'eq' => Mage_Catalog

我使用了以下代码:-

$category_id = 5;

$products = Mage::getModel('catalog/category')    
->load($category_id)    
->getProductCollection()    
->addAttributeToSelect('*')    
->addAttributeToFilter('status',array(    
     'eq' => Mage_Catalog_Model_Product_Status::STATUS_DISABLED)
);
它不起作用。这是显示空结果

请告诉我如何解决这个问题

提前感谢。

以下是我的解决方案:

  • 首先获得一个产品集合
  • 为禁用的产品添加筛选器
  • 加入类别表
  • 为特定类别id筛选类别表
如果要在magento之外运行脚本,这是一个工作示例:
require_once('app/Mage.php');
umask(0);
Mage::app();

// set category id
$categoryIds = [4]; // add child category id's if you want to support child categories also

$productCollection = Mage::getModel('catalog/product')->getCollection();
$productCollection->addAttributeToSelect('*');
$productCollection->addAttributeToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_DISABLED);
$productCollection->joinField('category_id','catalog/category_product','category_id','product_id=entity_id',null,'left')
    ->addAttributeToFilter('category_id', array('in' => $categoryIds))
    ->addAttributeToSelect('*');
$filteredProducts = $productCollection->getItems();

foreach ($filteredProducts as $product) {
    echo $product->getId() . PHP_EOL;
}
在magento内部:

// set category id
$categoryIds = [4]; // add child category id's if you want to support child categories also

$productCollection = Mage::getModel('catalog/product')->getCollection();
$productCollection->addAttributeToSelect('*');
$productCollection->addAttributeToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_DISABLED);
$productCollection->joinField('category_id','catalog/category_product','category_id','product_id=entity_id',null,'left')
    ->addAttributeToFilter('category_id', array('in' => $categoryIds))
    ->addAttributeToSelect('*');
$filteredProducts = $productCollection->getItems();
如果要支持多个类别,只需将id添加到数组
$categoryID


如果您有问题,请随时添加评论。如果你得到它的工作,请让我知道,并添加您的magento版本以及。谢谢

您是将其作为外部脚本运行还是在项目内部运行?您给出了一种替代方法,但问题中的代码应该给出相同的结果result@RabeeAbdelWahab不,问题中的代码不起作用。。。为什么他会问他是否有一个有效的解决方案?我在Magento的一个实例上运行了它,它正在工作。这可能是一个他在哪里运行的问题。或者,这可能是一个类别如何与他系统上的产品关联的问题。我想说的是,提供替代方案不会让人们理解他们的问题,仅此而已