2012-02-08 58 views
0

我想做一个cronjob出口一个收集到csv为ciao和kelkoo比较价格。如何将收藏集导出到Magento的csv中?

我在哪里可以看到Magento核心的一个例子?

我看到在未来的位置:

Mage/Dataflow/Model/Batch/export.php 

,但这个文件鸵鸟政策找到什么。

也许可以看到如何在工作:

Mage/importexport/ 

回答

4

看一看Mage_Adminhtml_Block_Widget_Grid::getCsv()Mage_Adminhtml_Block_Widget_Grid::getCsvFile()作为一个例子。
以下是第一个的相关部分作为示例(由我添加的注释)。

public function getCsv() 
{ 
    $csv = ''; 
    $this->_isExport = true; 
    $this->_prepareGrid(); // add the attributes to load, maybe required filters 
    $this->getCollection()->getSelect()->limit(); // only unique records 
    $this->getCollection()->setPageSize(0); // no paging, all records matching the set filters 
    $this->getCollection()->load(); 
    $this->_afterLoadCollection(); // load additional data on the collection items if needed 

    $data = array(); 
    // This foreach block adds headers to the columns 
    foreach ($this->_columns as $column) { 
     if (!$column->getIsSystem()) { 
      $data[] = '"'.$column->getExportHeader().'"'; 
     } 
    } 
    $csv.= implode(',', $data)."\n"; 

    // $column is an instance of Mage_Adminhtml_Block_Widget_Grid_Column 
    // Just a wrapper for getting the values from the collection items 
    foreach ($this->getCollection() as $item) { 
     $data = array(); 

     foreach ($this->_columns as $column) { 
      if (!$column->getIsSystem()) { 
       $data[] = '"' . str_replace(array('"', '\\'), array('""', '\\\\'), 
        $column->getRowFieldExport($item)) . '"'; 
      } 
     } 
     $csv.= implode(',', $data)."\n"; 
    } 

    // Grid totals are only used by reports 
    if ($this->getCountTotals()) 
    { 
     $data = array(); 
     foreach ($this->_columns as $column) { 
      if (!$column->getIsSystem()) { 
       $data[] = '"' . str_replace(array('"', '\\'), array('""', '\\\\'), 
        $column->getRowFieldExport($this->getTotals())) . '"'; 
      } 
     } 
     $csv.= implode(',', $data)."\n"; 
    } 

    return $csv; 
} 
+0

对我很有帮助。谢谢!! – davidselo 2012-02-08 14:44:56