モール店から本店へ! WordPress+Welcartで本店を構築したとき、最初の山場は、商品データの移行をいかに楽にできるか。 a0002_010811

■準備編

WelcartではCSVでの「商品一括登録」機能を用意してくれています。 ここでは、その機能をテストしてみました。

テスト手順
1.商品を登録します。
2.「商品データ出力」をします。
3.「商品一括登録」して、登録できている事を確認する。

1.一括登録すると「ファイルを保存できませんでした」ってエラーが表示される。
wp-contes/uploadsフォルダにcsvファイルがアップロードされるが、そもそもフォルダが無かった(^^;
$mkdir uploads $chmod 777 uploads
2.「商品データ出力」した
3.「商品データ出力」したデータの一行目が項目名なので、削除した。
4.「商品データ出力」したデータを「商品一括登録」したけど下記のエラーが出た。 Successful 0 lines, Failed 1 lines. 1/1件を処理完了 No.1 Post-ID 18 does not exist in the database. “18”,”1″,”テスト商品002のしょうさいですよ”,”これはテスト商品002″,””,”publish”,”open”,””,”これはテスト商品002″,”2014-03-06 23:04:30″,”test002″,”これはテスト商品002″,”5″,”0″,”0″,”0″,”0″,”0″,”0″,”0″,”0″,”0″,”0″,”0″,”3;2″,””,””,”sku-test002-01″,”sku-test002-01だよ”,”1000″,”500″,”1″,”0″,””,”0″,”色”,”0″,”1″,”あか^M;あお”,”サイズ”,”0″,”0″,”big^M;middium^M;small”
5.「商品データ出力」したデータのPostIDとPost Author(18と1)を削除した。
6.「商品データ出力」したデータを「商品一括登録」した Successful 1 lines, Failed 0 lines. 1/1件を処理完了 終了しました。 無事登録できました。

※注意:ファイルのエンコーディングはShiftJISです。

■データ移行編

今回は、楽天さんからのデータを題材に確認を行います。 商品データはCSVで出てきますが、項目の並びは、Welcartが期待している並びと当然異なります。

今回はPerlを使って、Welcart用のデータに変換するプログラムを作成しました。

注意点)
1.入力されるデータフォーマットがShift-JISです。 また、Welcartへ渡すデータもShift-JISです(^^;
2.CSVの処理でめんどくさいのは二重引用符(ダブルコーテーション)の中にある、カンマの処理ですね。 今回は「Text::CSV_XS」を利用しました。

{binary=>1}は日本語を扱う時に指定が必要です。
3.カテゴリーIDの設定が必要 Welcartでは商品のカテゴリーをカテゴリーIDの並びで「3;5」なように指定します。

※カテゴリーIDはカテゴリーの「編集」リンクで「category=xx」と出てくる数値を言います。 カテゴリーIDの詳細はこちらを参照してください。 カテゴリーIDの確認方法はこちらを参照してください。

Welcartではカテゴリーは「商品」を親として、その配下に指定をしていきます。 そのため、カテゴリーの指定も、「2;xx;yy」なように指定しました。

※「2」は、今回の環境では商品はカテゴリーID=2になっていたため。。 今回大変だったのは、元データはカテゴリー名称で来るので、カテゴリー名称とカテゴリーIDの対応表を作成するところ。 こればっかりは手作業で変換テーブルを作成しました。

4.データを変換します。 今回は標準入出力を使用して変換するプログラムにしました。 作成されたデータを「一括登録」で読み込んでみてくださいませ(^^)v