最模板 - 外贸网站建设,外贸网站模板

最模板

当前位置: 首页 > Magento > Magento教程 >

Magento对csv表格的导入功能 高级自定义部分!

时间:2014-06-21 13:03来源:未知 作者:最模板zuimoban 点击:
magento自己带有导入导出功能 后台system--import/export--Advanced Profiles 进入后点击add new profiles 就可以新建一个规则了 Profile Name *是名字 Actions XML *是对应的参数 譬如例子: [html] view plaincopyp

magento自己带有导入导出功能

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

进入后点击add new profiles

就可以新建一个规则了

Profile Name *是名字

Actions XML *是对应的参数

譬如例子:

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
 
  1. <action type="dataflow/convert_adapter_io" method="load">  
  2.     <var name="type">file</var>  
  3.     <var name="path">var/import</var>  
  4.     <var name="filename"><![CDATA[configproduct.csv]]></var>  
  5.     <var name="format"><![CDATA[csv]]></var>  
  6. </action>  
  7.   
  8. <action type="dataflow/convert_parser_csv" method="parse">  
  9.     <var name="delimiter"><![CDATA[,]]></var>  
  10.     <var name="enclose"><![CDATA["]]></var>  
  11.     <var name="fieldnames">true</var>  
  12.     <var name="store"><![CDATA[0]]></var>  
  13.     <var name="number_of_records">1</var>  
  14.     <var name="root_catalog_id"><![CDATA[2]]></var>  
  15.     <var name="reimport_images"><![CDATA[true]]></var>  
  16.     <var name="deleteall_andreimport_images"><![CDATA[true]]></var>  
  17.     <var name="exclude_images"><![CDATA[false]]></var>  
  18.     <var name="exclude_gallery_images"><![CDATA[false]]></var>  
  19.     <var name="decimal_separator"><![CDATA[.]]></var>  
  20.     <var name="adapter">catalog/convert_adapter_productimport</var>  
  21.     <var name="method">parse</var>  
  22. </action>  

解析:

 

 

file是文件类型

path是csv文件路径

filename是csv文件名字

format是csv格式

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

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

catalog/convert_adapter_productimport

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

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

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

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

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
 
  1. <?php  
  2. /**  
  3.  * Magento  
  4.  *  
  5.  * NOTICE OF LICENSE  
  6.  *  
  7.  * This source file is subject to the Open Software License (OSL 3.0)  
  8.  * that is bundled with this package in the file LICENSE.txt.  
  9.  * It is also available through the world-wide-web at this URL:  
  10.  * http://opensource.org/licenses/osl-3.0.php  
  11.  * If you did not receive a copy of the license and are unable to  
  12.  * obtain it through the world-wide-web, please send an email  
  13.  * to license@magentocommerce.com so we can send you a copy immediately.  
  14.  *  
  15.  * DISCLAIMER  
  16.  *  
  17.  * Do not edit or add to this file if you wish to upgrade Magento to newer  
  18.  * versions in the future. If you wish to customize Magento for your  
  19.  * needs please refer to http://www.magentocommerce.com for more information.  
  20.  *  
  21.  * @category    Mage  
  22.  * @package     Mage_Catalog  
  23.  * @copyright   Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)  
  24.  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)  
  25.  */  
  26.   
  27.   
  28. class Mage_Catalog_Model_Convert_Adapter_Productimport  
  29.     extends Mage_Eav_Model_Convert_Adapter_Entity  
  30. {  
  31.      
  32.      
  33.    public function parse()  
  34.     {  
  35.         $batchModel = Mage::getSingleton('dataflow/batch');  
  36.         /* @var $batchModel Mage_Dataflow_Model_Batch */  
  37.   
  38.         $batchImportModel = $batchModel->getBatchImportModel();  
  39.         $importIds = $batchImportModel->getIdCollection();  
  40.   
  41.         foreach ($importIds as $importId) {  
  42.             //print '<pre>'.memory_get_usage().'</pre>';  
  43.             $batchImportModel->load($importId);  
  44.             $importData = $batchImportModel->getBatchData();  
  45.   
  46.             $this->saveRow($importData);  
  47.         }  
  48.     }  
  49.      
  50.      
  51.    public function saveRow( array $importData )  
  52.     {  
  53.         $default_type = 1; //amazon  
  54.         $default_status = 1; //weicaiji  
  55.           
  56.         if(!isset($importData['type'])){  
  57.             $type = $default_type;  
  58.         }else{  
  59.             $type = $importData['type'];  
  60.         }  
  61.         $create_date_time = Mage::getModel("core/date")->date("Y-m-d H:i:s");  
  62.         if ( isset( $importData['sku'] ) && $importData['sku'] !="" ) {  
  63.             $sku = $importData['sku'];  
  64.             $no = $importData['no'];  
  65.             $pro_sku = Mage::getModel("getreview/sku");  
  66.             $pro = $pro_sku ->getCollection()  
  67.                             ->addFieldToFilter("sku",array("eq"=>$type))  
  68.                             ->addFieldToFilter("no",array("eq"=>$no))  
  69.                             ->addFieldToFilter("type",array("eq"=>$type))  
  70.                             ->getFirstItem()  
  71.                         ;  
  72.             if($pro->getId()){  
  73.                 $this->addException(  
  74.                        "this sku:".$sku.",no:".$no.",type:".$type." is exist;"  
  75.                     );  
  76.                 return ture;  
  77.             }  
  78.             try {  
  79.                 $pro_sku->setType($type)  
  80.                         ->setStatus($default_status)  
  81.                         ->setCreateDateTime($create_date_time)  
  82.                         ->setSku($sku)  
  83.                         ->setNo($no)  
  84.                         ->save()  
  85.                         ;  
  86.               
  87.             }catch ( Exception $e ) {  
  88.                 
  89.                       
  90.             }  
  91.   
  92.              
  93.         }  
  94.   
  95.   
  96.          
  97.         return true;  
  98.     }  
  99.       
  100. }  
  101.  

(责任编辑:最模板)
------分隔线----------------------------
栏目列表
推荐内容