Domanda

a una domanda al alcune cose di base di filtrare e limitare collezioni di prodotti. Ho cercato il web per la soluzione, ma niente ha funzionato. Spero di avere un aiuto qui. Quindi, il compito è quello di limitare i risultati con la funzione di limite (). Quello che voglio è quello di impostare l'ultimo prodotto di id e per interrogare i prossimi 100 prodotti. Il codice è chiamato da cron jobs e ho bisogno di una soluzione per interrogare ogni volta che il gruppo successivo di prodotti. Ecco il mio codice:

$simpleProducts = Mage::getModel('catalog/product')->getCollection()
        ->addAttributeToFilter('type_id', array('eq' => 'simple'))
        ->addAttributeToFilter('sku', array("notnull" => true))
        ->addFieldToFilter('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE)
        ->addFieldToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED)
        ->addAttributeToSelect('entity_id')
        ->addAttributeToSelect('search_sku_textfield')
        ->addAttributeToSelect('sku')
        ->limit(100,$lastProdId);

Ho anche su alcuni prodotti di un set di attributi (con set di attributi). Sarebbe bello per interrogare solo i prodotti che hanno l'attributo (assegnato truh set di attributi). Questo non funziona

         ->addFieldToFilter('search_sku_textfield', array("null" => true))
È stato utile?

Soluzione

Che dire qualcosa di simile:

    Mage::getResourceModel('catalog/product_collection')
        ->addAttributeToFilter('type_id', array('eq' => 'simple'))
        ->addAttributeToFilter('sku', array("notnull" => true))
        ->addFieldToFilter('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE)
        ->addFieldToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED)
        //->addAttributeToSelect('entity_id')   // you don't need this
        ->addAttributeToSelect('search_sku_textfield')
        //->addAttributeToSelect('sku')         // static attributes are always loaded
        ->addFieldToFilter('entity_id', array('gt' => $productId))
        ->addFieldToFilter('attribute_set_id', $attributeSetId)
        ->setOrder('entity_id')
        ->setPageSize(100);

Altri suggerimenti

Hey Penso che è necessario qualcosa di simile. trovare Jus i prodotti che hanno una maggiore id della corrente id fornito e set dimensioni della pagina a 100 tornerà prossimi 100 record da quello attuale.

Ricordate di impostare l'ordine del prodotto anche.

$_product->addFieldToFilter('entity_id',array('gt' => $productId))
->setOrder('entity_id')
->setPageSize(100);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top