【发布时间】:2012-11-03 21:14:05
【问题描述】:
我必须开发一个 Magento 插件来导出产品。 我知道其他插件已经存在,但我必须这样做。
出口产品并不难,我使用类似的东西(浓缩):
public function __construct()
{
$this->_productModel = Mage::getModel('catalog/product');
//Other actions ..
}
public function _toHtml()
{
$products = $this->_productModel->getCollection()
->addStoreFilter($storeId)
->addAttributeToFilter('type_id',array('in'=>$_types))
->joinTable('cataloginventory/stock_item', 'product_id=entity_id', array('qty'=>'qty','is_in_stock' => 'is_in_stock'), $this->_getStockSQL(), 'inner');
foreach($product_list as $product)
{
$_p = $this->_productModel->load($product);
$p = $_p->getData();
//Export data, parse and return it ..
}
}
如您所见,我使用私有变量来存储 Mage::getModel('catalog/product') 对象。 我想每次调用这个方法都会消耗很多资源,这就是我想要存储这个变量的原因。
但是在这个过程中,如果产品是可配置产品的子产品,那么数据就是父产品的数据。
那么,我可以清除这个对象吗? 叫 Mage::getModel('catalog/product') 他需要很多资源? 我可以强制它加载子数据吗?
谢谢 ;)
【问题讨论】: