magento自己带有导入导出功能

后台system-->import/export-->Advanced Profiles

进入后点击add new profiles

就可以新建一个规则了

Profile Name *是名字

Actions XML *是对应的参数

譬如例子:

<action type="dataflow/convert_adapter_io" method="load">
    <var name="type">file</var>
    <var name="path">var/import</var>
    <var name="filename"><![CDATA[configproduct.csv]]></var>
    <var name="format"><![CDATA[csv]]></var>
</action>

<action type="dataflow/convert_parser_csv" method="parse">
    <var name="delimiter"><![CDATA[,]]></var>
    <var name="enclose"><![CDATA["]]></var>
    <var name="fieldnames">true</var>
    <var name="store"><![CDATA[0]]></var>
    <var name="number_of_records">1</var>
    <var name="root_catalog_id"><![CDATA[2]]></var>
    <var name="reimport_images"><![CDATA[true]]></var>
    <var name="deleteall_andreimport_images"><![CDATA[true]]></var>
    <var name="exclude_images"><![CDATA[false]]></var>
    <var name="exclude_gallery_images"><![CDATA[false]]></var>
    <var name="decimal_separator"><![CDATA[.]]></var>
    <var name="adapter">catalog/convert_adapter_productimport</var>
    <var name="method">parse</var>
</action>
解析:

 

file是文件类型

path是csv文件路径

filename是csv文件名字

format是csv格式

后面的配置是相应的文件格式

用他,可以导入您想要导入的数据,也就是magento实现了这个csv导入的框架,在相应的文件

catalog/convert_adapter_productimport

public function saveRow( array $importData )函数里面$importData

这个数据就是csv文件中的一行,每一列是这个数组中的一个元素!

然后使用magento的机制保存就可以了

上面我只是大致的一说,具体的研究,您可以下载一个免费的magento导入导出插件。然后研究里面的代码,然后就是研究如何插入数据,譬如写一个给现有产品批量导入tag的函数,例子如下:

public function saveRow( array $importData )
    {
        // store tag_name products_sku
        //var_dump($importData);
        $product = $this->getProductModel();
        $tagName = $importData['tag_name'];


        if ( isset( $importData['products_sku'] ) && $importData['products_sku'] !="" ) {
        
            
            $products_sku = explode(',', $importData['products_sku']);

            $tagModel = Mage::getModel('tag/tag');
                $result = $tagModel->loadByName($tagName);
                $tagModel->setName($tagName)
                                    ->setStoreId($importData['store'])
                                    ->setStatus(1)
                                    ->save();

            foreach ($products_sku as $product_sku) {
                try {
                
                
                        //    echo $product -> getIdBySku( $product_sku )."###";        
                $tagRelationModel = Mage::getModel('tag/tag_relation');
                /*$tagRelationModel->loadByTagCustomer($product -> getIdBySku( $importData['sku'] ), $tagModel->getId(), '13194', Mage::app()->getStore()->getId());*/
                
                $tagRelationModel->setTagId($tagModel->getId())
                        //->setCustomerId(trim($commadelimiteddata[0]))
                        ->setProductId($product -> getIdBySku( $product_sku ))
                        ->setStoreId($importData['store'])
                        ->setCreatedAt( now() )
                        ->setActive(1)
                        ->save();
            
                }
                catch ( Exception $e ) {
                }    
                    
            }

            $tagModel->aggregate();
        }


       
        return true;
    }

 

学习magento是个体力活,呵呵!

都弄好后,run。。。。