要望や症状
EC-CUBE 4.2系の管理画面で商品登録を行う際、商品画像が10枚までしか登録できない制限があります。
制限の詳細
商品編集画面において、11枚目以降の画像をアップロードしようとしても受け付けられず、最大10枚までの制限が設けられています。商品の詳細な紹介や多角度からの撮影画像を登録したい場合に、この制限により十分な画像を掲載できない状況が発生します。
理由や原因
EC-CUBEの商品管理テンプレートにおいて、画像アップロード機能のmaxFilesパラメータが10に設定されているためです。
具体的には src/Eccube/Resource/template/admin/Product/product.twig ファイル内で、ファイルアップロードコンポーネントの最大ファイル数が制限されています。この設定により、管理画面での画像アップロード時に10枚を超える画像の登録が制限されています。
解決策
Customizeディレクトリでのテンプレート上書き
EC-CUBEのカスタマイズディレクトリを使用してテンプレートを安全に上書きし、画像登録枚数の上限を変更できます。
1. Customizeディレクトリに商品管理テンプレートをコピー
最初にCustomizeディレクトリに必要なフォルダ構造を作成し、元のテンプレートファイルをコピーします。
mkdir -p app/Customize/Resource/template/admin/Product
cp src/Eccube/Resource/template/admin/Product/product.twig app/Customize/Resource/template/admin/Product/
2. コピーしたテンプレートファイルを編集
コピーしたテンプレートファイル内のmaxFilesパラメータを編集して、希望する枚数に変更します。
// app/Customize/Resource/template/admin/Product/product.twig
// maxFiles の値を変更する箇所を探し、希望する枚数に変更
maxFiles: 20, // 10から20に変更(例)
3. キャッシュクリア
設定変更後は必ずキャッシュをクリアして変更を反映させます。
bin/console cache:clear
設定変更後の確認
管理画面の商品編集ページにアクセスし、設定した枚数まで画像がアップロードできることを確認してください。実際に複数の画像をアップロードしてテストを行い、正常に動作することを確認します。
注意事項
画像枚数を変更する際は、以下の点にご注意ください。
画像枚数を大幅に増やす場合は、サーバーの容量制限やページ表示速度への影響を考慮する必要があります。多数の画像を読み込むことでフロント画面の表示速度が低下する可能性があります。
PHPのアップロードファイル数制限(max_file_uploads)やアップロードサイズ制限も併せて確認が必要です。サーバー側の設定でアップロード制限がかかっている場合は、そちらの調整も必要になります。
本体アップデート時もCustomizeディレクトリのファイルは保持されますが、新機能や修正が反映されない可能性があるため定期的な確認を推奨します。EC-CUBEのバージョンアップ時には、元のテンプレートファイルと差分を確認し、必要に応じてカスタマイズファイルも更新してください。