Eu tenho o seguinte 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();
}
Quero adicionar um filtro de quantidade de estoque para filtrar os produtos, tentei:
$products = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('*');
**->addAttributeToFilter('qty', array("gt" => 0));**
Mas sem sucesso, alguma idéia?
$coll = Mage::getResourceModel('catalog/product_collection')
e usando o seu campo de junção eaddAttributeToFilter
. A coleção está carregando muito bem. Mas o filtro não está funcionando:->addAttributeToFilter('qty', array("gt" => 0))
. Olhando para$coll->getSelect()
, não há referência aqty
naWHERE
cláusula. Alguma idéia do porquê?MÃO ÚNICA:
SEGUNDA MANEIRA:
fonte
A 'PRIMEIRA MANEIRA' na resposta da @TBI Infotech não funcionará, pois o
->getAllIds()
método retorna o ID do estoque, não o ID do produto. Em vez disso, você precisa adicionar isso;fonte
$stock->getProductId()
?Maneira mais elegante:
fonte
Resposta que chegou atrasada, mas precisava trabalhar com esse código, então aqui está. Leva apenas algumas junções, funciona para produtos configuráveis e simples, não foi testado em relação a pacotes configuráveis.
fonte