Frage

A hat eine Frage zu einigen grundlegenden Dingen der Filterung und Begrenzung von Produktsammlungen. Ich habe im Web nach der Lösung gesucht, aber nichts hat funktioniert. Ich hoffe, hier etwas Hilfe zu bekommen. Die Aufgabe besteht also darin, die Ergebnisse mit der Funktion Limit () zu begrenzen. Ich möchte die letzte Produkt -ID festlegen und die nächsten 100 Produkte abfragen. Der Code wird von Cron Jobs aufgerufen und ich benötige jedes Mal eine Lösung für Abfragen, wenn die nächste Produktnummer von Produkten gefragt wird. Hier mein Code:

$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);

Ich habe auch einige Produkte ein Attributsatz (mit dem Attributsatz). Es wäre schön, nur die Produkte mit dem Attribut abzufragen (zugewiesene Attribut -Set). Das funktioniert nicht

         ->addFieldToFilter('search_sku_textfield', array("null" => true))
War es hilfreich?

Lösung

Was ist mit so etwas:

    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);

Andere Tipps

Hey, ich denke du brauchst so etwas. JUS Finden Sie die Produkte, die eine ID haben, die größer als die aktuelle bereitgestellte ID ist, und setzen Sie die Seitengröße auf 100 fest. Es wird die nächsten 100 Datensätze von der aktuellen zurückgegeben.

Denken Sie auch daran, auch die Produktreihenfolge festzulegen.

$_product->addFieldToFilter('entity_id',array('gt' => $productId))
->setOrder('entity_id')
->setPageSize(100);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top