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筛选类别表
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的一个实例上运行了它,它正在工作。这可能是一个他在哪里运行的问题。或者,这可能是一个类别如何与他系统上的产品关联的问题。我想说的是,提供替代方案不会让人们理解他们的问题,仅此而已