Magento 导出产品

这里使用的是后台 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表格中,然后稍加编辑就可以使用相应的导入产品。

(完)

转载于:https://my.oschina.net/liufeng815/blog/788365

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值