Infocurci - programmatore Php Roma
Infocurci - programmatore Php Roma
Questo sito non lascia nessun cookie sul vostro pc, consuma pochissimi kb, non profila nulla e non raccoglie dati personali. Siete i benvenuti.

Magento : Estrarre tutti i prodotti del catalogo

Ecco gli snippet di codice necessari per estrarre, in Magento, l'elenco di tutti i prodotti. Presentiamo anche lo snippet necessario in caso di un catalogo basato su prodotti flat.

Magento

Una delle funzioni più frequenti con cui abbiamo a che fare quando sviluppiamo su Magento, è la selezione dei prodotti del catalogo.

Se non abbiamo impostato i prodotti FLAT, è sufficiente utilizzare questo snippet:

$products = Mage::getModel('catalog/product')->getCollection();

Sono supportati anche i filtri, ad esempio questo snippet estrae tutti i prodotti visibili sia in catalogo che in ricerca:

$products = Mage::getResourceModel('catalog/product_collection')->addAttributeToFilter('visibility', array('eq' =>Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH));

Una volta che abbiamo estratto la collezione, possiamo facilmente scorrere i risultati con un foreach:

foreach($products as $product){
//operazioni sul prodotto
}

Tutto questo funziona se non abbiamo impostato i nostri prodotti come Flat. In questo caso infatti una chiamata a getCollection() ritorna automaticamente i prodotti visibili e attivi, senza bisogno di aggiungere l'apposito filtro. Si tratta di un comportamento desiderato nella maggior parte dei casi, ma non quando abbiamo l'esigenza di intervenire anche su prodotti -magari temporaneamente- fuori catalogo.

In questo caso una soluzione è quella di impostare l'app come Admin, astraendo cosi dai vari filtri che automaticamente cercano i prodotti di uno store:

$app = Mage::app('admin');

invece di

$app = Mage::app('default');