Domanda

Sto mostrando nuovi prodotti in primo piano sulla mia home page.Mi piacerebbe mostrare solo prodotti che sono in magazzino.Se un prodotto è contrassegnato come nuovo o presentato verrà mostrato qui solo se è disponibile (ha magazzino maggiore di zero).

Questo requisito è solo per la home page, su altre pagine che vorrei mostrare i prodotti azionari.

Questo metodo non funziona: sistema / configurazione / catalogo / inventario / visualizzazione di prodotti azionari - No

Come posso farlo?

Grazie!

È stato utile?

Soluzione

Marius,

Si prega di Reindex da Admin> System> Gestione indice .

Fondamentalmente, è possibile filtrare qualsiasi raccolta di prodotti da

Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($collection);
.

Ma dipende da System/Configuration/Catalog/Inventory/Display Out of Stock Products -NO

Se non funziona, prova questo

/* $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) . ')'
        );
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top