2012-02-08 3 views
0

私は、ciaoとkelkooの価格比較のためにcsvにcolletionをエクスポートするためにcronjobを作りたがっています。コレクションを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

関連する問題