MagentoにMagmiを導入して大量商品インポートしてみる

Magmiを使ってMagentoにCSVでデータを登録してみようと思います。

諸事情で数十万件のデータをMagentoに登録する必要があり、
Magentoの標準機能としてのインポートでは対応しきれなかったのでこのソリューションを見つけました。


Magmiの発見はここです。
http://www.magentocommerce.com/boards/main.php/viewthread/292766/#t405580

Magmiについて
http://www.magentocommerce.com/boards/viewthread/201210/
Magento1.6にも1.7にも対応している。
CLIで動作する。GUIがある。

Magmiの使い方はWikiを参照
http://sourceforge.net/apps/mediawiki/magmi/index.php?title=Main_Page


ダウンロードはここから
http://sourceforge.net/projects/magmi/
http://sourceforge.net/projects/magmi/files/magmi-0.7/plugins/

以下のファイルをダウンロード

magmi_0.7.18beta2.zip
magmi_extra_plugins_20121114.zip
magmi_utilities_plugins_20121106.zip

magmi_0.7.18beta2.zipを解凍して、中身をMagentoのドキュメントルート以下に配置します。
パーミッションは775にする。
pluginsディレクトリにextraとutilitiesのプラグインファイルを置く。

私が使用しているMagentoのバージョンは1.6.2です。

サーバー側でインポートディレクトリを作る

$ cd /var/www/html/magento/magmi
$ mkdir var
$ mkdir import
$ mkdir state
$ sudo chown -Rf apache.dev var
$ sudo chown -Rf apache.dev state

サーバーへpushしたディレクトリのパーミッションを755から775に変更する

$ sudo su
# find magmi -type d -perm 755  -exec chmod 775 {} \;

もしエラーがでたら、パーミッションを疑う。
magmi/stateディレクトリがないのでつくらないといけなかった。
magmi/var/importディレクトリもつくっておく。

ブラウザで次のページにアクセスする
http:///magmi/web/magmi.php


MagentoへインポートしたいCSVファイルを次のディレクトリに配置する。

/var/www/html/magento/magmi/var/import/

GUIはこのページに掲載されているので参考に。
http://sourceforge.net/apps/mediawiki/magmi/index.php?title=UI_Main_page_organization


GUIのConfigure Global Parametersにて各種パラメータを設定する。
DB、Magentoのバージョンなど。


Importデータのフォーマッットについて。
ファイルの種類はCSVです。
defaultだとMagentoで使われているDataflowフォーマットが使われている。
http://sourceforge.net/apps/mediawiki/magmi/index.php?title=Import_-_CSV_datasource
http://sourceforge.net/apps/mediawiki/magmi/index.php?title=Column_mapper


MagentoのDataflow CSV フォーマットは、4種類の列がある。

1- Product scope columns
	store
	websites
2 Product nature columns
	attribute_set
	type
3- Product option columns
	status
	all product display info columns
	all product date related columns (xxxx_date)
	all product stock options columns
4- Attribute columns
	all columns matching your product attributes code (standard or custom).

カスタムオプションを今回使うので、次のとおり設定する。
http://sourceforge.net/apps/mediawiki/magmi/index.php?title=Custom_Options

GUIプラグインCustom Option を有効にしておくこと。
CSVに記載するカスタムオプション列のフォーマットは、Name:Type:is Required:sort number
Typeは今回であればfieldとmultipleを使う。
multipleの場合、値が複数あるので区切り文字として「|」を使う。
価格などを付加する場合のフォーマットは、値の後ろにオプションをつける。

 Value:[fixed|percent]:price_modifier:[sku_modifier]:[sort number]
	 例:Small:fixed:0:-S:1|Medium:fixed:5:-M:2|Large:fixed:10:-M:3

カスタムオプションがあると、例えば、次のようなcsvフォーマットになる。

sku,name,description,price,Size:drop_down:1
T-Shirt1,T-Shirt,A T-Shirt,5.00,Small:fixed:0:-SM|Medium:percent:2:-MED|Large:percent:3:-LRG
T-Shirt2,T-Shirt2,Another T-Shirt,6.00,XS:fixed:0:-XS:1|S:fixed:0:-S:2|M:fixed:1:-M:3

どうやってImportデータをインポートするか?
ファイルをサーバーのmagent/var/importに配置する
GUIで、[File to Import]欄からファイルを選ぶ。
GUIで[Run Import]ボタンをクリックする。

削除はできるのか?
http://sourceforge.net/apps/mediawiki/magmi/index.php?title=Product_Deleter

更新はできるのか?
http://sourceforge.net/apps/mediawiki/magmi/index.php?title=Update_existing_products

できます。


実際に、約60万件のデータを数時間以内で追加/データ更新できるようになりました。
感謝。