【EC-CUBE】カテゴリの並び順をCSVで変更する方法


【EC-CUBE】 CSVファイルからカテゴリを一括登録する(1)」でも書きましたが、EC-CUBEの管理画面からカテゴリを登録すると表示順が登録順と逆になったり、CSVファイルで登録しても妙な並びになってしまったり・・・と結局修正せざるを得ない状況になりがち。

カテゴリの総数が10個や20個ならまだがんばる気も起きますが、100を超えてくるといちいち管理画面で↑ボタンや↓ボタンを押すのもツラい(そんな時間かけて何百回もクリックできへんわい)。

調べた結果、これもCSVファイルでの登録で解決できそうです。

(1) カテゴリCSV出力時の項目設定を変更する

ec-001-3
管理画面の 商品管理>カテゴリ登録で、左上にある「CSV出力項目設定」ボタンをクリック。

ec-002
デフォルトのままだと、左側のCSV出力しない項目に「階層」「表示ランク」「削除フラグ」があり、右側のCSV出力する項目に「カテゴリID」「カテゴリ名」「親カテゴリID」が表示されていると思います。

この状態から、「階層」「表示ランク」「削除フラグ」を選択して「>」ボタンを押すと、選択した3項目が右側に移るので、「この内容で登録する」ボタンをクリック。

※正直なところ「削除フラグ」は出力項目に設定しなくてもええんちゃう?と思いますが、こちとら自慢じゃないがド素人なので、素直に全部出し設定にしておきます・・・

(2) CSVファイルをダウンロード

ec-001-2
管理画面の 商品管理>カテゴリ登録に戻り、「CSVダウンロード」ボタンをクリックすると、先ほど指定した出力項目のデータがダウンロードできます。

(3) ファイルを表計算ソフトで開いてみる

今回はExcelを使いました。(普段文句ばっか言ってるくせに…)
開いてみると、セルの列は「カテゴリID」「カテゴリ名」「親カテゴリID」「階層」「表示ランク」「削除フラグ」になっているはず。

(4) データ行の並び替え

とりあえず一旦「階層」「表示ランク」「削除フラグ」のことは忘れて、わかりやすくする為に行ごと並べ替えたい順番(一番上が一番上に表示したいもの、という順でOK)にごそっと並び替えます。

その後、問題の「階層」「表示ランク」の数値を変更していきます。


「階層」は、文字通りカテゴリの階層のようです。
例えば
ec-004
という感じに並べたいとすると、階層は
・親カテゴリにあたる「カメラ・デジタルカメラ」「テレビ・レコーダー」「生活家電」が
・子カテゴリにあたる「コンパクトカメラ」「デジタルカメラ」「ビデオカメラ」「双眼鏡・望遠鏡」「洗濯機」「掃除機」が
・孫カテゴリにあたる「コンパクトデジタルカメラ」「デジタル一眼レフ」が
になっている模様。


「表示ランク」は実際に表示される順番のようで、例えば1が一番上、100が一番下。
普通の感覚だと「親カテゴリの表示ランクと子カテゴリ・孫カテゴリの表示ランクそれぞれ分かれている」という風に考えてしまいがちだと思いますが・・・(私だけ?)
ec-005-2
↑これが間違いでした。カテゴリ階層に関係なく連番のようです。

ec-006-2
↑連番なので、表示ランクはこれが正解。

(5) アップロード

ここまで来たらCSV形式で保存して、保存したCSVファイルをEC-CUBEの管理画面でアップロード。
管理画面の 商品管理>カテゴリ登録CSVからアップロードします。
ec-007
これで、商品管理>カテゴリ登録でも希望通りの並び順になっていることが確認できたら成功です!!

(※EC-CUBE バージョン2.13.1にて)

【EC-CUBE】 CSVファイルからカテゴリを一括登録する(2)


前回の続き。

できあがったCSVファイルはさておいて、今度はEC-CUBEの管理画面へ移ります。

② 管理画面の 商品管理>カテゴリ管理 から、必要なカテゴリ数の分新規登録していく。
いきなりCSVファイルでカテゴリ登録をしようとしても、「カテゴリ[番号]は存在しません」というようなエラーが出てしまい、登録ができませんでした・・・
 仕方なく、とりあえず必要な数だけカテゴリを管理画面から新規作成しておいて、CSVファイルをアップロードすることで内容を書き換える、という感じに。

 カテゴリ名は後からどうせCSVファイルで書き換えるし、順序も今の段階では関係ないので、カテゴリ名はとりあえず「1」でも「A」でも「あ」でもいいのでガンガン登録していきます。

③ 登録が終わったら「CSV download」のボタンをクリックして、CSVファイルをダウンロード。

categorycsv2-1
ボタンはこちらに↑

④ ダウンロードしたファイルをExcelで開いて、必要数のカテゴリがちゃんと作成されているか確認。
(あくまで確認するだけ)

⑤ さきほど①で作成したCSVファイルを、今度は 商品管理>カテゴリ登録CSV でアップロードする。

categorycsv2-2

⑨ 再び 商品管理>カテゴリ管理 に移動して確認
 カテゴリが意図した通りに登録されていれば、完了!

・・・とまぁ、長い長い手順を踏みましたが、一度間違えてぐっちゃぐちゃになるよりはマシかなぁと…。
詳しい人ならもっと楽勝なやり方もご存じかもしれませんが、私のような素人にはこれが限界です(笑)

これはEC-CUBEのバージョン2.4.3ですが、上位バージョンだと改善されてるのかもしれませんね。

※2014/01/23 EC-CUBE 2.12.0と2.13.1でもこの方法で登録できました!

【EC-CUBE】 CSVファイルからカテゴリを一括登録する(1)


商品カテゴリですが、EC-CUBEのカテゴリ管理からいろいろやった結果、なんかクセがあるなーという印象を受けました。

まず、登録した順番と表示される順番が逆になるということが気に入らない。
カテゴリ1、2、3・・・と登録したつもりが、管理画面でもサイドバーでもカテゴリ3、2、1・・・と表示されてしまうんです。これ、地味に困る。

一応、管理画面にもカテゴリの並び順を変える為の「上へ」「下へ」リンクはついてるのですが、親子合わせて140個もあるカテゴリが全部真逆に並んでて、ひとつずつ上下にポチポチクリックしていくんだから、その労力を考えたらもはや吐きそう(笑)

あとはカテゴリにつく連番が親子通しになっていること。
今まで使っていたショッピングカートは、親カテゴリが1,2,3…の連番・子カテゴリは1-1,2-1,3-1という風に番号がふられていたのですが、ぜーんぶ通し番号(しかも並び順が真逆の合わせ技)となったら非常に使い勝手が悪い・・・!

それから、一度消したカテゴリの番号が復活しない(例えば1~4のカテゴリを削除してしまうと、次に登録し直そうとしても5からしか始まらない)のもなんだかなぁ。別に使用上問題はないけど、なんとなくスッキリしない。

失敗を踏まえつつ、140個もあるカテゴリを一括登録すべく、CSVファイルでの登録にチャレンジしてみることに。

並び順やら子カテゴリの配置やらクセがあるので、手間はかかりますが以下の手順でやってみました。

① まずEXCELなどでカテゴリ一覧を完璧に仕上げる
 アマゾンさんのカテゴリを一部拝借したサンプルはこちら↓
categorycsv1-1
 これを元にしてCSVファイルを作っていきます。

 EC-CUBE側のCSVデータをダウンロードしてみてわかりましたが、データは「カテゴリID」「カテゴリ名」「親カテゴリID」でワンセットとシンプル。これに合うようにさきほどのサンプルの状態から整形していく、と。

 親カテゴリIDまでくっつけた整形途中の状態がこちら↓
categorycsv1-2

 これを、いらん空白削ってCSV形式で保存する直前の状態がこちら↓
categorycsv1-3
 ※忘れてました・・・親カテゴリには「親カテゴリID」に「0」が必要でした・・・

 ここまでできたら、「名前をつけて保存」からCSV形式を選んで完了です!

もうひとつ、大事な作業があります。
Excelで作成したCSVファイルをそのままアップロードしても、文字化けして登録されてしまったり、あるはずのカテゴリが「入力されていません」と表示されてエラーが出たりします。
これはどうやら文字コードの違いのせいらしい。
Excelで作成したCSVファイルは文字コードがSHIFT-JISになっているので、文字コードを変更できるテキストエディタ(私はTeraPadを使ってます)で開き直して、文字コード「UTF-8」を指定して保存する。
(改行コードはCR+LFでとりあえずいけてますが、これでいいのか自信はありません・・・)

これでアップロード直前まで完了!

続きます!