EC-CUBE4:商品情報更新でハマった事
EC-CUBE4の商品情報更新でハマった事
EC-CUBEを弄りだして1週間になろうとしてます。
TOPの調整、店舗内カテゴリの登録と作業を進め、商品登録へ移行しました。
商品登録しないとTOPページの商品リンク変更できないしね。
ウチはアイテム数が多いので「使うのは当然CSVでしょ」と言うことでデータ作って実行!
見事にハマったので備忘録として記します。
ハマったポイントの列挙
- アイテム数が多い為かCSV更新が途中で止まりエラー。
- アイテム数を減らして再挑戦。自動採番が2482からスタートする。
- MYSQL内のテーブルを確認すると商品に絡む自動採番が飛びまくっている
- 小分けにしたのにシステムエラーで再挑戦。何度やってもシステムエラー発生
アイテム数が多くて途中でシステムエラー発生
10分満たない程度の時間経過後、CSV商品登録でシステムエラーが発生。
先に行ったカテゴリの時に63件が最大だったため、レコード数を50件にして実行。
1分もかからず商品登録が完了します。
次は100件、500件と増やし実行していったところ、1500~2000件の登録数になるとシステムエラーが発生する事が解りました。
これはEC-CUBE側の問題なのか、MySQL側の問題なのか不明です。
その為、あくまでも私の利用している環境での更新アイテム数のデータとなります。
アイテム数を減らして再挑戦。自動採番が2482からスタートする
そんなエラーを経験して追加した商品ですが、エラーの度に商品IDが大きく飛びます。
最初の追加で4000アイテムを実行したのですが、エラーで登録数0。
次の更新で50件をアップしたところ、13番から採番して欲しかったのに2482番から採番されました。
状況から推測すると、エラーで止まった商品登録がauto incrementを進め戻さないと言う感じですよね。
MYSQL内の商品に絡むテーブルで自動採番が飛びまくる
レコードが飛んだテーブルは以下の4つ
- dtb_product
- dtb_product_class
- dtb_product_stock
- dtb_product_image
でも気味悪いので直したい。
と言うことで、前回MySQLにログイン出来ない事態が発生しましたが、折角の機会です。勉強もかねて再度テーブル直弄りを実行します。
- MYSQLから『dtb_product』をエクスポート。
- 採番を含めたデータを作ってインポート。
これはあっさりと成功しました。
EC-CUBEのコンソールを確認すると…商品数のカウントはされていても商品が出てこない。
『dtb_product』ではアイテム登録時の必須項目が足りなかった為、これが原因かなと推測し『dtb_product_class』の手動更新を図ります。
- 同じくMYSQLから『dtb_product_class』をエクスポート。
- 採番を含めたデータを作ってインポート。
エラー発生。どうやら『dtb_product_class』は直弄りさせてくれないようです。
まぁ、管理画面から見えるIDじゃないしね。こっちは番号が飛んでも放置する事にしました。
表示しなかった商品はEC-CUBE管理画面からCSVで商品更新をする事で足りないデータがそろい表示する事が出来ました。
何度やってもシステムエラー発生
最後の500アイテムに差し掛かった時、なぜかシステムエラーを連発するようになりました。
作成したCSVに問題があるか、EC-CUBE事態に問題があるか、どちらか不明な状態です。
まずはCSVを更に小分けして更新してみます。
- 1レコードで更新 ⇒ 成功
- 10レコードで更新 ⇒ 成功
- 100レコードで更新 ⇒ 成功
どうもEC-CUBE側の問題ではなさそうです。
残りのデータを確認しますが、見たところ問題はない様子。400レコードで更新 ⇒ エラー。
原因はCSVを作成したExcelの書式問題でした。
EC-CUBEの商品カテゴリは1商品複数カテゴリに登録する場合、カンマでIDを区切って記入します。
例えば『1,2,3』と言った感じです。
私の作ったデータは店舗内カテゴリが多いため『521,232,113』と登録。
これをCSVで掃き出し、エラーがあったからと作成されたCSVをExcelで読込み再加工していました。
これが更新時システムエラーの原因。
CSVからExcelに読込した時点で『521,232,113』は数字のカンマ区切り表記となっていました。
その為、上書きしたCSVデータでは『521232113』と数字に変化。
そりゃはねられますよね。
まとめ
- EC-CUBEは1週間で約4000アイテムを登録できるくらい簡単に店舗の作成ができる。
- 但し、一気に処理するには問題も多く、更新や登録は出来るだけ小分けにしたデータで実行がよさそう。
後はSEO的にGoogleさんと仲良くする方法を探る必要がありますね。
頑張ります!
-
前の記事
名前を名乗らないお客様との禅問答 2018.11.15
-
次の記事
Laravel:多対多リレーション作成時の注意点 2018.11.21
コメントを残す