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!

Foi útil?

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) . ')'
        );
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top