【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にて)

【フリーソフト】 シンプルなCSVエディター「Cassava Editor」


以前に”現行ショッピングカートの商品データ(CSV)をExcelで読み込んだらえげつないことになった”という記事を書きましたが、いいツールを発見したのでそれほど苦労せずに済みそうです。

あすかぜ・ねっと様の「Cassava Editor」、これがもうほんと大変素晴らしい。

CSVファイルを手軽に作成・編集するフリーソフトです。 テキストエディタと同じような感覚で表形式のデータを編集できます。
マクロ機能や簡易表計算機能をはじめ、編集作業に必要なさまざまな機能を備えています。

とのこと。

Excelでそもそもデータがえげつない読み込まれ方をしたのも、Excelの過剰な高機能のせいかと。
Cassava EditorではExcelの
・テーブルタグはそのまま表の形で表示しやがる
・IMGタグは画像をセルに直接貼り付けやがる
・日付表示なんぞは当たり前のように化けやがっている
みたいな、「またいらんことしよってからに!!!(怒)」という妙な変換がされないのです。感激…

ただしやっぱりちょっとはクセがあって、オプションで設定した区切り文字(タブとかカンマとか)以外でも区切られてしまうことはあります。
一例ですが、”(ダブルクオテーション)がセル内にあるとそのセルが全て#########################みたいに表示されてしまうようです。
これは”を「"」に変換することで回避できました。(後でまた置換し直さないといけないですが…)

あとはExcelならではの便利機能(セル幅をダブルクリックで自動調整してくれるとか、連続セルで数字の連番を簡単に作れるとか)がないので、慣れるまではちょっとイライラするかもしれない。

でもExcelの度を越した変態変換に比べたら遥かに良心的です。全然許容範囲。讃頌したい。ありがとうございます!!

Excelのクセの強さに悩み、怒り、または何もかも通り越して無の境地に達してしまった方など、是非Cassava Editorを使われてみると良いかと思います。