从我的自定义模块magento导入自定义csv

时间:2014-05-08 03:50:10

标签: magento csv import

我是magento的新手,我正在尝试从自定义模块导入csv文件。我会试着解释一下。我创建了一个模块来输入区域信息(即区域名称,成本等),它完美地工作,我可以添加新区域。现在我试图添加一个" import"来自wihch的按钮我可以导入一个csv文件,其中包含有关多个区域的信息,该信息将保存在magento数据库的my region表中.FYI我使用的是平台。

到现在为止,我可以在Grid视图旁边添加一个按钮" Add New"点击时,它会重定向到导入功能。在此之后,我无法弄清楚要做什么,我认为选择文件菜单应该看起来选择我的csv,但我无法达到它。任何人都可以帮助。任何帮助都是适合的。

Thanx提前

1 个答案:

答案 0 :(得分:1)

我假设你有自定义实体的资源模型(否则它不会工作) 资源模型应放在[Namespace]/[Module]/Model/Resource/[Entity].php 在该资源模型中创建此方法

public function saveImportData(array $data){
    if (!empty($data)) {
        $columns = array('region_name', 'cost'); //add here all your column names except the autoincrement column.
        $this->_getWriteAdapter()->insertOnDuplicate($this->getMainTable(), $data, $columns);
    }
    return $this;
}

现在,在您上传文件的操作中,解析该文件并创建一个包含要插入的行的数组。

您的数组应如下所示:

$toImport = array(
    array('region_name' => 'Region 1', 'cost'=>'12.99', ...rest of the fields here), 
    array('region_name' => 'Region 2', 'cost'=>'17.99', ...rest of the fields here), 
    ....
)

现在你只需要在控制器中调用

Mage::getResourceModel('[module]/[entity]')->saveImportData($toImport);