Come nascondere il prodotto nuovo o in evidenza dalla home page se non è esaurito - Magento 1.7
-
12-12-2019 - |
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!
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) . ')'
);
.