製品コレクションを制限します
-
22-10-2019 - |
質問
a製品コレクションのフィルタリングと制限の基本的なものに質問があります。ソリューションをWebで検索しましたが、何も機能しませんでした。ここで助けを得たいと思っています。したがって、タスクは、limit()関数で結果を制限することです。私が望むのは、最後の製品IDを設定し、次の100個の製品を照会することです。このコードはCron Jobsによって呼び出され、次の製品の束を照会するたびにクエリするソリューションが必要です。ここに私のコード:
$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);
一部の製品には、属性セット(属性セット付き)もあります。属性を持つ製品(属性セットに割り当てられた)だけをクエリするのは素晴らしいことです。これはうまくいきません
->addFieldToFilter('search_sku_textfield', array("null" => true))
解決
このようなことはどうですか:
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);
他のヒント
ねえ、あなたはこのようなものが必要だと思います。 jusは、IDが現在提供されているIDよりも大きく、ページサイズを100に設定する製品を見つけます。現在のレコードから次の100レコードを返します。
製品の注文も設定することを忘れないでください。
$_product->addFieldToFilter('entity_id',array('gt' => $productId))
->setOrder('entity_id')
->setPageSize(100);
所属していません magento.stackexchange