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 referenciaqty
en laWHERE
clá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