すべてのカテゴリをcsvにエクスポートする方法はありますか?
magento以外のストアから新しいビルドにデータを移動しています。
すべてのカテゴリをcsvにエクスポートする方法はありますか?
magento以外のストアから新しいビルドにデータを移動しています。
回答:
これはかなり簡単に書けます。のようなphpファイルを作成しますexport.php
。
<?php
require("app/Mage.php"); // load the main Mage file
Mage::app(); // not run() because you just want to load Magento, not run it.
// load all of the active categories in the system and include all attributes
$categories = Mage::getModel('catalog/category')
->getCollection()
->addAttributeToSelect('*')
->addIsActiveFilter();
$export_file = "var/export/categories.csv"; // assumes that you're running from the web root. var/ is typically writable
$export = fopen($export_file, 'w') or die("Permissions error."); // open the file for writing. if you see the error then check the folder permissions.
$output = "";
$output = "id,name\r\n"; // column names. end with a newline.
fwrite($export, $output); // write the file header with the column names
foreach ($categories as $category) {
$output = ""; // re-initialize $output on each iteration
$output .= $category->getId().','; // no quote - integer
$output .= '"'.$category->getName().'",'; // quotes - string
// add any other fields you want here
$output .= "\r\n"; // add end of line
fwrite($export, $output); // write to the file handle "$export" with the string "$output".
}
fclose($export); // close the file handle.
同様の方法でインポートMage::getModel('catalog/category')
を作成することもできますが、作成したファイルを解析するときに、マジックセットと一緒にフィールドに入力して新しいカテゴリを作成します。
@seanbreedenの回答には熱心ではありませんでした。カテゴリの説明をエクスポートしていて、HTMLがある場合や、説明などのカテゴリのフィールドのいずれかで返される場合は、正しく機能しません。
これが私の解決策です(ブラウザでアクセスしてダウンロードします):
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=report.csv');
// Load the Magento core
require_once 'app/Mage.php';
umask(0);
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$userModel = Mage::getModel('admin/user');
$userModel->setUserId(0);
// Load the category collection
$categories = Mage::getModel('catalog/category')
->getCollection()
->addAttributeToSelect('*')
->addIsActiveFilter();
// create a file pointer connected to the output stream
// can change this so it downloads it to a file on the server
$output = fopen('php://output', 'w');
// output the column headings
fputcsv($output, array('id', 'name', 'description', 'title', 'meta_description'));
foreach ($categories as $category) {
$id = $category->getId();
$name = $category->getName();
$description = $category->getDescription();
$title = $category->getMetaTitle();
$metaD = $category->getMetaDescription();
fputcsv($output, array($id, $name, $description, $title, $metaD));
}
使用できますVarien_File_Csv::saveData($file, $data)
。私はその簡単に、その後使用して推測しfopen
、fwrite
直接...、。また、新しいエクスポートディレクトリを作成するときに、権限に注意する必要はありません。フィールドを追加するには、$columns
変数を変更するだけです。
これはあなたのCSVをに保存します var/export/...
require_once('app/Mage.php');
umask(0);
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
/** @var array $columns matches atttribute code*/
$columns = array(
'entity_id',
'path',
'name',
'description',
);
$data = array(
$columns,
);
$categories = Mage::getResourceModel('catalog/category_collection')
->addAttributeToSelect($columns);
//->addIsActiveFilter();
foreach ($categories as $category) {
$row = array();
foreach ($columns as $column) {
$row[] = $category->getData($column);
}
$data[] = $row;
}
$path = Mage::getBaseDir('var') . DS . 'export' . DS . 'your_directory';
$file = 'categories.csv';
// create directory under var/export
$io = new Varien_Io_File();
$io->checkAndCreateFolder($path);
$csv = new Varien_File_Csv();
$csv->setEnclosure('|'); # change enclosure to work with html
$csv->saveData($path . DS. $file, $data);
アウト ...
|entity_id|,|path|,|name|,|description|
|1|,|1|,|Root Catalog|,||
|2|,|1/2|,|Default Category|,||
|4|,|1/2/4|,|Dogs|,|<span class="empty"><span>|
Matt、magentoでは、csvのエクスポート/インポートカテゴリである多くの拡張機能を見つけることができます。これを使用して、要件を満たすことができます。
私の見解では、この目的のための無料の拡張機能は次の場合に最適です:
PaiD:
MagentoConnectionのその他の拡張機能はこちら
回答を受け入れたとしても、すべての製品をCSVにエクスポートし、Excelを使用してカテゴリフィールドを区別するのが最も簡単な方法だと思います。
たまにエクスポートするコードや拡張機能を使用するのは時間の無駄であり、将来サポートする必要がある別のクラスです。
まず、私が持っていないプログラミングスキルを披露するための凝ったコードがないことをお詫びします。
これは私がやった方法で、単に「0000allcatagories」という製品を作成し、その製品を(多くのクリックを介して)すべての私のカテゴリーのメンバーにしました。CSVとビオラへの単純なエクスポート、すべてのカテゴリーのリスト.....属性Bで同じことを行う方法がわかれば
「magentoのカテゴリアップロード」というプログラムを見つけました。これは、カテゴリをダウンロードするという非常に優れた機能を果たします。スプレッドシートを編集できれば、カテゴリもアップロードできます。
幸運を