这里使用的是后台 System / Imprt/Export / Export 这块的model,详情去看代码
function run($sku){
$sku = trim($sku);
return $sku;
}
$skus = array_map("run", file('sku.txt')); //sku.txt 给出需要产品的sku
require_once('app/Mage.php');
Mage::app('default');
foreach($skus as $sku){
$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku);
if($product){
$params = array('entity'=>'catalog_product', 'file_format'=>'csv', 'attribute_code'=>'sku', 'export_filter'=>array('sku'=>''.$sku.'')); //参数
$model = Mage::getModel('importexport/export');
$model->setData($params);
echo $model->export();
}
}
这里有个问题是取产品集合的时候会判断是否使用索引数据,如果是后台或者索引不是READY的状态,就不会使用索引,这里既然拿出来了,也就会去使用索引的类,那导出产品需要的一些方法就不存在,就会报错。 解决: app/code/local
class Mage_Catalog_Model_Resource_Product_Export extends Mage_Catalog_Model_Resource_Product_Collection
{
public function isEnabledFlat()
{
return false;
}
}
修改导出使用的产品集合类
#class Mage/ImportExport/Model/Export/Entity/Product.php
public function export()
{
...
$collection = $this->_prepareEntityCollection(Mage::getResourceModel('catalog/product_export'));//
...
}
可以使用命令行运行让输出的内容保存到csv表格中,然后稍加编辑就可以使用相应的导入产品。
(完)