EC-CUBE3のCSV登録で「フォーマットが一致しません。」エラー

「フォーマットが一致しません。」「7行目のカテゴリIDが存在しません。」

EC-CUBE3を構築していると、いつも「なんで?」と言う疑問にぶち当たる。

ロジックというか、よく分からない思考で悩んでしまう。所謂、直感的でないというやつ。

その一つにマスター関係のCSV登録。

ダウンロードした雛形の通りにデータを作成、UTF8エンコードに変換し、アップロードするのだが、

フォーマットが一致しません。

の一点張り。

カテゴリなんてたったの3カラムなのに、ダブルコーテーションをつけたりブラウザを変えたりなんやかんや、何をやってもダメ。

どうやらヘッダとして、1行目にダウンロードした項目にCSVデータを追加しておかないといけないらしい。

普通いらんやん。・・・ダウンロードは別だけど。

やっとアップできたと思ったら次は、

7行目のカテゴリIDが存在しません。

・・・

いや、親カテゴリだから。

なにいうとん?

原因

データベースを調べてみると、6つデータがデフォルトで入っている。

新規登録時は未設定
既存カテゴリの更新はカテゴリIDを設定

との説明がある通り、新規の場合は空白じゃないと登録できないらしい。

デフォルトデータが有ったらから6行は修正として登録できたという事だった。

IDを指定すると修正モードになるので、このIDが存在しませんは、

7行目:修正データのカテゴリIDが存在しません。

と表示するのが妥当なんじゃないの?要は、IDを指定すると上書きしかできないのね。

無かったら新規追加すればいいのに。普通はそう思うので、ネット記事では悩んでいる方が大勢おられるようだ。

IDを指定して新規で登録できない仕様になっているのであれば、親子を設定する場合、一度、親だけを登録する。その登録したデータをダウンロードしてIDをチェックし、その親IDで子を設定しなおすという、面倒な作業を強いられる事になる。

まったくもって開発者の使い勝手を考えていない。・・・と思いますよ。

それからもう一つ。

フォーマットは間違っていないのに同じようにフォーマットが一致しないと怒られる。

エンコードもUTF-8で間違ってない。雛形のヘッダを張り付けてもダメ。ヘッダ1行でもダメ。

いったい何?

エクセルからUTF-8CSVで出力した場合、エンコードが違うらしいかった。

一からファイルを作ってそのエクセルから作成したUTF-8データを張り付けてアップするとすんなり登録できた。

回避方法

回避方法としては、とりあえずデータ内容はでたらめで良いので「全データ件数分」を自動採番で登録し、そのあと、もう一度、IDを指定したデータで、「修正」という名目で再登録すれば何とかなる。

ただし、データをシステムから削除処理していた場合、削除フラグが立つだけで実際のデータが消えず、データベースから直接削除してもカテゴリ情報/dtb_categoryのカテゴリID/category_idは自動採番であり、データを削除しても割り振る番号は戻らない。

alter table dtb_category auto_increment = 1

でリセットする必要があり、リレーションしている商品データ(カテゴリ情報/dtb_product_category、商品情報/dtb_product、商品規格情報/dtb_products_class等、規格を設定していれば規格分類情報/dtb_class_categotry等その他も)のデータも一緒に削除する必要がある。

あくまで初期構築の段階で行ってください。すでに運用していて、受注データ等がある場合にデータを直接削除すると整合性が崩れます。

このEC-CUBE。いろいろやっていくのだが、何か仕様がしっくりこないというか、腑に落ちない点が多い。送料設定もそう。

プラグイン業者を広める為にワザと使いにくくしているのかと勘ぐってしまう。そうであれば、

ちがうだろ!!ちがうだろ!!

とけりを入れたくなる(苦笑)

EC-CUBE4なら改善されているのか?でも、まだ出たばっかりでフィックスされていないから手を出す気になれない。しばらくは様子見だ。

宜しければ、シェアお願いします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA