Como ocultar produtos novos ou em destaque da página inicial se estiverem esgotados - Magento 1.7
-
12-12-2019 - |
Pergunta
Estou mostrando produtos novos e em destaque em minha página inicial.Gostaria de mostrar apenas produtos que estão em estoque.Se um produto estiver marcado como novo ou em destaque ele só será mostrado aqui se estiver em estoque (tem estoque maior que zero).
Este requisito é apenas para a página inicial, em outras páginas gostaria de mostrar produtos fora de estoque.
Este método não funciona:Sistema/Configuração/Catálogo/Inventário/Exibir Produtos Fora de Estoque - NÃO
Como eu posso fazer isso?
Obrigado!
Solução
Mário,
Reindexe de admin>Sistema>Gerenciamento de índice.
Basicamente, você pode filtrar qualquer coleção de produtos por
Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($collection);
mas depende System/Configuration/Catalog/Inventory/Display Out of Stock Products -NO
Se não funcionar, tente isso
/* $collection=Your Product Collection */
$cond = array(
'{{table}}.use_config_manage_stock = 0 AND {{table}}.manage_stock=1 AND {{table}}.is_in_stock=1',
'{{table}}.use_config_manage_stock = 0 AND {{table}}.manage_stock=0',
);
$cond[] = '{{table}}.use_config_manage_stock = 1 AND {{table}}.is_in_stock=1';
$collection->joinField(
'inventory_in_stock',
'cataloginventory/stock_item',
'is_in_stock',
'product_id=entity_id',
'(' . join(') OR (', $cond) . ')'
);