EC-CUBEの商品CSV一括登録に同じ画像を使うとエラーが起こる

EC-CUBE 商品CSV一括登録の際に同じ画像を使い回さない方が良いEC-CUBE
この記事は約3分で読めます。

EC-CUBE管理画面で商品画像を変更できないとのご報告

ある日、お客様よりEC-CUBEの管理画面で商品画像を変更しようとするとエラーが発生するとご報告を受けました。
エラーメッセージは「画像のパスが不正です。」とのことでした。

弊社で確認したところ、画像は変更することが可能でした。
おそらく特定条件下において発生するエラーと判断し、エラーが発生する商品(複数の商品)を教えて頂き、再度弊社で確認するとご報告の通りエラーが発生しました。

↓こんな感じ
画像のパスが不正です。

過去にこのような事象は経験したことがなかった為、調査することにしました。

該当商品の画像を削除、変更、追加することどころか、商品の更新ができない

ご報告頂いた該当商品を管理画面から画像を削除したり変更したり追加しようとしても「画像のパスが不正です。」とエラーが発生ます。
画像を全く触らず商品を更新しようとすると、それでも「画像のパスが不正です。」エラーが発生。

新規で商品を登録してもエラーは発生しない

新規で商品を登録し、その後画像を変更しようとすると正常に処理が終了します。
もちろん、画像の追加・削除も正常に行われます。

どうやら該当商品に問題があるようです。

画像がサーバー上にない

「画像のパスが不正です。」エラーが発生する画像をFTPで確認してみると、画像がサーバー上にありませんでした。
どうやら管理画面で表示されているのブラウザのキャッシュのようでした。

サーバーに画像ファイルがなければ、エラーになるのは当たり前。
試しに同じファイル名でダミー画像をアップし、管理画面から画像を変更するとエラーは起こらず正常に処理が完了しました。

エラーの原因はサーバーに画像がなかったことでした。

なぜ画像がサーバーから消えたのか

なぜ商品がサーバーから消えたのか?
しかも複数の商品で同じ現象が発生している。

phpMyAdminで商品データを確認してみると、商品画像に同じファイル名が設定されていました。
お客様に確認すると、同じ画像を使いまわしてますとのことでした。
しかも商品はCSVで一括登録したとおっしゃっています。

なるほど。。。

謎はすべて解けた。

商品をCSVで一括登録する際に同じ画像を使い回すと発生する問題

商品をCSVで一括登録する際に同じ画像を使い回すと、ある問題が発生します。

商品Aと商品Bの画像に画像ファイルZを指定していたとします。
管理画面で商品Aの画像Zを削除すると問題なく商品Aから画像Zは削除されます。
この際、サーバーから画像Zが削除されます。
次に商品Bで画像を追加しようとすると、画像Zがない為に「画像のパスが不正です。」エラーが発生します。
商品Bには画像Zが設定されている状態なのに、画像Zが存在しないからです。

商品csv登録する際に同じ画像を使い回すにしても、複製して異なるファイル名として使用しなければいけません。
でないと上記エラーが発生します。

ちなみに、管理画面から商品を登録する際は画像をアップロードした際に、EC-CUBEがユニークなファイル名となるよう自動的に処理してくれます。
ですから、このようなエラーは発生しません。

投稿者プロフィール

masa
HTMLコーディングをはじめフロントエンド開発がメイン業務。
EC-CUBE、WordPressを勉強中。

猫好き。
野良猫を見かけたら、ついつい声を掛けてしまいます。
(ペットロスが嫌なので飼わない主義)

お気軽にご相談ください

お気軽にご相談ください

タイトルとURLをコピーしました