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。。。。