Tengo el siguiente código:
umask(0);
Mage::app();
$category =new Mage_Catalog_Model_Category();
$category->load($cid);
if ($status == "2") {
$products = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('*')
->addFieldToFilter('status',Mage_Catalog_Model_Product_Status::STATUS_DISABLED);
$products->load();
}
if ($status == "1") {
$products = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('*');
$products->load();
}
Quiero agregar un filtro de cantidad de stock para filtrar los productos, probé:
$products = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('*');
**->addAttributeToFilter('qty', array("gt" => 0));**
Pero no tiene éxito, ¿alguna idea?

$coll = Mage::getResourceModel('catalog/product_collection')y usando su campo de unión yaddAttributeToFilter. La colección se está cargando bien. Pero el filtro no está funcionando:->addAttributeToFilter('qty', array("gt" => 0)). Mirando$coll->getSelect(), no hay referenciaqtyen laWHEREcláusula. ¿Alguna idea de por qué?DE UNA SOLA MANO:
SEGUNDA MANERA:
fuente
La 'PRIMERA MANERA' en la respuesta de @TBI Infotech no funcionará, ya que el
->getAllIds()método devuelve la identificación del stock, no la identificación del producto. En su lugar, necesita agregar esto;fuente
$stock->getProductId()?La forma más elegante:
fuente
Sin embargo, al llegar tarde la respuesta, tuve que trabajar en este código, así que aquí tienes. Solo toma unas pocas combinaciones, funciona para productos configurables y simples, no se ha probado en paquetes.
fuente